歡迎您光臨本站 註冊首頁

Linux系統下軟體包管理

←手機掃碼閱讀     火星人 @ 2014-03-29 , reply:0

Linux系統下軟體包管理
提要:

在系統管理中,軟體包的管理是最重要的,是系統管理的基礎的基礎;只有我們學會軟體包的管理才能談得上其它的應用;軟體包的安裝、更新、查詢,以及幾個常用的軟體包管理工具,比如 system-cofig-packages 、yum 、apt 等

一、軟體包管理的基礎;

1、什麼是RPM,RPM有何用?

初次為Fedora /Redhat 安裝軟體,我們應該學會RPM的安裝和使用,也應該知道RPM是做什麼用的;

RPM 是 Red Hat Package Manager 的縮寫,本意是Red Hat 軟體包管理,顧名思義是Red Hat 貢獻出來的軟體包管理;在Fedora 、Redhat、Mandriva、SuSE、YellowDog等主流發行版本,以及在這些版本基礎上二次開發出來的發行版採用;

RPM包裡面都包含什麼?裡面包含可執行的二進位程序,這個程序和Windows的軟體包中的.exe文件類似是可執行的;RPM包中還包括程序運行時所需要的文件,這也和Windows的軟體包類似,Windows的程序的運行,除了.exe文件以外,也有其它的文件;

一個RPM 包中的應用程序,有時除了自身所帶的附加文件保證其正常以外,還需要其它特定版本文件,這就是軟體包的依賴關係;依賴關係並不是Linux特有的,Windows操作系統中也是同樣存在的;比如我們在Windows系統中運行3D遊戲,在安裝的時候,他可能會提示,要安裝Direct 9 ;Linux和Windows的系統原理是差不多的;

軟體安裝流程圖:


說明:
1、RPM管理的軟體的,對通過file.tar.gz 或file.tar.bz2源碼包用 make ;make install 安裝的軟體無效;
2、安裝軟體時,最好用各自發行版所提供的系統軟體包管理工具;

1)Fedora 系統管理軟體包工具 system-config-packages,方便的添加和移除系統安裝盤提供的軟體包;

2)Redhat 系統管理軟體包工具,新一點的系統應該是 redhat-config-packages ,用法system-config-packages一樣;

3)apt + synaptic 軟體包在線安裝、移除、升級工具;

4)yum 軟體包在線安裝、升級、移除工具;

目前 apt和yum 已經極為成熟了,建議我們安裝軟體時,採用 apt或者yum ;如果安裝系統盤提供的軟體包,可以用 system-config-packages 或redhat-config-packages ;

一、RPM包管理的用途;

1、可以安裝、刪除、升級和管理軟體;當然也支持在線安裝和升級軟體;
2、通過RPM包管理能知道軟體包包含哪些文件,也能知道系統中的某個文件屬於哪個軟體包;
3、可以在查詢系統中的軟體包是否安裝以及其版本;
4、作為開發者可以把自己的程序打包為RPM 包發布;
5、軟體包簽名GPG和MD5的導入、驗證和簽名發布
6、依賴性的檢查,查看是否有軟體包由於不兼容而擾亂了系統;

二、RPM 的使用許可權;

RPM軟體的安裝、刪除、更新只有root許可權才能使用;對於查詢功能任何用戶都可以操作;如果普通用戶擁有安裝目錄的許可權,也可以進行安裝;

三、rpm 的一點簡單用法;

我們除了軟體包管理器以外,還能通過rpm 命令來安裝;是不是所有的軟體包都能通過rpm 命令來安裝呢?不是的,文件以.rpm 後綴結尾的才行;

一)初始化rpm 資料庫;

通過rpm 命令查詢一個rpm 包是否安裝了,也是要通過rpm 資料庫來完成的;所以我們要經常用下面的兩個命令來初始化rpm 資料庫;

[root@localhost]# rpm --initdb
[root@localhost]# rpm --rebuilddb 註:這個要花好長時間;

註:這兩個參數是極為有用,有時rpm 系統出了問題,不能安裝和查詢,大多是這裡出了問題;

二)RPM軟體包管理的查詢功能:

命令格式

rpm {-q|--query} [select-options] [query-options]

RPM的查詢功能是極為強大,是極為重要的功能之一;

1、對系統中已安裝軟體的查詢;

1)查詢系統已安裝的軟體;

語法:rpm -q 軟體名

舉例:

[root@localhost]# rpm -q gaim
gaim-1.3.0-1.fc4

-q就是 --query ,中文意思是「問」,此命令表示的是,是不是系統安裝了gaim ;如果已安裝會有信息輸出;如果沒有安裝,會輸出gaim 沒有安裝的信息;

查看系統中所有已經安裝的包,要加 -a 參數 ;

[root@localhost RPMS]# rpm -qa



如果分頁查看,再加一個管道 |和more命令;

[root@localhost RPMS]# rpm -qa |more



在所有已經安裝的軟體包中查找某個軟體,比如說 gaim ;可以用 grep 抽取出來;

[root@localhost RPMS]# rpm -qa |grep gaim

2)查詢一個已經安裝的文件屬於哪個軟體包;

語法 rpm -qf 文件名

註:文件名所在的絕對路徑要指出

舉例:

[root@localhost RPMS]# rpm -qf /usr/lib/libacl.la
libacl-devel-2.2.23-8

3)查詢已安裝軟體包都安裝到何處;

語法:rpm -ql 軟體名 或 rpm rpmquery -ql 軟體名

舉例:

[root@localhost RPMS]# rpm -ql lynx
[root@localhost RPMS]# rpmquery -ql lynx

4)查詢一個已安裝軟體包的信息

語法格式: rpm -qi 軟體名

舉例:

[root@localhost RPMS]# rpm -qi lynx

5)查看一下已安裝軟體的配置文件;

語法格式:rpm -qc 軟體名

舉例:

[root@localhost RPMS]# rpm -qc lynx

6)查看一個已經安裝軟體的文檔安裝位置:

語法格式: rpm -qd 軟體名

舉例:

[root@localhost RPMS]# rpm -qd lynx

7)查看一下已安裝軟體所依賴的軟體包及文件;

語法格式: rpm -qR 軟體名

舉例:

[root@localhost]# rpm -qR rpm-python



查詢已安裝軟體的總結:對於一個軟體包已經安裝,我們可以把一系列的參數組合起來用;比如 rpm -qil ;比如:

[root@localhost RPMS]# rpm -qil lynx



2、對於未安裝的軟體包的查看:

查看的前提是您有一個.rpm 的文件,也就是說對既有軟體file.rpm的查看等;

1)查看一個軟體包的用途、版本等信息;

語法: rpm -qpi file.rpm

舉例:

