輕松實現源碼打包安裝[原創]

通常我們在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

(0)
s19930811s19930811
上一篇 2015-03-27 17:07
下一篇 2015-03-27 17:15

相關推薦

  • RAID(重要)

    RAID   RAID(Redundent Array of Independent Disk):獨立的冗余磁盤陣列,目的是為了結合多個物理驅動器組成單個單元,提高了磁盤的性能或保證數據冗余。RAID能夠防止硬件的故障導致數據丟失,但是不能防止人為操作,軟件故障、惡意軟件感染等造成的數據丟失,因此不能替代備份。 分類有:硬件實現RAID(一是外接式磁盤陣列柜…

    Linux干貨 2016-08-30
  • N25-第三周作業

    第三周 一、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。 [root@zf ~]# who | cut -d " " -f1  | sort | uniq -…

    Linux干貨 2016-12-20
  • RAID簡介

    RAID是什么? RAID英文名字叫Redundant Arrays of Independent Disks,也叫磁盤陣列?陣列有是什么意思?通俗的理解就是把很多的硬盤組織在一起來使用。       RAID可以根據性能來劃分為兩種:有無冗余(容錯)能力     &n…

    Linux干貨 2016-02-14
  • 常用命令總結

    &:將要執行的進程送入后臺進行執行alias:定義命令別名authconfig :對系統資源進行安全認證basename:抓取一個目錄的基名basename pwdbzip2:壓縮工具bzip2 case.sh case.sh.bz2    -[1-9]:指定壓縮比   &nbsp…

    Linux干貨 2017-04-09
  • awk入門應用

    awk概述使用語法常用命令選項相關輸出命令print item1,item2,…printf FORMAT,item1,item2,….相關格式符相關修飾符相關內建變量相關內置函數相關操作符相關模式相關控制語句及示例if(condition) statementsif(condition){statements} else {statements}while…

    Linux干貨 2016-12-04
  • 馬哥教育網絡班N22期+第1周課程練習beta2

    馬哥教育網絡班N22期+第1周課程練習  1.計算機的組成及其功能 1.1 計算機的組成 根據馮·諾依曼體系結構,將計算機分為五個主要的部件: CPU:運算器 CPU:控制器 RAM:存儲器 Input:輸入設備 Output: 輸出設備 其功能分別為: 運算器(Datapath):運算器的功能是對數據進行各種算術運算和邏輯運算,即對數據進行加工處…

    Linux干貨 2016-08-15
欧美性久久久久