root権限のないlinuxへ色々インストールしてみた
root権限がないlinux上で色々ツールを使いたかったのでやってみた。
今回のターゲットは以下の制限がついています。
こういう場合の基本方針は以下の通り
・必要なライブラリはすべて別PCでダウンロード -> Samba or FTPで転送 ・configure -> make -> make installの流れ ・--prefixでインストールパス設定 ・ライブラリパスはsetやLD_LIBRARY_PATHで指定
インストールしたのは↓
・Perl+module
・tmux
・Python
・Vim
・tree
・OpenBox
折角なので一気にインストールするスクリプトを書いてみた。
set INSTHOME でインストール先の設定。
set ??_INST=でインストールする/しないを選択
#! /bin/csh -f set lNSTHOME = <ツールインストール先> set TOOLHOME = ./ setenv PKG_CONFlG_PATH $lNST_HOME/lib/pkgconfig set PERL_INST=0 set PERL_MOD_INST=0 set PERL_MOD_LIST set PERL_MOD_LIST = ($PERL_MOD_LIST Verilog-Perl-3.313.tar.gz) set PERL_MOD_LlST = ($PERL_MOD_LIST Jcode2.0.7.tar.gz) set PERL_MOD_LIST = ($PERL_MOD_LIST XML-Parser-2.36.tar.gz) set PERL_MOD_LlST = ($PERL_MOD_LlST Tk-804.030.tar.gz) set PERL_MOD_LlST = ($PERL_MOD_LIST Spreadsheet-ParseExcel-0.59.tar.gz) set PERL_MOD_LlST = ($PERL_MOD_LlST Crypt-RC4-2.02.tar.gz Digest-Perl-MD5-1.8.tar.gz OLE-Storage_Lite-0.19.tar.gz IO-stringy.tar.gz set PERL_MOD_LIST = ($PERL_MOD_LlST Spreadsheet-WriteExcel-2.37.tar.gz) #<-Warning:prerequisiteParse::RecDescent 0 not fount set TMUX_lNST=0 set PYTHON_INST=0 set VIM_INST=1 set TREE_INST=0 set OPENBOX_INST=0 #perl 5.14.2 ## if ($PERL_INST == "1") then cd $TOOL_HOME/perl/ tar zxvf perl-5.14.2.tar.gz cd perl-5.14.2 ./Configure -des -Dprefix=$INST_HOME #make test make -j 4 make install if(-e $INST_HOME/bin/perl) then rm -rf perl-5.14.2 endif ## perl module ## if($PERL_MOD_INST == "1") then foreach hoge ( $PERL_MOD_LlST ) tar zxvf $hoge cd `echo $hoge | sed 's/.tar.gz//g'` $INST_HOME/bin/perl Makefile.PL make #make test make install cd ../ rm -rf `echo $hoge | sed 's/.tar.gz//g'` end endif cd ../ endif ## tmux ## if ($TMUX_INST == "1") then cd tmux tar zxvf libevent-2.0.16-stable.tar.gz cd libvevnt-2.0.16-stable.tar.gz make -j 4 make install cd ../ rm -rf libevent-2.0.16-stable tar zxvf tmux-1.5.tar.gz cd tmux-1.5 ./configure --prefix=$lNST_HOME -CFLAGS="-l$INST_HOME/include" LDFLAGS="-L$lNST-HOME/lib" make -j 4 make install rm -rf tmux-1.5 cd ../ endif ## Python ## if ($PYTHON_INST == "1") then cd Python tar zxvf Python-2.7.2.tar.gz cd Python-2.7.2 ./configure --prefix=$INST_HOME CFLAGS="-l$lNST_HOME/include" LDFLAGS="-L$INST_HOME/lib" make -j 4 make install cd ../ rm -rf Python-2.7.2 cd ../ endif ## Vim ## if ($VIM_INST == "1") then tar jxvf vim-7.3.tar.gz cd vim73 cat ../patches_vim73/7.3.* | patch -p0 ./configure --enable-multibyte --enable-fontset --wlth-features=big--enable-perlinterp --prefix=$INST_HOME CFLAGS="-l$lNST_HOME/include" LDFLAGS="-L$lNST_HOME/lib" make -j 4 env LANG="ja_JP.UTF-8" makeinstall #LANG設定はsed-4.1.5のバグ(?)回避 cd ../ rm -rf vim73 cd ../ endif ## tree ## if ($TREE_INST == "1") then tar zxvf tree-1.6.0 make -j 4 tar zxvf tree-1.6.0.tar cd tree-1.6.0 make -j 4 cp tree $INST_HOME/bin cd ../ rm -rf tree-1.6.0 endif ## openbox ## if ($OPENBOX_INST == "1") then cd openbox tar zxvf imlib2-1.4.4.tar.gz cd imlib2-1.4.4 ./configure --prefix=$INST_HOME CFLAGS="-l$lNST_HOME/include" LDFLAGS="-L$INST_HOME/lib" make -j 4 make install cd ../ rm imlib2-1.4.4 tar zxvf hsetroot-1.0.2.tar.gz cd hsetroot-1.0.2 ./configure --prefix=$INST_HOME CFLAGS="-l$lNST_HOME/include" LDFLAGS="-L$INST_HOME/lib" make -j 4 make install cd ../ rm hsetroot tar zxvf openbox-3.4.0.tar.gz cd openbox-3.4.0 ./configure --prefix=$INST_HOME CFLAGS="-l$lNST_HOME/include" LDFLAGS="-L$INST_HOME/lib" make -j 4 make install cd ../ rm -rf openbox-3.4.0 tar zxvf obconf-2.0.0.tar.gz cd obconf-2.0.0 ./configure --prefix=$INST_HOME CFLAGS="-l$lNST_HOME/include" LDFLAGS="-L$INST_HOME/lib" make -j 4 make install cd ../ rm -rf obconf-2.0.0.tar.gz #pypanel cd PyPanel tar zxvf python-xlib-0.15rc1.tar.gz cd python-xlib-0.15rc1 $INST_HOME/bin./python ./setup.py install cd ../ rm -rf python-xlib-0.15rc1 tar zxvf PyPanel-2.4.tar.gz cd PyPanel-2.4 patch < ./setup_path_change.py.patch # <-setup.pypyのパス(configsとimlib2)を書き換え $INST_HOME/bin/python ./setup.py install cd ../ rm -rf PyPanel-2.4 cd ../ endif