[root@localhost RPMS]# rpm -qpi lynx-2.8.5-23.i386.rpm

2)查看一件軟體包所包含的文件;

語法: rpm -qpl file.rpm

舉例:

[root@localhost RPMS]# rpm -qpl lynx-2.8.5-23.i386.rpm

3)查看軟體包的文檔所在的位置;

語法: rpm -qpd file.rpm

舉例:

[root@localhost RPMS]# rpm -qpd lynx-2.8.5-23.i386.rpm

5)查看一個軟體包的配置文件;

語法: rpm -qpc file.rpm

舉例:

[root@localhost RPMS]# rpm -qpc lynx-2.8.5-23.i386.rpm

6)查看一個軟體包的依賴關係

語法: rpm -qpR file.rpm

舉例:

[root@localhost archives]# rpm -qpR yumex_0.42-3.0.fc4_noarch.rpm
/bin/bash
/usr/bin/python
config(yumex) = 0.42-3.0.fc4
pygtk2
pygtk2-libglade
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
usermode
yum >= 2.3.2


三)軟體包的安裝、升級、刪除等;

1、安裝和升級一個rpm 包;

[root@localhost]#rpm -vih file.rpm 註:這個是用來安裝一個新的rpm 包;
[root@localhost]#rpm -Uvh file.rpm 註:這是用來升級一個rpm 包;

如果有依賴關係的,請解決依賴關係,其實軟體包管理器能很好的解決依賴關係,請看前面的軟體包管理器的介紹;如果您在軟體包管理器中也找不到依賴關係的包;那隻能通過編譯他所依賴的包來解決依賴關係,或者強制安裝;

語法結構:

[root@localhost]# rpm -ivh file.rpm --nodeps --force
[root@localhost]# rpm -Uvh file.rpm --nodeps --force

更多的參數,請查看 man rpm

舉例應用:

[root@localhost RPMS]# rpm -ivh lynx-2.8.5-23.i386.rpm
Preparing... ########################################### [100%]
1:lynx ########################################### [100%]
[root@localhost RPMS]# rpm -ivh --replacepkgs lynx-2.8.5-23.i386.rpm
Preparing... ########################################### [100%]
1:lynx ########################################### [100%]

註: --replacepkgs 參數是以已安裝的軟體再安裝一次;有時沒有太大的必要;

測試安裝參數 --test ,用來檢查依賴關係;並不是真正的安裝;

[root@localhost RPMS]# rpm -ivh --test gaim-1.3.0-1.fc4.i386.rpm
Preparing... ########################################### [100%]

由新版本降級為舊版本,要加 --oldpackage 參數;

[root@localhost RPMS]# rpm -qa gaim
gaim-1.5.0-1.fc4
[root@localhost RPMS]# rpm -Uvh --oldpackage gaim-1.3.0-1.fc4.i386.rpm
Preparing... ########################################### [100%]
1:gaim ########################################### [100%]
[root@localhost RPMS]# rpm -qa gaim
gaim-1.3.0-1.fc4

為軟體包指定安裝目錄:要加 -relocate 參數;下面的舉例是把gaim-1.3.0-1.fc4.i386.rpm指定安裝在 /opt/gaim 目錄中;

[root@localhost RPMS]# rpm -ivh --relocate /=/opt/gaim gaim-1.3.0-1.fc4.i386.rpm
Preparing... ########################################### [100%]
1:gaim ########################################### [100%]
[root@localhost RPMS]# ls /opt/
gaim

為軟體包指定安裝目錄:要加 -relocate 參數;下面的舉例是把lynx-2.8.5-23.i386.rpm 指定安裝在 /opt/lynx 目錄中;

[root@localhost RPMS]# rpm -ivh --relocate /=/opt/lynx --badreloc lynx-2.8.5-23.i386.rpm
Preparing... ########################################### [100%]
1:lynx ########################################### [100%]

我們安裝在指定目錄中的程序如何調用呢?一般執行程序,都放在安裝目錄的bin或者sbin目錄中;如果有錯誤輸出,就做相應的鏈接,用 ln -s ;

2、刪除一個rpm 包;

首先您要學會查詢rpm 包 ;

[root@localhost]#rpm -e 軟體包名

舉例:我想移除lynx 包,完整的操作應該是:

[root@localhost RPMS]# rpm -e lynx

如果有依賴關係,您也可以用--nodeps 忽略依賴的檢查來刪除。但儘可能不要這麼做,最好用軟體包管理器 systerm-config-packages 來刪除或者添加軟體;

[root@localhost]# rpm -e lynx --nodeps

四、導入簽名:
[root@localhost RPMS]# rpm --import 簽名文件

舉例:

[root@localhost fc40]# rpm --import RPM-GPG-KEY
[root@localhost fc40]# rpm --import RPM-GPG-KEY-fedora

關於RPM的簽名功能,詳情請參見 man rpm

五、RPM管理包管理器支持網路安裝和查詢;

比如我們想通過 Fedora Core 4.0 的一個鏡像查詢、安裝軟體包;

地址:
http://mirrors.kernel.org/fedora/core/4/i386/os/Fedora/RPMS/

舉例:

命令格式:

rpm 參數 rpm包文件的http或者ftp的地址

# rpm -qpi http://mirrors.kernel.org/fedora/core/4/i386/os/ Fedora/RPMS/gaim-1.3.0-1.fc4.i386.rpm
# rpm -ivh http://mirrors.kernel.org/fedora/core/4/i386/os/ Fedora/RPMS/gaim-1.3.0-1.fc4.i386.rpm



六、對已安裝軟體包查詢的一點補充;

[root@localhost RPMS]# updatedb
[root@localhost RPMS]# locate 軟體名或文件名

通過updatedb,我們可以用 locate 來查詢一些軟體安裝到哪裡了;系統初次安裝時要執行updatedb ,每隔一段時間也要執行一次;以保持已安裝軟體庫最新;updatedb 是slocate軟體包所有;如果您沒有這個命令,就得安裝slocate ;

舉例:

[root@localhost RPMS]# locate gaim



七、從rpm軟體包抽取文件;

命令格式: rpm2cpio file.rpm |cpio -div

舉例:

[root@localhost RPMS]# rpm2cpio gaim-1.3.0-1.fc4.i386.rpm |cpio -div

抽取出來的文件就在當用操作目錄中的 usr 和etc中;

其實這樣抽到文件不如指定安裝目錄來安裝軟體來的方便;也一樣可以抽出文件;

為軟體包指定安裝目錄:要加 -relocate 參數;下面的舉例是把gaim-1.3.0-1.fc4.i386.rpm指定安裝在 /opt/gaim 目錄中;

[root@localhost RPMS]# rpm -ivh --relocate /=/opt/gaim gaim-1.3.0-1.fc4.i386.rpm
Preparing... ########################################### [100%]
1:gaim ########################################### [100%]
[root@localhost RPMS]# ls /opt/
gaim

