選擇乙個合適的linux發行版的重要因素就是是否有足夠豐富的軟體以及軟體的維護是否方便。對於正常情況下的使用,ubuntu繼承自debian系的deb已經可以滿足,部分情況下還是無法擺脫需要編譯安裝的情況。對於有點潔癖的管理員,或者需要大規模部署的情況,每台機器的編譯顯然不現實,於是就需要定製deb包。
本文以ubuntu下的操作為例,同樣適用於debian。
修改現有deb包
這種情況往往是現有的deb包已經滿足使用,只是需要修改部分檔案,例如批量部署apache伺服器而不希望每台主機上去修改配置。
修改配置
cd apache2
這樣,你會看到apache2目錄下的檔案結構很眼熟,跟安裝後的檔案存放路徑完全一致。你可以根據需要修改對應的檔案。
提取配置檔案
dpkg -e ../dpkg -x apache2-common_2.0.55-4ubuntu2.13_i386.deb
會多出乙個debian目錄,決定了部分安裝引數,同樣也可以定製修改。
重新封包
cd ..
dpkg -b apache2 myapache2.deb
安裝測試
dpkg -i myapache2.deb
通過deb-source製作deb包
這種方式往往是需要為原有的包進行小幅度優化,例如修改nginx軟體的header識別資訊,並適用-o3引數重新編譯。
獲取source包
mkdir nginx
cd nginx
修改**
修改編譯資訊
debian/rules是乙個可執行檔案,直接編輯可以修改。例如我直接將頭部的cflags += -o2 **的修改為 cflags += -o3 -msse3 -mmmx -maccumulate-outgoing-args(沒有經過測試,僅作為示例)
準備編譯環境和依賴包
apt-get install dpkg-buildpackage
apt-get build-dep nginx
很多情況下不能完成編譯就是因為沒有執行這一步
重新打包
dpkg-buildpackage -uc -d
完成後上一級目錄將會出現乙個或多個deb檔案,視情況而定安裝測試。
原始碼製作deb
這種方法相對比較少見了,事實上前兩種方法幾乎已經解決了80%的應用,即便沒有對應的ubuntu包,也可以從豐富的debian庫中找到合適的deb,這種情況只有少數專案才會需要,例如安裝 支援中文分詞的索引伺服器coreseek。
預編譯./configure …
make
也沒什麼特殊的,參考官方安裝手冊的操作
打包checkinstall -d -y -install=no -default make install
一定記得要測試一下,相比前兩種方法出錯概率較高。
看到網上很多安裝教程都是編譯安裝的,抱著「沒有必要重新發明輪子」的原則,我還是建議盡量使用deb的方式安裝。同時建議社群盡可能的提供rpm和deb等安裝包,在方便使用者的同時同樣也有利於產品的優化。
製作deb安裝包
適合ubuntu 今天突發奇想想做個deb安裝包玩玩,於是查到了checkinstall,下面是個總結。p 為了敘述方便,用了沒有依賴關係nasm做示例。1.安裝checkinstall 用歸檔管理器解壓 3.編譯nasm cd nasm 2.08.01 configure 生成makefile,如...
deb安裝包的安裝方法
deb 是debian linus 的安裝格式,跟red hat 的rpm相似 安裝 dpkg i file.deb 不過要安裝dpkg的package,也可用alien這類軟體將package轉為rpm等格式,或直接下個rpm 或tar包。關於deb包轉換成rpm的方法 alien預設沒有安裝,所...
linux環境,如何製作deb安裝包?
主要涉及的命令 dpkg deb b deb 用於製作deb安裝包命令 dpkg i deb 安裝deb包命令 在製作deb包之前,首先建立需要安裝的檔案對應的路徑,同時建立debian資料夾,並在debian資料夾下建立control檔案,control檔案模板如下 package name ve...