日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Linux下軟件包的多種安裝方式

源碼包安裝

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

$ 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結(jié)尾的文件用到的工具是tar和gunzip,而tar.bz2結(jié)尾的文件所使用的工具是tar和bzip2,之所以這樣做是因為,tar僅僅能夠打包多個文件但是沒有壓縮的功能,而gz和bz2卻剛好相反,僅能夠壓縮單個文件,這樣我們常見的源碼包實際上是通過tar先將不同的源文件打包,然后再通過gunzip或者bzip2壓縮后發(fā)布的,當(dāng)然這兩個步驟可以通過一條命令實現(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:
解壓完成就正式開始安裝了(補充一點,開始configure之前,如有必要,請使用patch工具為源碼打上相應(yīng)的補丁),首先跳轉(zhuǎn)到源碼的解壓目錄,眾所周知,開始configure前還是應(yīng)該仔細閱讀源碼目錄下的README或者INSTALL文件,好多安裝中的注意事項在這里都有所羅列,configure實際上是一個腳本文件,在當(dāng)前目錄中鍵入”./configure”,shell就會運行當(dāng)前目錄下的configure腳本,有一點必須說明,在整個configure過程,其實編譯尚未進行,configure僅僅是做編譯相關(guān)的準備工作,它主要對您當(dāng)前的工作平臺做一些依賴性檢查,比如編譯器是否安裝,連接器是否存在,如果在檢測的過程沒有任何錯誤,你很幸運,configure腳本會在當(dāng)前目錄下生成下一步編譯鏈接所要用到的另一個文件Makefile,當(dāng)然configure支持及其豐富的命令行參數(shù),可以鍵入”./configre –help”獲取具體的信息,最常用的恐怕就是:

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

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

$ make

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

$make install

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

$make clean
$make uninstall

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

RPM包安裝

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

rpm -i your-package.rpm

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

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

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

1.執(zhí)行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 這一步和編譯普通的源碼軟件一樣,可以加上參數(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          一個和你的軟件包同名的specs文件

這時,在/usr/src/redhat/RPM/i386/ (根據(jù)具體包的不同,也可能是i686,noarch等等)目錄下,有一個新的rpm包,這個是編譯好的二進制文件,執(zhí)行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

有時會出現(xiàn)一些錯誤或者警告:

... 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

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

rpm -qa  列出所有安裝過的包

如果要查找所有安裝過的包含某個字符串sql的軟件包

rpm -qa |grep sql

2.如何獲得某個軟件包的文件全名

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

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

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

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

which mysql

4.一個rpm包中包含那些文件

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

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

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

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

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

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

# whereis ftptop
ftptop: /usr/bin/ftptop /usr/share/man/man1/ftptop.1.gz
# rpm -qf /usr/bin/ftptop
proftpd-1.2.8-1
# rpm -qf /usr/share/doc/proftpd-1.2.8/rfc/rfc0959.txt
proftpd-1.2.8-1

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

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

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 顯示所有已經(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有一個plugin叫做yum-downloadonly,它就可以為用戶實現(xiàn)只下載軟件包的功能。
我們可以使用以下命令安裝這個插件:

yum install yum-downloadonly

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

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

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

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

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


分享標題:Linux下軟件包的多種安裝方式
分享鏈接:http://www.dlmjj.cn/article/cogcgee.html