這樣也能一目了然;gaim的所有文件都是安裝在 /opt/gaim 中,我們只是把gaim 目錄備份一下,然後卸掉gaim;這樣其實也算提取文件的一點用法;

八、RPM的配置文件;

RPM包管理的配置文件是 rpmrc ,我們可以在自己的系統中找到;

比如Fedora Core 4.0中的rpmrc 文件位於;

[root@localhost RPMS]# locate rpmrc
/usr/lib/rpm/rpmrc
/usr/lib/rpm/redhat/rpmrc



九、src.rpm的用法:
可能會看到file.src.rpm 格式的軟體包,但不知道如何使用;現簡單介紹一下,

源碼包file.tar.gz、file.tar.bz2 或 file.src.rpm 包都可以編譯出我們可安裝執行的file.rpm包;有些軟體開發者自己會寫把軟體包的源碼包打包成file.src.rpm file.tar.gz file.tar.gz 等,也會寫可執行file.rpm 編譯的腳本文件file.spec;

如果我們技術可行,也是可以自己來寫編譯腳本file.spec文件;通過file.spec 文件,我們自己修改修改,就可以編譯出與自己系統適合的rpm 包;

一、 通過file.src.rpm和file.spec 編譯rpm 包為我所用;

我們在Fedora/Redhat或者其它基於RPM包管理的系統,可以看到 file.src.rpm 和file.rpm ;file.src.rpm 是源碼包的rpm格式;我們也可以安裝它,安裝后出現在 /usr/src/redhat/SOURCE的目錄;

舉例:比如我們要用unrar-3.5.2-1.2.fc4.src.rpm和unrar.spec來編譯出rpm包;

[root@localhost]# ls unrar*
unrar-3.5.2-1.2.fc4.src.rpm unrar.spec

安裝源碼包unrar-3.5.2-1.2.fc4.src.rpm;看一看安裝在哪了呢?

[root@localhost]# rpm -ivh unrar-3.5.2-1.2.fc4.src.rpm

安裝在這裡:

[root@localhost]# ls /usr/src/redhat/SOURCES/unrar
unrar.1 unrarsrc-3.5.2.tar.gz

然後我們通過unrar.spec 來執行,其實他是一個寫好的編譯腳本;

[root@localhost]# rpmbuild --ba unrar.spec

編譯完成:

[root@localhost]# ls /usr/src/redhat/RPMS/i386/
unrar-3.5.2-1.i386.rpm unrar-debuginfo-3.5.2-1.i386.rpm

[root@localhost]# rpm -ivh /usr/src/redhat/RPMS/i386/unrar-3.5.2-1.i386.rpm
Preparing... ########################################### [100%]
1:unrar ########################################### [100%]



[root@localhost]# unrar x mydoc.rar

清理垃圾文件:如果您經常用這種辦法編譯RPM 包,主要清理一下 /usr/src/redhat內各個目錄的內容;

二、 通過file.tar.gz 、file.tar.bz2 和 file.sepc 來編譯rpm ;

我們可以把file.tar.gz 或者 file.tar.bz2放到/usr/src/redhat/SOURCE 目錄中,然後執行file.spec 文件;有時有些軟體開發者會把file.spec 放在源碼包中;這時我們就要解壓後來查看是否是存在;如果有大多是用下面的辦法:

[root@localhost]# cp file.tar.gz /usr/src/redhat/SOURCES/
[root@localhost]# tar zxvf file.tar.gz
[root@localhost]# cd filedir
[root@localhost]# rpmbuild --ba file.spec



三、如果沒有spec 文件,我應該怎麼辦?

如果您只是想安裝這個軟體,可以用下面的辦法;

[root@localhost]# tar zxvf file.tar.gz 或者 tar file.tar.bz2
[root@localhost]# cd filedir
[root@localhost]# ./configure --help

註:可以用--help 來查看參數;如果您不懂如何加,一般就默認就好,試著編譯幾個就知道了;

[root@localhost]# make
[root@localhost]# make install
[root@localhost]# make clean

有些軟體只提供比較老的file.spec 文件,我們可以改造改造file.spec 文件,以適合軟體的新版本;您也可以到 http://svn.rpmforge.net/svn/trunk/rpms 查找是不是有對應的file.spec 文件;

有些軟體不提供file.spec 文件,並且您也在其實資源站上也找不到類似的文件,而且您還想從源碼包打一個file.rpm 包和大家交流,那隻好自己學習編寫了;





2、system-config-packages 本地軟體包管理工具;

如果您在安裝系統時,把有些必要的軟體忘記安裝了,我們可以通過 system-config-packages 來安裝;system-config-packages 是一個管理本地軟體包的工具;更直接一點system-config-packages是通過系統安裝盤來安裝、移除軟體;這個工具極為有用,能解決軟體包之間的依賴關係;Redhat 軟體包管理工具應該是 redhat-config-packages ,用法是一樣的;



一、system-config-packages的安裝和使用;
1、首先確認是不已經安裝 system-config-packages

[root@localhost]# rpm -qa system-config-packages
system-config-packages-1.2.25-1

如果有上面的提示,就是已經安裝;

如果沒有安裝,您可以通過如下的命令來安裝:

[root@localhost]# rpm -ivh system-config-packages*

2、運行system-config-packages

[root@localhost]# system-config-packages --help
Usage: system-config-packages [--help] [--tree=PATH] [--isodir=PATH]

我們可以看到 system-config-packages的幫助,可以看到system-config-packages支持iso補裝或者刪除軟體包;

所以我們在運行這個命令時,要指定ISO的存放位置;

[root@localhost]# system-config-packages --isodir=存放ISO光碟映像的目錄;



所以根據自己系統的情況,用軟體包管理器來添加和刪除軟體的命令是:

[root@localhost]# system-config-packages --isodir=/mnt/wind

注意:如果您把四個ISO存放在某個目錄,必須把四個ISO同時放在一個目錄里;這樣才不會出現讓您播放某張光碟的情況;




二、如何在Linux中打開iso文件?

其實ISO也是一個打包文件,和rar以及zip文件類似,只是他們的格式不同罷了;我們除了用軟體包管理器以外,我們還能用把iso 掛載到一個目錄中;這樣我們也可以用手工來安裝我們所需要的包;

首先我們要把iso 載入到一個目錄,用的是

mount -o loop ISO文件名 目的目錄

比如我們要把 iso 臨時載入到 /mnt/temp目錄中,當然我們首先要建這個目錄

[root@localhost]# mkdir /mnt/temp

然後我們來載入FC4的第一張ISO文件;

