您好,登錄后才能下訂單哦!
今天小編給大家分享一下Linux下軟件包的安裝方法有哪些的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
源碼包安裝
在Linux下的很多軟件都是通過源碼包方式發布的,雖然相對于二進制軟件包,配置和編譯起來繁瑣點,但是它的可移植性卻好得多,針對不同的體系結構,軟件開發者往往僅需發布同一份源碼包,不同的最終用戶經過編譯就可以正確運行。
安裝的具體步驟:
$ tar zxvf XXXX.tar.gz (or tar jxvf XXXX.tar.bz2) $ cd XXXX $ ./configure $ make# make install ##安裝$ make clean ##安裝完成后用來清理臨時文件$ake uninstall ##用來卸載軟件
1、解壓:
最常見源碼包的就兩種(XXXX.tar.gz or XXXX.tar.bz2),其實這些源碼包都是由2個工具壓縮而成的,tar.gz結尾的文件用到的工具是tar和gunzip,而tar.bz2結尾的文件所使用的工具是tar和bzip2,之所以這樣做是因為,tar僅僅能夠打包多個文件但是沒有壓縮的功能,而gz和bz2卻剛好相反,僅能夠壓縮單個文件,這樣我們常見的源碼包實際上是通過tar先將不同的源文件打包,然后再通過gunzip或者bzip2壓縮后發布的,當然這兩個步驟可以通過一條命令實現:
$ tar zcvf XXXX.tar.gz XXXX(or tar jcvf XXXX.tar.bz2 XXXX) 解壓的相關命令如下: $ tar zxvf XXXX.tar.gz $ tar jxvf XXXX.tar.bz2
2、./configure:
解壓完成就正式開始安裝了(補充一點,開始configure之前,如有必要,請使用patch工具為源碼打上相應的補丁),首先跳轉到源碼的解壓目錄,眾所周知,開始configure前還是應該仔細閱讀源碼目錄下的README或者INSTALL文件,好多安裝中的注意事項在這里都有所羅列,configure實際上是一個腳本文件,在當前目錄中鍵入”./configure”,shell就會運行當前目錄下的configure腳本,有一點必須說明,在整個configure過程,其實編譯尚未進行,configure僅僅是做編譯相關的準備工作,它主要對您當前的工作平臺做一些依賴性檢查,比如編譯器是否安裝,連接器是否存在,如果在檢測的過程沒有任何錯誤,你很幸運,configure腳本會在當前目錄下生成下一步編譯鏈接所要用到的另一個文件Makefile,當然configure支持及其豐富的命令行參數,可以鍵入”./configre –help”獲取具體的信息,最常用的恐怕就是:
$ ./configure --prefix=/opt/XXX 它用來設置軟件的安裝目錄.
3、make:
如果configure過程正確完成,那么在源碼目錄,會生成相應的Makefile文件,Makefile文件簡單來說包括的是一組文件依賴關系以及編譯鏈接的相關步驟,事實上真正的編譯鏈接工作也不是make所做的,make只是一個通用的工具,一般情況下,make會根據Makefile中的規則調用合適的編譯器編譯所有與當前軟件相依賴的源碼,生成所有相關的目標文件,最后再使用鏈接器生成最終的可執行程序:
$ make
4、make install:
當上面兩個步驟正確完成,代表著編譯鏈接過程已經完全結束,最后要做的就是將可執行程序安裝到正確的位置,在這個步驟,普通用戶可能沒有相關目錄的操作權限,臨時切換到root是一個不錯的選擇,”install”只是Makefile文件中的一個標號,”make install”代表著make工具執行Makefile文件中”install”標號下的所有相關操作,如果在configure階段沒有使用”–prefix=/opt/XXX”指定應用程序的安裝目錄,那么應用程序一般會被默認安裝到/usr/local/bin,如果/usr/local/bin已經存在于您的PATH中,那么安裝已經基本結束:
$make install
執行完上述操作就可以等待安裝完成了。
$make clean$make uninstall
這兩個步驟只是安裝的后續操作,有一點必須注意,”clean”和”uninstall”也是Makefile文件中相應的兩個標號,執行這兩個步驟的時候Makefile文件必要保留,”make clean”用來清除編譯連接過程中的一些臨時文件,”make uninstall”是卸載相關應用程序,與make install類似,make uninstall也需要切換到root執行,不過”uninstall”標號在好多Makefile中都被省略掉了。
RPM包安裝
1、如何安裝rpm軟件包
rmp軟件包的安裝可以使用程序rpm來完成。執行下面的命令
rpm -i your-package.rpm
其中your-package.rpm是你要安裝的rpm包的文件名,一般置于當前目錄下。
安裝過程中可能出現下面的警告或者提示:
... conflict with ... 可能是要安裝的包里有一些文件可能會覆蓋現有 的文件,缺省時這樣的情況下是無法正確安裝的可以用 rpm --force -i 強制安裝即可 ... is needed by ... ... is not installed ... 此包需要的一些軟件你沒有安裝可以用 rpm --nodeps -i 來忽略此信息 也就是說,rpm -i --force --nodeps 可以忽略所有依賴關系和文件問題,什么包 都能安裝上,但這種強制安裝的軟件包不能保證完全發揮功能
2、如何安裝.src.rpm軟件包
有些軟件包是以.src.rpm結尾的,這類軟件包是包含了源代碼的rpm包,在安裝時
需要進行編譯。這類軟件包有兩種安裝方法,
方法一:
1.執行rpm -i your-package.src.rpm 2. cd /usr/src/redhat/SPECS 3. rpmbuild -bp your-package.specs 一個和你的軟件包同名的specs文件 4. cd /usr/src/redhat/BUILD/your-package/ 一個和你的軟件包同名的目錄 5. ./configure 這一步和編譯普通的源碼軟件一樣,可以加上參數 6. make 7. make install
方法二:
1.執行rpm -i you-package.src.rpm 2. cd /usr/src/redhat/SPECS 前兩步和方法一相同 3. rpmbuild -bb your-package.specs 一個和你的軟件包同名的specs文件
這時,在/usr/src/redhat/RPM/i386/ (根據具體包的不同,也可能是i686,noarch等等)目錄下,有一個新的rpm包,這個是編譯好的二進制文件,執行rpm -i new-package.rpm即可安裝完成。
3、如何卸載rpm軟件包
使用命令 rpm -e 包名,包名可以包含版本號等信息,但是不可以有后綴.rpm
比如卸載軟件包proftpd-1.2.8-1,可以使用下列格式:
rpm -e proftpd-1.2.8-1 rpm -e proftpd-1.2.8 rpm -e proftpd- rpm -e proftpd
不可以是下列格式:
rpm -e proftpd-1.2.8-1.i386.rpm rpm -e proftpd-1.2.8-1.i386 rpm -e proftpd-1.2 rpm -e proftpd-1
有時會出現一些錯誤或者警告:
... is needed by ... 這說明這個軟件被其他軟件需要,不能隨便卸載
可以用rpm -e –nodeps強制卸載
4、如何不安裝但是獲取rpm包中的文件
使用工具rpm2cpio和cpio
rpm2cpio xxx.rpm | cpio -vi rpm2cpio xxx.rpm | cpio -idmv rpm2cpio xxx.rpm | cpio --extract --make-directories
參數i和extract相同,表示提取文件。v表示指示執行進程
d和make-directory相同,表示根據包中文件原來的路徑建立目錄
m表示保持文件的更新時間。
5、如何查看與rpm包相關的文件和其他信息
下面所有的例子都假設使用軟件包mysql-3.23.54a-11
1.我的系統中安裝了那些rpm軟件包
rpm -qa 列出所有安裝過的包
如果要查找所有安裝過的包含某個字符串sql的軟件包
rpm -qa |grep sql
2.如何獲得某個軟件包的文件全名
rpm -q mysql 可以獲得系統中安裝的mysql軟件包全名,從中可以獲得當前軟件包的版本等信息。
這個例子中可以得到信息mysql-3.23.54a-11
3.一個rpm包中的文件安裝到那里去了?
rpm -ql 包名 注意這里的是不包括.rpm后綴的軟件包的名稱
也就是說只能用mysql或者mysql-3.23.54a-11而不是mysql-3.23.54a-11.rpm,如果只是想知道可執行程序放到那里去了,也可以用which,比如
which mysql
4.一個rpm包中包含那些文件
一個沒有安裝過的軟件包,使用:rpm -qlp ****.rpm 一個已經安裝過的軟件包,還可以使用:rpm -ql ****.rpm
5.如何獲取關于一個軟件包的版本,用途等相關信息?
一個沒有安裝過的軟件包,使用rpm -qip ****.rpm 一個已經安裝過的軟件包,還可以使用rpm -qi ****.rpm
6.某個程序是哪個軟件包安裝的,或者哪個軟件包包含這個程序
rpm -qf `which 程序名` 返回軟件包的全名 rpm -qif `which 程序名` 返回軟件包的有關信息 rpm -qlf `which 程序名` 返回軟件包的文件列表
注意,這里不是引號,而是`,就是鍵盤左上角的那個鍵,也可以使用rpm -qilf,同時輸出軟件包信息和文件列表
7.某個文件是哪個軟件包安裝的,或者哪個軟件包包含這個文件
注意,前一個問題中的方法,只適用與可執行的程序,而下面的方法,不僅可以用于可執行程序,也可以用于普通的任何文件,前提是知道這個文件名,首先獲得這個程序的完整路徑,可以用whereis或者which,然后使用rpm -qf例如:
# whereis ftptopftptop: /usr/bin/ftptop /usr/share/man/man1/ftptop.1.gz# rpm -qf /usr/bin/ftptopproftpd-1.2.8-1# rpm -qf /usr/share/doc/proftpd-1.2.8/rfc/rfc0959.txtproftpd-1.2.8-1
獲得軟件包相關的信息用rpm -q,q表示查詢query,后面可以跟其他選項,比如
i 表示info,獲得軟件包的信息; l 表示list,獲得文件列表; a 表示all,在所有包中執行查詢; f 表示file,根據文件進行相關的查詢; p 表示package,根據軟件包進行查詢 需要的查詢條件可以使用grep產生,或者從"` `"中的命令行產生
yum安裝
自動搜索最快鏡像插件:yum install yum-fastestmirror
安裝yum圖形窗口插件:yum install yumex
1、安裝
yum install 全部安裝 yum install package1 安裝指定的安裝包package1 yum groupinsall group1 安裝程序組group1
2、更新和升級
yum update 全部更新 yum update package1 更新指定程序包package1 yum check-update 檢查可更新的程序 yum upgrade package1 升級指定程序包package1 yum groupupdate group1 升級程序組group1
3、查找和顯示
yum info package1 顯示安裝包信息package1 yum list 顯示所有已經安裝和可以安裝的程序包 yum list package1 顯示指定程序包安裝情況package1 yum groupinfo group1 顯示程序組group1信息yum search string 根據關鍵字string查找安裝包
4、刪除程序
yum remove | erase package1 刪除程序包package1 yum groupremove group1 刪除程序組group1 yum deplist package1 查看程序package1依賴情況
5、清除緩存
yum clean packages 清除緩存目錄下的軟件包 yum clean headers 清除緩存目錄下的 headers yum clean oldheaders 清除緩存目錄下舊的 headers yum clean, yum clean all (= yum clean packages; yum clean oldheaders) 清除緩存目錄下的軟件包及舊的headers
6、TIPS
1.讓yum命令下載軟件包,但是不安裝
yum有一個plugin叫做yum-downloadonly,它就可以為用戶實現只下載軟件包的功能。
我們可以使用以下命令安裝這個插件:
yum install yum-downloadonly
完成安裝后,yum就多了兩個命令參數,分別是:
--downloadonly --downloaddir=/path/to/dir
這兩個命令參數的含義非常明確,不用多作解釋了,這樣,用戶就可以做到使用yum只下載軟件包,不自動安裝了
2.不用yum-downloadonly插件,安裝或者升級軟件時保留下安裝包
yum 默認情況下,升級或者安裝后,會刪除下載的rpm包。
不過,我們也可以如下設置升級后不刪除下載的rpm包
vim /etc/yum.conf [main] cachedir=/var/cache/yum keepcache=0
將 keepcache=0 修改為 keepcache=1, 安裝或者升級后,在目錄 /var/cache/yum 下就會有下載的 rpm 包了。
以上就是“Linux下軟件包的安裝方法有哪些”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。