溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Linux下軟件包的安裝方法有哪些

發(fā)布時(shí)間:2022-02-11 10:13:42 來(lái)源:億速云 閱讀:117 作者:iii 欄目:開發(fā)技術(shù)

今天小編給大家分享一下Linux下軟件包的安裝方法有哪些的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來(lái)了解一下吧。

源碼包安裝

在Linux下的很多軟件都是通過(guò)源碼包方式發(fā)布的,雖然相對(duì)于二進(jìn)制軟件包,配置和編譯起來(lái)繁瑣點(diǎn),但是它的可移植性卻好得多,針對(duì)不同的體系結(jié)構(gòu),軟件開發(fā)者往往僅需發(fā)布同一份源碼包,不同的最終用戶經(jīng)過(guò)編譯就可以正確運(yùn)行。
安裝的具體步驟:

$ tar zxvf XXXX.tar.gz (or tar jxvf XXXX.tar.bz2)
$ cd XXXX
$ ./configure
$ make# make install            ##安裝$ make clean              ##安裝完成后用來(lái)清理臨時(shí)文件$ake uninstall            ##用來(lái)卸載軟件

1、解壓:
最常見(jiàn)源碼包的就兩種(XXXX.tar.gz or XXXX.tar.bz2),其實(shí)這些源碼包都是由2個(gè)工具壓縮而成的,tar.gz結(jié)尾的文件用到的工具是tar和gunzip,而tar.bz2結(jié)尾的文件所使用的工具是tar和bzip2,之所以這樣做是因?yàn)椋瑃ar僅僅能夠打包多個(gè)文件但是沒(méi)有壓縮的功能,而gz和bz2卻剛好相反,僅能夠壓縮單個(gè)文件,這樣我們常見(jiàn)的源碼包實(shí)際上是通過(guò)tar先將不同的源文件打包,然后再通過(guò)gunzip或者bzip2壓縮后發(fā)布的,當(dāng)然這兩個(gè)步驟可以通過(guò)一條命令實(shí)現(xiàn):

$ tar zcvf XXXX.tar.gz XXXX(or tar jcvf XXXX.tar.bz2 XXXX)
解壓的相關(guān)命令如下:
$ tar zxvf XXXX.tar.gz
$ tar jxvf XXXX.tar.bz2

2、./configure:
解壓完成就正式開始安裝了(補(bǔ)充一點(diǎn),開始configure之前,如有必要,請(qǐng)使用patch工具為源碼打上相應(yīng)的補(bǔ)丁),首先跳轉(zhuǎn)到源碼的解壓目錄,眾所周知,開始configure前還是應(yīng)該仔細(xì)閱讀源碼目錄下的README或者INSTALL文件,好多安裝中的注意事項(xiàng)在這里都有所羅列,configure實(shí)際上是一個(gè)腳本文件,在當(dāng)前目錄中鍵入”./configure”,shell就會(huì)運(yùn)行當(dāng)前目錄下的configure腳本,有一點(diǎn)必須說(shuō)明,在整個(gè)configure過(guò)程,其實(shí)編譯尚未進(jìn)行,configure僅僅是做編譯相關(guān)的準(zhǔn)備工作,它主要對(duì)您當(dāng)前的工作平臺(tái)做一些依賴性檢查,比如編譯器是否安裝,連接器是否存在,如果在檢測(cè)的過(guò)程沒(méi)有任何錯(cuò)誤,你很幸運(yùn),configure腳本會(huì)在當(dāng)前目錄下生成下一步編譯鏈接所要用到的另一個(gè)文件Makefile,當(dāng)然configure支持及其豐富的命令行參數(shù),可以鍵入”./configre –help”獲取具體的信息,最常用的恐怕就是:

$ ./configure --prefix=/opt/XXX
它用來(lái)設(shè)置軟件的安裝目錄.

3、make:
如果configure過(guò)程正確完成,那么在源碼目錄,會(huì)生成相應(yīng)的Makefile文件,Makefile文件簡(jiǎn)單來(lái)說(shuō)包括的是一組文件依賴關(guān)系以及編譯鏈接的相關(guān)步驟,事實(shí)上真正的編譯鏈接工作也不是make所做的,make只是一個(gè)通用的工具,一般情況下,make會(huì)根據(jù)Makefile中的規(guī)則調(diào)用合適的編譯器編譯所有與當(dāng)前軟件相依賴的源碼,生成所有相關(guān)的目標(biāo)文件,最后再使用鏈接器生成最終的可執(zhí)行程序:

$ make