[root@localhost]# mount -o loop /mnt/wind/FC4-i386-disc1.iso /mnt/temp/
[root@localhost]# ls /mnt/temp/
autorun GPL README RPM-GPG-KEY RPM-GPG-KEY-fedora-rawhide TRANS.TBL
eula.txt images README-Accessibility RPM-GPG-KEY-beta RPM-GPG-KEY-fedora-test
Fedora isolinux RELEASE-NOTES RPM-GPG-KEY-fedora RPM-GPG-KEY-rawhide

[root@localhost]# mkdir /mnt/hda10/fc40
[root@localhost]# cp -R /mnt/temp/* /mnt/hda10/fc40/

然後我們再載入第二張ISO;

[root@localhost]#umount /mnt/temp 註:先卸載第一個ISO;

我們載入第二個ISO;並和第一個ISO一樣,把所有的文件提出來,放到和第一個ISO提出來的文件存放在同一個目錄;如果遇到提示是不是覆蓋文件,覆蓋就行;第三張和第四張盤都是如此;

通過這個例子,我們知道提取出四張ISO內的所有文件都存放在 /mnt/hda10/fc40目錄中。所以我們想查看Fedora Core 4.0所有的RPM包,就可以到 /mnt/hda10/fc40/Fedora/RPMS目錄中查看,一個都不少,四張盤的都在;

如果想安裝什麼,就用

[root@localhost]#rpm -ivh file.rpm 註:file 是軟體包的名字;



三、其它軟體包管理器,具有在線升級、安裝、移除軟體包功能;

在Fedora 中,還有很兩個軟體包管理器yum 和apt;



3、如何編譯安裝源碼包軟體;

對非file.rpm 軟體包的安裝,我們也應該有點了解,至少下面的文檔能告訴您軟體包中大多有README、INSTALL等幫助文檔;本文還提到一些非file.rpm的軟體的安裝方法等;

源碼包軟體的安裝、卸載;

一、 什麼是源碼包軟體;

顧名思義,源碼包就是源代碼的可見的軟體包,基於Linux和BSD系統的軟體最常見;在國內源可見的軟體幾乎絕跡;大多開源軟體都是國外出品;在國內較為出名的開源軟體有fcitx;lumaqq;Lumaqq及scim等;

但軟體的源代碼可見並不等於軟體是開源的,我們還要以軟體的許可為準;比如有些軟體是源碼可見的,但他約定用戶只能按他約定的內容來修改;比如vbb論壇程序;所以一個軟體是否是開源軟體,得具備兩個條件;一是源代碼可見;二是要有寬鬆的許可證書,比如GPL證書等;

在GNU Linux或BSD社區中,開發人員在放出軟體的二進位軟體包的同時,也會為我們提供源代碼軟體包;

二、 源代碼有何用?

一個軟體的如果有源碼,是任何人都能看到他是怎麼開發而來的,開發者在給我們軟體的同時,也會告訴我們軟體是怎麼開發出來的;只要我們的水平足夠的高,所有的代碼都在那裡,我們就可以修改和定製軟體,以適合我們的需要;如果Windows開放源代碼,並以GPL發布,一樣是有人能造出來N多的Windows發行版;遺憾的是Windows並不是開源系統;

所以軟體的源代碼的用處無非是以下兩點;
1、軟體根據用戶的需要加以定製;
2、二次開發;註:要根據軟體的許可證書約定為準,開發者許可二次開發才行;

三、怎樣安裝以源碼包打包的軟體;
1、源碼包的打包格式;

源代碼一般以file.tar.gz file.tar.bz2或file.src.rpm 打包;file.tar.gz和file.tar.bz2格式的解包命令如下;

[root@localhost]# tar jxvf file.tar.bz2
[root@localhost]# tar zxvf file.tar.gz

2、如何編譯安裝源碼包;(大多數)
1)解開軟體包查看幫助文檔;

我們解開一個包后,進入解壓包,一般都能發現README(或reame)和INSTALL( 或install);或doc(或DOC)目錄;看名字就知道個差不多;

比如我們下載一個比較新的fcitx 的軟體包,比如是 fcitx-3.2-050827.tar.bz2

我們在解開這個軟體包會會發現如下的文件;

[root@localhost fcitx]# tar jxvf fcitx-3.2-050827.tar.bz2
[root@localhost fcitx]#cd fcitx
[root@localhost fcitx]# ls
aclocal.m4 config.guess configure debian INSTALL Makefile.in src xpm
AUTHORS config.h.in configure.in depcomp install-sh missing THANKS
autogen.sh config.rpath COPYING doc lib mkinstalldirs TODO
ChangeLog config.sub data fcitx.spec.in Makefile.am README tools

所以我們就可以看fcitx的INSTALL 和doc目錄的安裝文檔了;裡面都告訴我們如何安裝;

2)編譯安裝軟體的條件;

首先我們在Linux系統中至少得把開發工具安裝上,比如gcc ;perl;python;glibc;gtk;make ;automake 等開發工具或基礎包;還要安裝一些相應的開發包,一般是文件名包括dev的,比如kernel-devel;還有一些開發庫,比如以lib開頭的;如果您在編譯軟體時,有時提示缺少什麼東西之類的,大多少的是這些開發工具和開發庫等;從光碟中找出安裝就是了;有時可能也會用到源碼包編譯安裝所依賴的包;

有時本來系統中已經安裝了所依賴的包,但系統提示找不到應該怎麼辦?這時需要我們設置一下PKG_CONFIG_PATH的環境變數就行了;

#export PKG_CONFIG_PATH=/usr/lib/pkgconfig

#export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
然後我們再來運行編譯的./configure ;make ;make install

用perl 開發的程序,是需要perl環境的,所以必須得把perl的包安裝上,python 也同理;

3)編譯安裝軟體的方法;

大多以tar.gz 和tar.bz2打包軟體,大多是通過 ./configure ;make ;make install 來安裝的;有的軟體是直接make;make install ;

我們可以通過./configure --help 來查看配置軟體的功能;大多軟體是提供./configure 配置軟體的功能的;少數的也沒有,如果沒有的就不用./configure ;直接make;make install 就行了;

./configure 比較重要的一個參數是 --prefix ,用--prefix 參數,我們可以指定軟體安裝目錄;當我們不需要這個軟體時,直接刪除軟體的目錄就行了;

比如我們可以指定fcitx 安裝到 /opt/fcitx 目錄中;

[root@localhost fcitx]#./configure --prefix=/opt/fcitx

如果我們不需要fcitx 時,可以直接刪除 /opt/fcitx 目錄;

所以我們舉這個例子中,fcitx如果定製安裝到 /opt/fcitx目錄中,完整的安裝方法應該是:

[root@localhost fcitx]# tar jxvf fcitx-3.2-050827.tar.bz2
[root@localhost fcitx]#cd fcitx
[root@localhost fcitx]# ./configure --prefix=/opt/fcitx
[root@localhost fcitx]# make
[root@localhost fcitx]# make install

調用fcitx ,應該是

[root@localhost]#/opt/fcitx/bin/fcitx

如果您想要讓fcitx 只要執行fcitx ,就能調用,請配置環境變數,或者在/usr/bin 中做一個fcitx 的鏈接;



3.其它類型軟體;
1)基於perl 和python 的程序的安裝;

一般情況下,用 #perl file.pl安裝;比如:VMware 的Linux版本的安裝;

[root@localhost vmware-distrib]# perl vmware-install.pl

基於python 開發,也得用 python file.py 來安裝

一般軟體包都有README和INSTALL 或者 DOC 文檔,看文檔安裝;
2)有些安裝程序是腳本型的調用;要用 #sh 文件名

比如NVdia驅動的安裝就是這樣的;

[root@localhost]# sh NFORCE-Linux-x86-1.0-0306-pkg1.run

當然也能通過 chmod 755 NFORCE-Linux-x86-1.0-0306-pkg1.run ,然後 ./NFORCE-Linux-x86-1.0-0306-pkg1.run 來安裝;

也有一些是以file.bin 文件

[root@localhost]# chmod 755 file.bin
[root@localhost]# ./file.bin

源碼包及特殊格式的軟體安裝主要還是以軟體的安裝文檔為準;安裝軟體時,如果只是簡單的應用,如果有rpm包,儘可能的用rpm包;主要是方便和易於管理;

目前 apt和yum 已經極為成熟了,建議我們安裝軟體時採用 apt或者yum ;如果安裝系統盤提供的軟體包,可以用 system-config-packages 或redhat-config-packages ;



4、file.src.rpm 是做什麼用的?

file.src.rpm 是源碼包以rpm 包格式打包,了解一下file.src.rpm 也是有用的;

上面有簡單的介紹;

二、軟體包管理工具;

1、system-config-packages ;

再重提一下這個工具,放在軟體包基礎中顯示極重要性,放在這裡再提一下也適合;

2、yum 在線更新軟體包,也能管理本地已經安裝的軟體包工具;

Fedora/Redhat 由於有yum 和apt,這兩個強大的在線更新工具以及Fedora 擴充計劃的推出,才使其有了第二生命力;yum和apt工具能自動解決依賴關係;常期以來由於軟體包的依賴關係不能得到很好的解決,使很多Fedora / Redhat 用戶投入到更容易解決軟體包依賴的發行版;yum 和apt 無疑是Fedora / Redhat 強心劑;

我們用的是Redhat/Fedora通過在線安裝更新軟體包,除了系統自帶的up2date以外,我們還有更為強大的在線升級工具 yum 和 apt-get 可用。主要資源有 freshrpms.net和 rpm.livna.org ;

一、 yum 的使用;

不用系統自帶的圖形化工具up2date來升級,卻要用 yum是因為up2date 真是奇慢無比,而且經常失去響應;造成機器假死的情況。所以我們還是試一試yum ;另外freshrpms.net 可能比官方站更快的更新升級源,也沒有理由不用 yum;
1、首先我們要到下面的地址下載與自己系統相對應的版本的 yum;

http://ayo.freshrpms.net/

比如我用的是Fedora core 4.0 就下載如下的包安裝;

[root@localhost]# rpm -ivh freshrpms-release-1.1-1.fc.noarch.rpm
warning: freshrpms-release-1.1-1.fc.noarch.rpm: Header V3 DSA signature: NOKEY, key ID e42d547b
Preparing... ########################################### [100%]
1:freshrpms-release ########################################### [100%]



2、安裝軟體舉例;

比如我要安裝能聽mp3的 bmp-mp3,只要輸入下面的命令行即可,系統就自己工作了;

[root@localhost]# yum install bmp-mp3

內容全景如下:

[root@localhost]# yum install bmp-mp3
Setting up Install Process
Setting up repositories
updates-released 100% |=========================| 951 B 00:00
extras 100% |=========================| 1.1 kB 00:00
base 100% |=========================| 1.1 kB 00:00
freshrpms 100% |=========================| 951 B 00:00
Reading repository metadata in from local files
primary.xml.gz 100% |=========================| 42 kB 00:03
freshrpms : ################################################## 122/122
Added 122 new packages, deleted 0 old in 0.72 seconds
Parsing package install arguments
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for bmp-mp3 to pack into transaction set.
bmp-mp3-0.9.7-1.2.fc4.i38 100% |=========================| 2.9 kB 00:00
---> Package bmp-mp3.i386 0:0.9.7-1.2.fc4 set to be updated
--> Running transaction check
--> Processing Dependency: libid3-3.8.so.3 for package: bmp-mp3
--> Processing Dependency: libbeep.so.2 for package: bmp-mp3
--> Processing Dependency: bmp >= 0.9.7 for package: bmp-mp3
--> Restarting Dependency Resolution with new changes.
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for id3lib to pack into transaction set.
id3lib-3.8.3-11.fc4.i386. 100% |=========================| 38 kB 00:05
---> Package id3lib.i386 0:3.8.3-11.fc4 set to be updated
---> Downloading header for bmp to pack into transaction set.
bmp-0.9.7-10.fc4.i386.rpm 100% |=========================| 14 kB 00:03
---> Package bmp.i386 0:0.9.7-10.fc4 set to be updated
--> Running transaction check
Dependencies Resolved
=============================================================================
Package Arch Version Repository Size
=============================================================================
Installing:
bmp-mp3 i386 0.9.7-1.2.fc4 freshrpms 95 k
Installing for dependencies:
bmp i386 0.9.7-10.fc4 extras 912 k
id3lib i386 3.8.3-11.fc4 extras 752 k
Transaction Summary
=============================================================================
Install 3 Package(s)
Update 0 Package(s)
Remove 0 Package(s)
Total download size: 1.7 M
Is this ok [y/N]: y
Downloading Packages:
(1/3): id3lib-3.8.3-11.fc 100% |=========================| 752 kB 01:04
(2/3): bmp-0.9.7-10.fc4.i 100% |=========================| 912 kB 02:14
(3/3): bmp-mp3-0.9.7-1.2. 100% |=========================| 95 kB 00:05
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing: bmp ######################### [1/3]
Installing: id3lib ######################### [2/3]
Installing: bmp-mp3 ######################### [3/3]
Installed: bmp-mp3.i386 0:0.9.7-1.2.fc4
Dependency Installed: bmp.i386 0:0.9.7-10.fc4 id3lib.i386 0:3.8.3-11.fc4
Complete!

註:yum優點:軟體包依賴關係自行解決,比如上面的,我們可以看到本來我們只安裝的是bmp-mp3,結果yum 安裝也安裝了 id3lib ;bmp
一、 yum的一點小用法;
1、查詢軟體包;

面對成千上萬的軟體,我們可能無從下手,有時也不知道它的文件名;這時就要用到查詢;我們可以用 yum list 來列出yum升級源上的包有文件;然後我們再來查看 info有以下幾個組合可以用;比如;

[root@localhost]# yum list |more

在顯示的軟體列表中,會有軟體名稱、版本、是否安裝等;仔細的看一下吧。熟悉了就好了。也沒有什麼難的。

[root@localhost]# yum list |more
Setting up repositories
Reading repository metadata in from local files
Installed Packages
4Suite.i386 1.0-8.b1 installed
Canna.i386 3.7p3-13 installed
Canna-devel.i386 3.7p3-13 installed

如果想知道軟體的詳細信息,可能得用上info參數了。比如:

用法:

[root@localhost]# yum info 軟體名

比如:

[root@localhost]# yum info bmp-mp3
Setting up repositories
updates-released 100% |=========================| 951 B 00:00
extras 100% |=========================| 1.1 kB 00:00
base 100% |=========================| 1.1 kB 00:00
freshrpms 100% |=========================| 951 B 00:00
Reading repository metadata in from local files
Installed Packages
Name : bmp-mp3
Arch : i386
Version: 0.9.7
Release: 1.2.fc4
Size : 234 k
Repo : freshrpms
Summary: MP3 playback plugin for the Beep Media Player
Description:
This package contains an MP3 playback plugin for BMP (Beep Media Player),
a media player that uses a skinned user interface based on Winamp 2.x skins,
and is based on ("forked off") XMMS.

在上面的例子中,如果Repo : freshrpms是這樣的,表示您的系統沒有安裝這個軟體,如果顯示的是:Repo : installed,表示已經安裝了。

查詢軟體包,也可以再加參數 grep ,比如我們想查詢升級源上是否有內核的新版本,則我們可以用下面的命令查詢;當然您也可以用 [root@localhost]# yum search kernel |more ,也就是yum --help提供的參數,也是一樣的;

[root@localhost]# yum list |grep kernel



我們看一下機器工作的結果,如下:

[root@localhost]# yum list |grep kernel
GFS-kernel.i686 2.6.11.8-20050601.1526 installed
cman-kernel.i686 2.6.11.5-20050601.1526 installed
dlm-kernel.i686 2.6.11.5-20050601.1526 installed
gnbd-kernel.i686 2.6.11.2-20050420.1331 installed
kernel.i686 2.6.11-1.1369_FC4 installed
kernel-devel.i686 2.6.11-1.1369_FC4 installed
kernel-doc.noarch 2.6.11-1.1369_FC4 installed
GFS-kernel.i586 2.6.11.8-20050601.1526 base
GFS-kernel-debuginfo.i686 2.6.11.8-20050601.1526 updates-released
GFS-kernel-debuginfo.i586 2.6.11.8-20050601.1526 updates-released
GFS-kernel-smp.i686 2.6.11.8-20050601.1526 base
GFS-kernel-xen0.i686 2.6.11.8-20050601.1526 base
GFS-kernel-xenU.i686 2.6.11.8-20050601.1526 base
cman-kernel.i586 2.6.11.5-20050601.1526 updates-released
cman-kernel.i686 2.6.11.5-20050601.1526 updates-released
cman-kernel-debuginfo.i586 2.6.11.5-20050601.1526 updates-released
cman-kernel-debuginfo.i686 2.6.11.5-20050601.1526 updates-released
cman-kernel-smp.i686 2.6.11.5-20050601.1526 updates-released
cman-kernel-xen0.i686 2.6.11.5-20050601.1526 updates-released
cman-kernel-xenU.i686 2.6.11.5-20050601.1526 updates-released
dlm-kernel.i686 2.6.11.5-20050601.1526 updates-released
dlm-kernel.i586 2.6.11.5-20050601.1526 updates-released
dlm-kernel-debuginfo.i586 2.6.11.5-20050601.1526 updates-released
dlm-kernel-debuginfo.i686 2.6.11.5-20050601.1526 updates-released
dlm-kernel-smp.i686 2.6.11.5-20050601.1526 updates-released
dlm-kernel-xen0.i686 2.6.11.5-20050601.1526 updates-released
dlm-kernel-xenU.i686 2.6.11.5-20050601.1526 updates-released
gnbd-kernel.i686 2.6.11.2-20050420.1331 updates-released
gnbd-kernel.i586 2.6.11.2-20050420.1331 updates-released
gnbd-kernel-debuginfo.i586 2.6.11.2-20050420.1331 updates-released
gnbd-kernel-debuginfo.i686 2.6.11.2-20050420.1331 updates-released
gnbd-kernel-smp.i686 2.6.11.2-20050420.1331 updates-released
gnbd-kernel-xen0.i686 2.6.11.2-20050420.1331 updates-released
gnbd-kernel-xenU.i686 2.6.11.2-20050420.1331 updates-released
kernel.i586 2.6.12-1.1398_FC4 updates-released
kernel.i686 2.6.12-1.1398_FC4 updates-released
kernel-debuginfo.i686 2.6.12-1.1398_FC4 updates-released
kernel-debuginfo.i586 2.6.12-1.1398_FC4 updates-released
kernel-devel.i586 2.6.12-1.1398_FC4 updates-released
kernel-devel.i686 2.6.12-1.1398_FC4 updates-released
kernel-doc.noarch 2.6.12-1.1398_FC4 updates-released
kernel-smp.i686 2.6.12-1.1398_FC4 updates-released
kernel-smp-devel.i686 2.6.12-1.1398_FC4 updates-released
kernel-xen0.i686 2.6.12-1.1398_FC4 updates-released
kernel-xen0-devel.i686 2.6.12-1.1398_FC4 updates-released
kernel-xenU.i686 2.6.12-1.1398_FC4 updates-released
kernel-xenU-devel.i686 2.6.12-1.1398_FC4 updates-released



比如我們用的機器是單處理器的X86機,想看一下是否有新內核可用。所以咱們試一下下面的這個。看是否已經有了新內核可以升級的;

