通常我們在Linux/Unix下安裝一平臺時往往需要十幾甚至更多安裝包,這些源碼包來源于網絡、本地硬盤、移動設備。有時碰到網絡不暢通或下載地址失效會帶來很多麻煩,一個好方法便是將常用的軟件包下載到本地硬盤存放。問題是久而久之連自己都不曉得哪些包才是適用的?,F用makeself來實現自解壓倒安裝倒是一個很好的解決方案,下面以制作Func客戶端安裝包為例。
一、整理軟件包
#cd /home #mkdir FuncPack1.0 將所需的軟件包都往FuncPack1.0目錄丟:) #ls FuncPack1.0 -rw-r--r-- 1 root root 50878 Sep 28 2009 certmaster-0.25.tar.gz -rw-r--r-- 1 root root 249 Oct 8 2009 certmaster.conf -rw-r--r-- 1 root root 152871 Sep 28 2009 func-0.25.tar.gz -rw-r--r-- 1 root root 137 Oct 8 2009 minion.conf -rw-r--r-- 1 root root 197981 Sep 28 2009 pyOpenSSL-0.9.tar.gz -rw-r--r-- 1 root root 11060830 May 22 2008 Python-2.5.1.tgz
二、編寫安裝shell
#cd FuncPack1.0
#vi install.sh
#!/bin/sh # # --------------------------------------------------- # A python&func install shell # --------------------------------------------------- # # Writed by Liu tiansi # Mail:liutiansi@gmail.com # Blog:http://blog.liuts.com # QQ groups:106651547 # --------------------------------------------------- _pwd=$(pwd) cd $_pwd/FuncPack1.0 echo "==================*install python2.5*============================" /bin/tar -zxvf Python-2.5.1.tgz cd Python-2.5.1 ./configure && make && make install echo "export PATH=\$PATH:/usr/local/bin" >> /etc/profile source /etc/profile cd .. echo "=================*install Func/certmaster/pyOpenSSL*=================" /bin/tar -zxvf pyOpenSSL-0.9.tar.gz cd pyOpenSSL-0.9 /usr/local/bin/python setup.py install cd .. /bin/tar -zxvf certmaster-0.25.tar.gz cd certmaster-0.25 /usr/local/bin/python setup.py install cd .. /bin/tar -zxvf func-0.25.tar.gz cd func-0.25 /usr/local/bin/python setup.py install cd .. /bin/ln -s /usr/local/bin/certmaster /usr/bin/certmaster /bin/ln -s /usr/local/bin/funcd /usr/bin/funcd /bin/sed -i 's/'`hostname`'//g' /etc/hosts /bin/rm -rf /etc/certmaster/certmaster.conf /bin/rm -rf /etc/certmaster/minion.conf /bin/cp certmaster.conf /etc/certmaster /bin/cp minion.conf /etc/certmaster /bin/sed -i -e '/^listen_port/{ s/51234/1999/; }' /etc/func/minion.conf /bin/sed -i -e "/^minion_name/{ s@=@= `hostname`@; }" /etc/func/minion.conf /sbin/chkconfig --level 345 certmaster on /sbin/service certmaster start /sbin/chkconfig --level 345 funcd on /sbin/service funcd start echo "Install over!" #chmod +x install.sh
三、打包
#cd /home #wget http://megastep.org/makeself/makeself-2.1.5.run #chmod +x makeself-2.1.5.run #./makeself-2.1.5.run #cd makeself-2.1.5
開始打包!
#./makeself.sh --notemp ../FuncPack1.0/ FuncPack1.0.bin "system start install ..." ./install.sh
運行結果:
Header is 402 lines long About to compress 11280 KB of data... Adding files to archive named "FuncPack1.0.bin"... ./ ./func-0.25.tar.gz ./Python-2.5.1.tgz ./pyOpenSSL-0.9.tar.gz ./install.sh ./minion.conf ./certmaster.conf ./certmaster-0.25.tar.gz CRC: 853861468 MD5: 14463177b627f0e85f3591e88fb02b1d Self-extractible archive "FuncPack1.0.bin" successfully created.
命令說明:
1、–notemp 不生成臨時目錄,在當前目錄下創建一新的目錄(推薦)
2、../FuncPack1.0/ 打包的源目錄
3、FuncPack1.0.bin 生成自運行解壓文件
4、"system start install …" 安裝提示信息
5、./install.sh 解壓后所要執行的安裝腳本
6、CRC、MD5(防止被篡改)
更多說明見官方http://megastep.org/makeself/
四、運行包
1、將生成的FuncPack1.0.bin文件scp到其它主機
2、運行FuncPack1.0.bin即可
如大家有什么疑問或感興趣的話題可以通過weibo與我交流:http://t.qq.com/yorkoliu
轉自:http://blog.liuts.com/post/212/#entrymore
原創文章,作者:s19930811,如若轉載,請注明出處:http://www.www58058.com/1744