原因
共有サーバーのGPU環境を利用する機会があったが、sudoが使えず、基本的なgitやvimが利用出来ずに苦労したのでメモしておく。 さすがにgitもvimも(viは入っている)がない状況だとサーバーで色々とソースコードを実装するのは辛いので、ローカル環境に入れる事を目標にする。
環境
- wget, gccは入っている
- uname -a
Linux ubuntu 5.4.0-90-generic #101-Ubuntu SMP Fri Oct 15 20:00:55 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
参考サイト
こちらを参考にさせて頂きました!とても助かりました!
基本的な流れ
参考サイトにもあるが、基本的には共有ライブラリをローカル環境にダウンロードし、ビルド、インストールし、その後、gitやvimなども適宜ダウンロード、ビルド、インストールする事になる。
ライブラリをインストールするローカルのディレクトリは参考サイトに沿って、${HOME}/tools/src
とする。tools
以下にライブラリをパッケージがインストールされることになる。
mkdir -p ~/tools/src
install libevent from source
libeventをインストールします。これはイベント通知系のライブラリである。
makefileを作成する際(./configure)、作成するバイナリデータを置く場所を--prefix
で指定します。これを指定しないとデフォルトである/usr/local
に作成されてしまうため、root権限が必要になる。それを避けるために、${HOME}/tools
を指定して、ユーザーのローカルディレクトリに実行ファイルを置くように指定する必要がある。
この--prefix
を指定することが今回の件では一番重要と思われる。
cd ~/tools/src
wget https://github.com/libevent/libevent/releases/download/release-2.1.8-stable/libevent-2.1.8-stable.tar.gz -P ~/tools/src
tar -zxf libevent-2.1.8-stable.tar.gz
./configure --prefix=${HOME}/tools
make
make install
install ncurses from source
ncureseをインストールする。ncureseは端末のUIを作成するライブラリである。
こちらも--prefix
にローカルのディレクトリを指定する。
cd ~/tools/src
wget -nc ftp://ftp.invisible-island.net/ncurses/ncurses-6.1.tar.gz
tar -zxf ncurses-6.1.tar.gz
./configure --prefix=${HOME}/tools
make
make install
install openssl from source
gitをインストールしようとすると、opensslとcurlが必要なので、最初にそれらをインストールすることになる。
wget https://www.openssl.org/source/openssl-1.0.2o.tar.gz
tar -xf openssl-1.0.2o.tar.gz
cd openssl-1.0.2o
./config --prefix=${HOME}/tools --openssldir=${HOME}/tools shared zlib
make
make install
install curl from source
curlもソースコードからビルドする。
wget https://curl.haxx.se/download/curl-7.xx.x.tar.gz
tar xvfz curl-7.xx.x.tar.gz
cd curl-7.65.3
- –enable-libcurl-option のオプションを入れないとダメだった。
./configure --prefix=${HOME}/tools --with-openssl=${HOME}/tools --enable-libcurl-option
make
make install
- –with-opensslオプションにopensslインストール先を指定。
- make install 時に出来たシンボリックリンクは削除した方が良い。
install git from source
gitもソースコードからビルドする。
cd ~/tools/src/
wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.26.2.tar.gz
tar zvfx git-2.26.2.tar.gz
cd git-2.26.2
./configure --prefix=${HOME}/tools LDFLAGS="-L${HOME}/tools/lib" CFLAGS="-I${HOME}/tools/include"
make
make install
install vim from source
vimもソースコードからビルドする。 様々な拡張機能が使いやすいように、vim.hugeを選択する。
git clone https://github.com/vim/vim.git
cd vim
./configure --prefix=${HOME}/tools LDFLAGS="-L${HOME}/tools/lib" CFLAGS="-I${HOME}/tools/include" --with-features=huge --enable-pythoninterp --enable-python3interp
make
make install
最後に
最近はsudo apt install git
でpermission deniedで怒られる事はほとんどない。低レベルレイヤーの言語をいじらない限りはソースコードからビルドする機会は少なく、こういう操作をすると結構時間を取られてしまう。ただ、こういう機会がないと、コンピュータサイエンスの基本だったり、Linuxの基礎を忘れてしまいそうである。
忙しい時はイライラしてしまうが、貴重な勉強する時間だと捉えてLinuxの理解を深めたい。 (こういう事に意義を見いだしてしまうのがクラウドネイティブ世代ではない人間の証拠かもしれないが)