4、make install:
當(dāng)上面兩個(gè)步驟正確完成,代表著編譯鏈接過(guò)程已經(jīng)完全結(jié)束,最后要做的就是將可執(zhí)行程序安裝到正確的位置,在這個(gè)步驟,普通用戶可能沒(méi)有相關(guān)目錄的操作權(quán)限,臨時(shí)切換到root是一個(gè)不錯(cuò)的選擇,”install”只是Makefile文件中的一個(gè)標(biāo)號(hào),”make install”代表著make工具執(zhí)行Makefile文件中”install”標(biāo)號(hào)下的所有相關(guān)操作,如果在configure階段沒(méi)有使用”–prefix=/opt/XXX”指定應(yīng)用程序的安裝目錄,那么應(yīng)用程序一般會(huì)被默認(rèn)安裝到/usr/local/bin,如果/usr/local/bin已經(jīng)存在于您的PATH中,那么安裝已經(jīng)基本結(jié)束:

$make install

執(zhí)行完上述操作就可以等待安裝完成了。

$make clean$make uninstall

這兩個(gè)步驟只是安裝的后續(xù)操作,有一點(diǎn)必須注意,”clean”和”uninstall”也是Makefile文件中相應(yīng)的兩個(gè)標(biāo)號(hào),執(zhí)行這兩個(gè)步驟的時(shí)候Makefile文件必要保留,”make clean”用來(lái)清除編譯連接過(guò)程中的一些臨時(shí)文件,”make uninstall”是卸載相關(guān)應(yīng)用程序,與make install類似,make uninstall也需要切換到root執(zhí)行,不過(guò)”uninstall”標(biāo)號(hào)在好多Makefile中都被省略掉了。

RPM包安裝

1、如何安裝rpm軟件包
rmp軟件包的安裝可以使用程序rpm來(lái)完成。執(zhí)行下面的命令

rpm -i your-package.rpm

其中your-package.rpm是你要安裝的rpm包的文件名,一般置于當(dāng)前目錄下。
安裝過(guò)程中可能出現(xiàn)下面的警告或者提示:

... conflict with ... 可能是要安裝的包里有一些文件可能會(huì)覆蓋現(xiàn)有
的文件,缺省時(shí)這樣的情況下是無(wú)法正確安裝的可以用
rpm --force -i 強(qiáng)制安裝即可
... is needed by ...
... is not installed ... 此包需要的一些軟件你沒(méi)有安裝可以用
rpm --nodeps -i 來(lái)忽略此信息
也就是說(shuō),rpm -i --force --nodeps 可以忽略所有依賴關(guān)系和文件問(wèn)題,什么包
都能安裝上,但這種強(qiáng)制安裝的軟件包不能保證完全發(fā)揮功能

2、如何安裝.src.rpm軟件包
有些軟件包是以.src.rpm結(jié)尾的,這類軟件包是包含了源代碼的rpm包,在安裝時(shí)
需要進(jìn)行編譯。這類軟件包有兩種安裝方法,
方法一:

1.執(zhí)行rpm -i your-package.src.rpm
2. cd /usr/src/redhat/SPECS
3. rpmbuild -bp your-package.specs 一個(gè)和你的軟件包同名的specs文件
4. cd /usr/src/redhat/BUILD/your-package/ 一個(gè)和你的軟件包同名的目錄
5. ./configure 這一步和編譯普通的源碼軟件一樣,可以加上參數(shù)
6. make
7. make install

方法二:

1.執(zhí)行rpm -i you-package.src.rpm
2. cd /usr/src/redhat/SPECS                 前兩步和方法一相同
3. rpmbuild -bb your-package.specs          一個(gè)和你的軟件包同名的specs文件

這時(shí),在/usr/src/redhat/RPM/i386/ (根據(jù)具體包的不同,也可能是i686,noarch等等)目錄下,有一個(gè)新的rpm包,這個(gè)是編譯好的二進(jìn)制文件,執(zhí)行rpm -i new-package.rpm即可安裝完成。
3、如何卸載rpm軟件包
使用命令 rpm -e 包名,包名可以包含版本號(hào)等信息,但是不可以有后綴.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

有時(shí)會(huì)出現(xiàn)一些錯(cuò)誤或者警告:

... is needed by ... 這說(shuō)明這個(gè)軟件被其他軟件需要,不能隨便卸載

可以用rpm -e –nodeps強(qiáng)制卸載
4、如何不安裝但是獲取rpm包中的文件
使用工具rpm2cpio和cpio

rpm2cpio xxx.rpm | cpio -vi
rpm2cpio xxx.rpm | cpio -idmv
rpm2cpio xxx.rpm | cpio --extract --make-directories

參數(shù)i和extract相同,表示提取文件。v表示指示執(zhí)行進(jìn)程
d和make-directory相同,表示根據(jù)包中文件原來(lái)的路徑建立目錄
m表示保持文件的更新時(shí)間。
5、如何查看與rpm包相關(guān)的文件和其他信息
下面所有的例子都假設(shè)使用軟件包mysql-3.23.54a-11
1.我的系統(tǒng)中安裝了那些rpm軟件包

rpm -qa  列出所有安裝過(guò)的包