[root@localhost]# yum info kernel.i686
Setting up repositories
updates-released 100% |=========================| 951 B 00:00
extras 100% |=========================| 1.1 kB 00:00
base 100% |=========================| 1.1 kB 00:00
freshrpms 100% |=========================| 951 B 00:00
Reading repository metadata in from local files
Installed Packages
Name : kernel
Arch : i686
Version: 2.6.11
Release: 1.1369_FC4
Size : 37 M
Repo : installed
Summary: Linux 內核(Linux 操作系統的核心)。
Description:
kernel 軟體包包含 Linux 內核 (vmlinuz),Red Hat Linux
操作系統的核心。內核處理操作系統的基本功能:
分配內存、處理分配、設備的輸入和輸出等等。
Available Packages
Name : kernel
Arch : i686
Version: 2.6.12
Release: 1.1398_FC4
Size : 14 M
Repo : updates-released
Summary: The Linux kernel (the core of the Linux operating system)
Description:
The kernel package contains the Linux kernel (vmlinuz), the core of any
Linux operating system. The kernel handles the basic functions
of the operating system: memory allocation, process allocation, device
input and output, etc.

通過上面的信息,我們可以看到 2.6.11的是已經安裝了,因為已經顯示的是Repo : installed ,下面還有一個Version: 2.6.12 ,告訴我們是Repo : updates-released,看來這個是升級用的了。

[root@localhost]# yum update kernel

升級內核全景如下:

[root@localhost]# yum update kernel
Setting up Upgrade Process
Setting up repositories
updates-released 100% |=========================| 951 B 00:00
extras 100% |=========================| 1.1 kB 00:00
base 100% |=========================| 1.1 kB 00:00
freshrpms 100% |=========================| 951 B 00:00
Reading repository metadata in from local files
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for kernel to pack into transaction set.
kernel-2.6.12-1.1398_FC4. 100% |=========================| 174 kB 00:18
---> Package kernel.i686 0:2.6.12-1.1398_FC4 set to be installed
--> Running transaction check
Dependencies Resolved
=============================================================================
Package Arch Version Repository Size
=============================================================================
Installing:
kernel i686 2.6.12-1.1398_FC4 updates-released 14 M
Transaction Summary
=============================================================================
Install 1 Package(s)
Update 0 Package(s)
Remove 0 Package(s)
Total download size: 14 M
Is this ok [y/N]:

是不是升級,只需要在 Is this ok [y/N]:行的後面輸入y或者N;

對於軟體包的查詢,還有,比如:

[root@localhost]# yum list available 列出所有升級源上的包;
[root@localhost]# yum list updates 列出所有升級源上的可以更新包;
[root@localhost]# yum list installed 列出已經安裝的包;

yum 的命令支持通配符; 比如;

[root@localhost]# yum list mp* |more
Setting up repositories
Reading repository metadata in from local files
Installed Packages
mpage.i386 2.5.4-5 installed
Available Packages
mpc.i386 0.11.2-3 extras
mpeg2dec.i386 0.4.0-5b.2.fc4 freshrpms
mpeg2dec-devel.i386 0.4.0-5b.2.fc4 freshrpms
mpg321.i386 0.2.10-6.2.fc4 freshrpms
mplayer.i386 1.0-0.16.pre7.2.fc4 freshrpms
mplayer-docs.i386 1.0-0.16.pre7.2.fc4 freshrpms
mplayer-fonts.noarch 1.1-3.fc freshrpms
mplayer-skins.noarch 1.7-1.fc freshrpms
[root@localhost]#



2.安裝和升級軟體包;

安裝和升級分別是 install 和 update 參數;比如;

[root@localhost]# yum update firefox

這樣我們就可以升級 firefox了。

[root@localhost]# yum update firefox
Setting up Update Process
Setting up repositories
updates-released 100% |=========================| 951 B 00:00
extras 100% |=========================| 1.1 kB 00:00
base 100% |=========================| 1.1 kB 00:03
freshrpms 100% |=========================| 951 B 00:02
Reading repository metadata in from local files
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Package firefox.i386 0:1.0.6-1.1.fc4 set to be updated
--> Running transaction check
Dependencies Resolved
=============================================================================
Package Arch Version Repository Size
=============================================================================
Updating:
firefox i386 1.0.6-1.1.fc4 updates-released 18 M
Transaction Summary
=============================================================================
Install 0 Package(s)
Update 1 Package(s)
Remove 0 Package(s)
Total download size: 18 M
Is this ok [y/N]:



如果不加參數的 update 會是什麼呢??

[root@localhost]# yum update

試著運行一下看看?會好長時間,對系統進行全面更新,我們要進行y和N了。



3.移除軟體包要用到remove參數;比如;

[root@localhost]# yum remove bmp-mp3

內容全景如下:

[root@localhost]# yum remove bmp-mp3
Setting up Remove Process
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Package bmp-mp3.i386 0:0.9.7-1.2.fc4 set to be erased
--> Running transaction check
Dependencies Resolved
=============================================================================
Package Arch Version Repository Size
=============================================================================
Removing:
bmp-mp3 i386 0.9.7-1.2.fc4 installed 234 k
Transaction Summary
=============================================================================
Install 0 Package(s)
Update 0 Package(s)
Remove 1 Package(s)
Total download size: 0
Is this ok [y/N]:
按y就移除了;



三、yum的圖形工具;
一、yum 在線安裝、移除、更新及管理rpm軟體包工具;
我們除了系統提供的軟體包管理工具 system-config-packages ,但這個軟體包管理工具,只能用於系統安裝盤提供的軟體的管理;

Fedora也提供了 up2date升級工具,但這個工具明顯無任何優勢;升級速度慢,效率低下,大多人是忍受不了 up2date折磨的;

yum 工具是Fedora 推薦使用的在線升級更新軟體包的工具,在安裝系統時,一般都是默認安裝;yum 是一個命令行式的工具,如果您不習慣命令行式的yum,您可以用yumex和kyum;

yumex和kyum並不是獨立於yum的,而是yum的圖形前端,也就是說,我們在安裝和使用yumex和kyum同時,都是以yum的安裝和配置為基礎;您在用yumex或kyum 時,必須先安裝配置yum ;

二、安裝yumex;

註:您在用yumex或kyum 時,必須先安裝配置yum ;

如果您用 kde桌面,您可以用kyum,yunex和kyum二者任選其一,找一個自己習慣的就行;

1、yumex 的安裝和使用;

首先確認系統是不是有yumex

[root@localhost]# rpm -q yumex
yumex-0.42-3.0.fc4

如果沒有類似的輸出,請用下面的命令安裝,前提是您已經完成了前面說的yum的配置;

[root@localhost]# yum install yumex

2、yumex的調用:

[root@localhost]# yumex

3、yumex的操作;會點滑鼠就會用 yumex





三、安裝kyum ;

註:yumex 和kyum您只需選擇一個適合您的就行,沒有必要兩個都安裝,不過嘗試一下再做選擇也好;

1、安裝kyum ;

[root@localhost]# yum install kyum

2、調用kyum ;

[root@localhost]# kyum

3、用法圖示;




四、關於yum補充:
yum主頁地址:

http://www.linux.duke.edu/projects/yum



四、yum的幫助;

[root@localhost]# yum --help
Usage: yum [options] < update | install | info | remove | list |
clean | provides | search | check-update | groupinstall |
groupupdate | grouplist | groupinfo | groupremove |
makecache | localinstall | shell >
Options:
-c [config file] - specify the config file to use
-e [error level] - set the error logging level
-d [debug level] - set the debugging level
-y - answer yes to all questions
-R [time in minutes] - set the max amount of time to randomly run in
-C run from cache only - do not update the cache
--installroot=[path] - set the install root (default '/')
--version - output the version of yum
--exclude=package to exclude
--disablerepo=repository id to disable (overrides config file)
--enablerepo=repository id to enable (overrides config file)
-h, --help - this screen



[root@localhost]#man yum









3、apt 在線更新軟體包,也能管理本地已經安裝的軟體包工具;

apt+synaptic 小巧輕快,反應速度快,是最佳的搭檔;

apt是輕量級的在線安裝升級的軟體包管理系統,synaptic 是圖形化的apt軟體包管理工具。能夠管理Fedora core 4.0 系統及升級源的所有的軟體包;是一個極為方便的軟體包管理工具;兩者配合,效果最佳;

一、apt的安裝和簡單用法;

1、apt的安裝;

#rpm -ivh http://ftp.freshrpms.net/pub/fed ... cnc7-6.fc4.i386.rpm

2、導入GPG簽名;

#rpm --import http://svn.rpmforge.net/svn/bran ... M-GPG-KEY.freshrpms
#rpm --import http://rpm.livna.org/RPM-LIVNA-GPG-KEY

3、加Fedora core 4.0的源;

在/etc/apt/目錄中找到 sources.list,在裡面加如下的兩行;

rpm http://ayo.freshrpms.net fedora/linux/4/i386 core extras updates freshrpms
rpm http://rpm.livna.org/ fedora/4/i386 lvn

4.apt 簡單的應用;
1]安裝和配置好apt的第一步是執行 apt-get update ,目的是來從apt源中取回軟體包的列表;也就是我們上面說的那個sources.list提到的源;

[root@localhost]# apt-get update
You don't seem to have one or more of the needed GPG keys in your RPM database.
Importing them now...
Get:1 http://ayo.freshrpms.net fedora/linux/4/i386 release [1834B]
Fetched 1834B in 8s (222B/s)
Get:1 http://ayo.freshrpms.net fedora/linux/4/i386/core pkglist [518kB]
Get:2 http://ayo.freshrpms.net fedora/linux/4/i386/core release [151B]
Get:3 http://ayo.freshrpms.net fedora/linux/4/i386/extras pkglist [1262kB]
Get:4 http://ayo.freshrpms.net fedora/linux/4/i386/extras release [155B]
Get:5 http://ayo.freshrpms.net fedora/linux/4/i386/updates pkglist [1107kB]
Get:6 http://ayo.freshrpms.net fedora/linux/4/i386/updates release [157B]
Get:7 http://ayo.freshrpms.net fedora/linux/4/i386/freshrpms pkglist [65.3kB]
Get:8 http://ayo.freshrpms.net fedora/linux/4/i386/freshrpms release [161B]
Fetched 2952kB in 59s (49.9kB/s)
Reading Package Lists... Done
Building Dependency Tree... Done

2]安裝、升級、移除軟體包的用法;
a)軟體包的安裝;

[root@localhost]# apt-get install 軟體包名稱

註:不要加版本號,軟體名就好;

比如我們想安裝或者升級firefox ,就可以直接用 apt-get install firefox ;

[root@localhost]# apt-get install firefox
Reading Package Lists... Done
Building Dependency Tree... Done
The following packages will be upgraded
firefox (1.0.4-4 => 1.0.6-1.1.fc4)
1 upgraded, 0 newly installed, 0 removed and 234 not upgraded.
Need to get 19.2MB of archives.
After unpacking 17.0kB of additional disk space will be used.
Get:1 http://ayo.freshrpms.net fedora/linux/4/i386/updates firefox 0:1.0.6-1.1.fc4 [19.2MB]
Fetched 19.2MB in 6m25s (49.8kB/s)
Checking GPG signatures... ########################################### [100%]
Committing changes...
Preparing... ########################################### [100%]
1:firefox ########################################### [100%]
Done.
b)移除軟體包;

[root@localhost]# apt-get remove 軟體包名
舉例:
[root@localhost]# apt-get remove firefox

c)對系統全面升級;

[root@localhost]# apt-get upgrade
[root@localhost]# apt-get dist-upgrade

這兩個功能差不多;
d)常用的參數選項;
[root@localhost]# apt-get install -y 軟體包名

比如:

[root@localhost]# apt-get install -y gaim

註:如果意外中斷的包下載和安裝,可以用-y參數來繼續下載安裝,如上面gaim我下載到10%,可以用上面的命令接著來下載安裝或者升級;

[root@localhost]# apt-get install -d 軟體包名

比如:

[root@localhost]# apt-get install -d

註:只是下載軟體包,不解包,也不安裝,下載到本地機的目錄為 /var/cache/apt/archives

3]清理apt-get 後下載下來的包和未完成的包;

[root@localhost]# apt-get clean

通過apt-get下載下來的包存放在 /var/cache/apt/archives目錄中;有時我們中斷一些正在apt-get 的包,這樣的包沒有完全下載下來;我們也可以清理掉;也可以用繼續接著下載安裝,也可以清理掉;

這樣apt-get clean 就會刪除 已經下載完成的位於/var/cache/apt/archives目錄的所有包;也會清理掉下載未完成的包位於/var/cache/apt/archives/partial/

這個功能還是比較有用的,因為apt-get 下載和安裝量極大,要定期清理;

二、synaptic的安裝和用法;

相對 apt-get的命令行操作來說,synaptic的操作還是極為簡單的;synaptic全是點滑鼠可視化操作;
1]安裝:

[root@localhost]# apt-get install synaptic
Reading Package Lists... Done
Building Dependency Tree... Done
The following NEW packages will be installed:
synaptic (0.57.2-1.fc4)
0 upgraded, 1 newly installed, 0 removed and 234 not upgraded.
Need to get 1682kB of archives.
After unpacking 4311kB of additional disk space will be used.
Get:1 http://ayo.freshrpms.net fedora/linux/4/i386/extras synaptic 0.57.2-1.fc4 [1682kB]
Fetched 1682kB in 46s (36.2kB/s)
Checking GPG signatures... ########################################### [100%]
Committing changes...
Preparing... ########################################### [100%]
1:synaptic ########################################### [100%]
Done.

2]用法

想安裝點什麼就安裝什麼;

[火星人 ] Linux系統下軟體包管理已經有893次圍觀

http://coctec.com/docs/linux/show-post-202773.html