Linux有問必答:怎麼用CheckInstall從原始碼建立一個RPM或DEB包
問題:我想要從原始碼建立安裝的軟體包。有沒有一種方式從原始碼來建立和安裝軟體包,而不是執行“make install”?這樣的話,以後如果我想,我可以容易的解除安裝程式。
如果你已經從它的原始碼執行“make install”安裝了linux程式。想完整移除它將變得真的很麻煩,除非程式的開發者在Makefile裡提供了uninstall的目標設定。否則你必須在安裝前後比較你係統裡檔案的完整列表,然後手工移除所有在安裝過程中加入的檔案。
這時候Checkinstall就可以派上使用。Checkinstall會跟蹤install命令列所建立或修改的所有檔案的路徑(例如:“make install”、“make install_modules”等)並建立一個標準的二進位制包,讓你能用你發行版的標準包管理系統安裝或解除安裝它,(例如Red Hat的yum或者Debian的apt-get命令)。已知它在 Slackware、SuSe、Mandrake 和 Gentoo 上也工作很好,請參考其官方文件。
在這篇文章中,我們只集中在紅帽子和Debian為基礎的發行版,並展示怎樣從原始碼使用Checkinstall建立一個RPM和DEB軟體包
在linux上安裝Checkinstall
在Debian及其衍生髮行版上安裝Checkinstall:
# aptitude install checkinstall
在紅帽子的發行版上安裝Checkinstall,你需要下載一個已經打包好的Checkinstall rpm包(例如:從 http://rpm.pbone.net找到),不過它已經從Repoforge庫裡刪除了。這個包是針對Cent OS6的,不過也可在Cent OS7裡工作。
# wget ftp://ftp.pbone.net/mirror/ftp5.gwdg.de/pub/opensuse/repositories/home:/ikoinoba/CentOS_CentOS-6/x86_64/checkinstall-1.6.2-3.el6.1.x86_64.rpm # yum install checkinstall-1.6.2-3.el6.1.x86_64.rpm
一旦checkinstall安裝好,你就可以用下列格式建立一個特定的軟體包
# checkinstall <install-command>
如果沒有引數,預設安裝命令“make install”將被使用
用Checkinstall建立一個RPM或DEB包
在這個例子裡,我們將建立一個htop包,這是一個linux互動式文字模式程式檢視器(類似 top)。
首先,讓我們從專案的官方網站下載原始碼,作為一個好的習慣,我們儲存原始碼包到/usr/local/src下,並解壓它。
# cd /usr/local/src # wget http://hisham.hm/htop/releases/1.0.3/htop-1.0.3.tar.gz # tar xzf htop-1.0.3.tar.gz # cd htop-1.0.3
讓我們看看htop的安裝命令是什麼,以便我們能用Checkinstall命令呼叫它,如下面所示,htop用“make install”命令安裝。
# ./configure # make install
因此,要建立一個htop安裝包,我們可以不帶任何引數的呼叫checkinstall,這將使用“make install”命令建立一個包。在這個過程中, checkinstall命令會問你幾個問題。
簡而言之,如下命令會建立一個htop包:
# ./configure # checkinstall
“Should I create a default set of package docs?(我會建立一個預設設定的包檔案?)”,回答“Y”:
你可以輸入一個包的簡短描述,然後按兩次回車:
輸入一個數字以修改下面的任何值或ENTER繼續:
然後checkinstall將自動地建立一個.rpm或者.deb包,根據你的linux系統是什麼:
在CentOS7:
在Debian 7:
via: http://ask.xmodulo.com/build-rpm-deb-package-source-checkinstall.html
譯者:luoyutiantang 校對:wxy
相關文章
- 使用CheckInstall從原始碼製作RPM安裝包原始碼
- Linux有問必答:如何在命令列建立一個MySQL資料庫Linux命令列MySql資料庫
- Linux 有問必答:如何使用yum來下載RPM包而不進行安裝Linux
- Linux軟體包轉換-deb與rpm互轉Linux
- linux原始碼包與RPM包的區別Linux原始碼
- Linux - openssh透過原始碼build rpm包Linux原始碼UI
- Linux下怎麼安裝.deb格式的安裝包?Linux系統下.deb格式安裝包的安裝教程Linux
- Linux 有問必答:如何從VirtualBox中從主機訪問NAT客戶機Linux
- 原始碼包和rpm包的區別原始碼
- OB有問必答 | OceanBase主備怎麼同步?是強一致嗎?
- Linux有問必答:如何在Linux下重新命名多個檔案Linux
- Linux 有問必答:如何知道程式執行在哪個 CPU 核心上?Linux
- Linux有問必答:Linux上如何檢視某個程式的執行緒Linux執行緒
- Linux 有問必答:如何知道當前正在使用的 shell 是哪個?Linux
- Linux有問必答:如何更新過期版本的UbuntuLinuxUbuntu
- 區別linux支援rpm還是deb的簡單方法Linux
- 《RPM原始碼包的製作》RHEL6原始碼
- 強制安裝一個RPM包
- linux管理rpm包Linux
- Linux有問必答:如何用Perl檢測Linux的發行版本Linux
- Linux有問必答:如何在Linux中修改環境變數PATHLinux變數
- 用dpkg命令製作deb包方法總結
- 將 DEB 軟體包轉換成 Arch Linux 軟體包Linux
- Linux有問必答:如何在命令列下壓縮JPEG影像Linux命令列
- Linux有問必答:如何檢查MariaDB服務端版本Linux服務端
- Linux-軟體包管理-RPM安裝位置\原始碼包安裝位置Linux原始碼
- alien將rpm格式的軟體包轉換為deb格式(或者反過來)
- 一個查詢rpm包的好地方
- 怎麼建立一個留言系統!
- Linux有問必答:如何檢查Linux的記憶體使用狀況Linux記憶體
- Linux有問必答:如何顯示Linux網橋的MAC學習表LinuxMac
- Linux有問必答:如何為在Linux中安裝兄弟牌印表機Linux
- Linux之RPM包管理_RPM包查詢Linux
- Linux有問必答:如何修復“sshd error: could not load host key”LinuxError
- rpm命令沒有反應是怎麼回事?
- 想看原始碼但是無從下口怎麼辦?原始碼
- nginx 從一個路徑訪問另一個路徑怎麼跳轉Nginx
- yum更換國內源、yum下載rpm包、 原始碼包安裝原始碼