如果要查找所有安裝過(guò)的包含某個(gè)字符串sql的軟件包

rpm -qa |grep sql

2.如何獲得某個(gè)軟件包的文件全名

rpm -q mysql 可以獲得系統(tǒng)中安裝的mysql軟件包全名,從中可以獲得當(dāng)前軟件包的版本等信息。

這個(gè)例子中可以得到信息mysql-3.23.54a-11
3.一個(gè)rpm包中的文件安裝到那里去了?

rpm -ql 包名            注意這里的是不包括.rpm后綴的軟件包的名稱

也就是說(shuō)只能用mysql或者mysql-3.23.54a-11而不是mysql-3.23.54a-11.rpm,如果只是想知道可執(zhí)行程序放到那里去了,也可以用which,比如

which mysql

4.一個(gè)rpm包中包含那些文件

一個(gè)沒(méi)有安裝過(guò)的軟件包,使用:rpm -qlp ****.rpm
一個(gè)已經(jīng)安裝過(guò)的軟件包,還可以使用:rpm -ql ****.rpm

5.如何獲取關(guān)于一個(gè)軟件包的版本,用途等相關(guān)信息?

一個(gè)沒(méi)有安裝過(guò)的軟件包,使用rpm -qip ****.rpm
一個(gè)已經(jīng)安裝過(guò)的軟件包,還可以使用rpm -qi ****.rpm

6.某個(gè)程序是哪個(gè)軟件包安裝的,或者哪個(gè)軟件包包含這個(gè)程序

rpm -qf `which 程序名` 返回軟件包的全名
rpm -qif `which 程序名` 返回軟件包的有關(guān)信息
rpm -qlf `which 程序名` 返回軟件包的文件列表

注意,這里不是引號(hào),而是`,就是鍵盤左上角的那個(gè)鍵,也可以使用rpm -qilf,同時(shí)輸出軟件包信息和文件列表
7.某個(gè)文件是哪個(gè)軟件包安裝的,或者哪個(gè)軟件包包含這個(gè)文件
注意,前一個(gè)問(wèn)題中的方法,只適用與可執(zhí)行的程序,而下面的方法,不僅可以用于可執(zhí)行程序,也可以用于普通的任何文件,前提是知道這個(gè)文件名,首先獲得這個(gè)程序的完整路徑,可以用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

獲得軟件包相關(guān)的信息用rpm -q,q表示查詢query,后面可以跟其他選項(xiàng),比如

i 表示info,獲得軟件包的信息;
l 表示list,獲得文件列表;
a 表示all,在所有包中執(zhí)行查詢;
f 表示file,根據(jù)文件進(jìn)行相關(guān)的查詢;
p 表示package,根據(jù)軟件包進(jìn)行查詢
需要的查詢條件可以使用grep產(chǎn)生,或者從"` `"中的命令行產(chǎn)生

yum安裝

自動(dòng)搜索最快鏡像插件:yum install yum-fastestmirror
安裝yum圖形窗口插件:yum install yumex
1、安裝

yum install 全部安裝
yum install package1 安裝指定的安裝包package1
yum groupinsall group1 安裝程序組group1

2、更新和升級(jí)

yum update 全部更新
yum update package1 更新指定程序包package1
yum check-update 檢查可更新的程序
yum upgrade package1 升級(jí)指定程序包package1
yum groupupdate group1 升級(jí)程序組group1

3、查找和顯示

yum info package1 顯示安裝包信息package1
yum list 顯示所有已經(jīng)安裝和可以安裝的程序包
yum list package1 顯示指定程序包安裝情況package1
yum groupinfo group1 顯示程序組group1信息yum search string 根據(jù)關(guān)鍵字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有一個(gè)plugin叫做yum-downloadonly,它就可以為用戶實(shí)現(xiàn)只下載軟件包的功能。
我們可以使用以下命令安裝這個(gè)插件:

yum install yum-downloadonly

完成安裝后,yum就多了兩個(gè)命令參數(shù),分別是:

--downloadonly
--downloaddir=/path/to/dir

這兩個(gè)命令參數(shù)的含義非常明確,不用多作解釋了,這樣,用戶就可以做到使用yum只下載軟件包,不自動(dòng)安裝了
2.不用yum-downloadonly插件,安裝或者升級(jí)軟件時(shí)保留下安裝包
yum 默認(rèn)情況下,升級(jí)或者安裝后,會(huì)刪除下載的rpm包。
不過(guò),我們也可以如下設(shè)置升級(jí)后不刪除下載的rpm包

vim /etc/yum.conf
[main]
cachedir=/var/cache/yum
keepcache=0

將 keepcache=0 修改為 keepcache=1, 安裝或者升級(jí)后,在目錄 /var/cache/yum 下就會(huì)有下載的 rpm 包了。

以上就是“Linux下軟件包的安裝方法有哪些”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI