歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux服務器 >> 為Redhat操作系統增加APT軟件包管理工具

為Redhat操作系統增加APT軟件包管理工具

日期:2017/3/2 16:53:56   编辑:Linux服務器

一、 簡介

redhat采用了RPM軟件包管理系統,RPM軟件包管理系統具有強大的編譯安裝功能,但是由於歷史原因,RPM軟件包管理系統對軟件之間的依存關系沒有內部定義,造成安裝RPM軟件時經常出現令人無法理解的軟件依賴問題。

debian系統則基於apt(Advanced Packaging Tool)工具進行軟件包管理,可以自動解決並安裝倚賴軟件包,因此debian linux被認為是最容易管理和升級的系統,apt工具也被認為是目前最好的軟件包管理工具之一。為了解決redhat包管理系統的致命問題,Conectiva Linux將apt系統移植到了使用rpm軟件包管理系統的Linux系統下,使得基於RPM軟件包的系統可以利用apt工具提供的自動解決倚賴關系的能力。目前已經有很多為redhat linux提供apt方式升級管理軟件包的站點,如http://freshrpms.net , http://apt.unl.edu等等,使得redhat也成為可以利用apt工具的發行版之一,本文介紹如何在redhat linux系統安裝和使用apt軟件包管理工具。

為了對apt工具的特性有一個大致的了解,下面先介紹幾個使用apt with rpm管理系統的實例:
(1)刪除一個軟件包時自動刪除相關軟件包:
[root@linux root]# apt-get remove nessus-common

2)自動下載安裝依賴包:
[root@linux root]# apt-get install nessus-server

(3)維護系統軟件,自動更新系統 :
[root@linux root]# apt-get upgrade

  二、APT 簡易運作原理

我們的機器安裝了 APT 套件之後就成了 APT 的使用者端,當我們在安裝、升級 RPM 的時候,事實上,都是透過網絡連到遠程的 APT 服務器去下載 RPM 回來安裝的,APT 服務器我們是可以自己指定的,而 APT 使用者端也可以同時成為 APT 服務器(在第二節我們會講到 APT 服務器的架設)

apt-get update 指令會同步使用者端和 APT 服務器的 RPM 索引清單(package list),APT 服務器的 RPM 索引清單置於 base 資料夾內(base 數據夾是由 genbasedir 指令所產生),使用者端計算機取得 base 資料夾內的 bz2 RPM 索引清單壓縮文件後,會將其解壓置放於 /var/state/apt/lists/,而使用者使用 apt-get install 或 apt-get dist-upgrade 指令的時候,就會將這個資料夾內的資料和使用者端計算機內的 RPM 數據庫比對,如此一來就可以知道那些 RPM 已安裝、未安裝、或是可以升級的,所以一旦 APT 服務器內的 RPM 有所更動,一定要記得使用 genbasedir 指令產生新的RPM索引清單。

  三、安裝apt with rpm及其圖形界面前端synaptic

下面簡單介紹一下如何下載和安裝apt with rpm
apt with rpm可以直接到 [url]http://freshrpms.net[/url] 下載安裝,目前該站點提供了redhat 6.2, 7.x和8.0的軟件升級服務,下面是幾個常用redhat版本的apt下載地址:
redhat 6.2 http://ftp.freshrpms.net/pub/freshrpms/redhat/6.2/apt/apt-0.5.4cnc7-fr0.62.1.i386.rpm
redhat 7.2 http://ftp.freshrpms.net/pub/freshrpms/redhat/7.2/apt/apt-0.3.19cnc55-fr7.i386.rpm
redhat 7.3 http://ftp.freshrpms.net/pub/freshrpms/redhat/7.3/apt/apt-0.5.4cnc9-fr0.1.rh73.i386.rpm
redhat 8.0 http://ftp.freshrpms.net/pub/freshrpms/redhat/8.0/apt/apt-0.5.4cnc9-fr1.i386.rpm
redhat 9.0 http://ftp.freshrpms.net/pub/freshrpms/redhat/9/apt/apt-0.5.5cnc6-fr1.i386.rpm
下載後使用rpm命令安裝:

[root@linux root]# rpm -ihv apt-0.5.4cnc9-fr1.i386.rpm
freshrpms.net同時提供了一個圖形界面的apt-rpm接口synaptic,使用圖形界面的apt更加方便,安裝了apt後,可以直接利用apt安裝synaptic:
[root@linux root]# apt-get update
[root@linux root]# apt-get install synaptic
在幾行提示之後Synaptic就安裝好了,進入Xwindow,synaptic會出現在“系統設置”菜單裡面。

  使用apt

在redhat上面使用apt和在debian下面使用幾乎完全一樣,配置文件在/etc/apt/,按照前面介紹安裝好apt之後就可以使用並可以更新redhat提供的RPM更新以及freshrpms.net提供的更新了。主要運行命令如下:

(1)更新軟件列表,獲取遠程rpm服務器上的軟件列表和相互依賴關系列表,所有可用軟件的下載地址都在/etc/apt/sources.list裡面定義,下面的多數下載操作地址也是在這裡定義的。
[root@linux root]# apt-get update

(2)檢查本地軟件依賴關系合法性,由於rpm系統的問題,很多系統會存在一些依賴問題,用下面命令檢查依賴關系,同時apt-get會提供一些修復方案,只有本機沒有依賴關系問題了才能良好地使用apt-rpm。一個新安裝的干淨系統不會有依賴關系問題。
[root@linux root]# apt-get check

(3)安裝或升級一個新軟件
[root@linux root]# apt-get install package-name
package-name是rpm包的名字的前面部分,不包含版本號,如果選擇不同的處理器類型,可以在後面添加@i686等標識。

(4)升級所有系統軟件
[root@linux root]# apt-get upgrade

(5)全面升級,比upgrade更加智能化的升級,同時解決升級時的一些依賴關系
[root@linux root]# apt-get dist-upgrade

(6)卸載軟件,同時卸載依賴軟件
[root@linux root]# apt-get remove package-name

(7)清除本地下載的rpm包,rpm包下載後保存在/var/cache/apt/archieves下面,本命令清除已下載安裝過的rpm文件
[root@linux root]# apt-get clean

(8)apt-cache showpkg
顯示軟件包的一些常規信息
[root@linux root]# apt-cache showpkg openssh

(9)apt-cache stats
顯示相關的統計信息顯示相關的統計信息

(10)apt-cache dump
顯示緩存中的每個軟件包的簡要描述信息

(11)apt-cache unmet
顯示不符合一致性的依賴關系

(12)apt-cache show
顯示指定軟件包的記錄信息。類似於rpm -qi

(13)apt-cache search
查找軟件包,類似於rpm -qa|grep package_name
例: apt-cache search openssh

(14)apt-cache depends
顯示軟件包的依賴性關系

(15)apt-cache pkgnames
列出所有的軟件包
例: $ apt-cache pkgnames openss
openssh-askpass
openssl096
openssl-perl
openssl095a
openssl-python
openssh-clients
openssl-devel
openssh-askpass-gnome
openssh
openssl
openssh-server

(16)apt-config dump 顯示目前的配置信息。

以上所有命令都可以通過圖形界面的前端軟件synaptic完成,圖形化的軟件使用起來更加直觀,理解了前面幾個主要命令,就可以毫無困難地使用synaptic了,所以本文不再贅述Synaptic的使用方法了。

四 定制apt-rpm

(1)添加軟件資源列表
在apt-rpm系統裡面添加軟件資源非常容易,只需要按照提供apt服務的服務器的說明在/etc/apt/sources.list裡面加入對網站的描述即可。這一行參數的格式為:


rpm uri distribution [component1] [componenent2] [...]
其中,uri為軟件資源的地址,可以是http,ftp,file等URL地址,distribution是redhat發行版本,如 7.2,7.3,8.0等等,後面的component可以忽略。有時候可能只對某軟件資源的一或幾部分部分感興趣,那麼可以在這裡明確指出。


例如添加http://apt.unl.edu/ 提供的redhat KDE 3.1的測試軟件包,只需要在sources.list裡面添加一行:
rpm ftp://apt.unl.edu/apt/ 8.0 kde3-test
就將該網站的kde3部分加入了列表。

下面是一些目前可以用於redhat 的apt-rpm軟件資源列表,把它們加入你的 /etc/apt/sources.list 文件就可以通過apt-rpm使用他們提供的redhat軟件更新和維護了,參看網站說明。(前面是網站名,後面是適用redhat版本和簡介)
http://apt.freshrpms.net/ - Red Hat Linux 6.2, 7.x 、8.0and 9.0 repositories (with all freshrpms included of course!)
http://www.linux.cz/apt-rpm/ - Red Hat Linux 7.x repositories (with all freshrpms included too!)
http://apt-rpm.tuxfamily.org/ - Red Hat Linux 6.2, 7.x 、8.0and 9.0 repositories
http://apt.nlc.no/apt/ - Red Hat Linux 6.2, 7.x and Rawhide repositories
http://ftp.uninett.no/pub/linux/apt/ - Red Hat Linux 6.2, 7.x、8.0and 9.0 and Rawhide repositories
http://redhat.usu.edu/ - Red Hat Linux 7.2, 7.3 and 8.0 repositories
ftp://mirror.pa.msu.edu/apt/ - Red Hat Linux 7.2, 7.3 and 8.0 repositories
http://apt-rpm.codefactory.se/ - Red Hat Linux 7.2, 7.3 and 8.0 and gnomehide repositories
http://apt.42h.de/ - Red Hat Linux 7.2, 7.3 and 8.0 repositories
http://apt.toggletext.com.au/ - A few Red Hat Linux 7.2 custom packages
http://people.ecsc.co.uk/~matt/repository.html - Lots of custom Red Hat Linux 8.0 GNOME 2 and related packages
http://ftp-stud.fht-esslingen.de/apt/ - Red Hat Linux 7.x, 8.x and rawhide
http://apt.unl.edu/ - Red Hat Linux 7.3 and 8.0
http://kde-redhat.sourceforge.net/ - KDE for Red Hat project

(2)把redhat安裝盤添加到軟件源
有的時候需要從redhat安裝光盤或者iso文件安裝、卸載軟件,這時可以把redhat安裝光盤設置為軟件源。這種工作方式需要首先掃面安裝光盤上的軟件包,並在 /var/lib/apt/cdroms.list文件中建立光盤軟件列表。
如果使用redhat光盤,只需要把光盤插入光驅,下面命令會自動mount光盤並建立列表
[root@linux root]# apt-cdrom add

如果是使用ISO文件安裝,首先mount ISO文件到mount-point,把mount point輸入,就可以自動搜索RPM軟件列表了。
[root@linux root]# apt-cdrom -m -d mount-point add
如果是解開的硬盤映像安裝,只需要把路徑輸入,就可以自動搜索RPM軟件列表了。
[root@linux root]# apt-cdrom -m -d path add

  五、 架設簡易 APT 服務器 (這裡只講解Redhat 9)

注意:在進行下面操作前請先確認自己的 apache 已經在正常運做,且 /var 至少還有 2G 的空間

1.為什麼要架設 APT 服務器
當我們安裝 freshrpms 的 apt,安裝、升級都是透過網絡聯機到 freshrpms 下載檔案。若只維護一台服務器,還好,可是若有十台服務器,就需要花原本十倍的時間和頻寬來做同樣的事情,再加上若連外(美國)的頻寬不充裕,這要如何是好,所以當有多台服務器要維護的時候,架設一台 APT 服務器,似乎是不錯的選擇。

2.安裝 apt:
http://ftp.freshrpms.net/pub/freshrpms/redhat/9/apt/

請安裝這網站內最新的 apt
線上安裝:rpm -ivh http://ftp.freshrpms.net/pub/freshrpms/redhat/9/apt/apt-0.5.5cnc5-fr2.i386.rpm

3.建置放置 Red Hat Linux 9 相關 rpm 的資料夾
mkdir -p /var/www/html/redhat/9
mkdir /var/www/html/redhat/9/RPMS.os
mkdir /var/www/html/redhat/9/RPMS.updates

4.將整個 Red Hat Linux 9 的 binary rpm 復制到 /var/www/html/redhat/9/RPMS.os 資料夾(底下提供二種方法,請依自己狀況挑選一種方法執行)

方法一:從光盤片復制(當手上有 Red Hat Linux 9 光盤片的時候可以用這個方法)

mount /mnt/cdrom
cp -f /mnt/cdrom/RedHat/RPMS/* /var/www/html/redhat/9/RPMS.os/
umount /mnt/cdrom
&nb

sp; 依照上面方法,復制第二片、第三片光盤片內的 rpm

方法二:從 iso 文件復制(當計算機內有 Red Hat Linux 9 iso 檔的時候可以用這個方法用)

mkdir /mnt/iso

mount -o loop shrike-i386-disc1.iso /mnt/iso
cp /mnt/iso/RedHat/RPMS/* /var/www/html/redhat/9/RPMS.os/
umount /mnt/iso

mount -o loop shrike-i386-disc2.iso /mnt/iso
cp -f /mnt/iso/RedHat/RPMS/* /var/www/html/redhat/9/RPMS.os/
umount /mnt/iso

mount -o loop shrike-i386-disc3.iso /mnt/iso
cp -f /mnt/iso/RedHat/RPMS/* /var/www/html/redhat/9/RPMS.os/
umount /mnt/iso

5.將 Red Hat Linux 9 updates 的 rpm 復制到 /var/www/html/redhat/9/RPMS.updates 資料夾
cd /var/www/html/redhat/9/RPMS.updates
wget ftp://linux.sinica.edu.tw/pub1/redhat/updates/9/en/os/i386/*(若網絡頻寬不高,會花很久時間,請耐心等候)

redhat 6.2
http://ftp.freshrpms.net/pub/freshrpms/redhat/6.2/apt/apt-0.5.4cnc7-fr0.62.1.i386.rpm

redhat 7.2
http://ftp.freshrpms.net/pub/freshrpms/redhat/7.2/apt/apt-0.3.19cnc55-fr7.i386.rpm

redhat 7.3
http://ftp.freshrpms.net/pub/freshrpms/redhat/7.3/apt/apt-0.5.4cnc9-fr0.1.rh73.i386.rpm

redhat 8.0
http://ftp.freshrpms.net/pub/freshrpms/redhat/8.0/apt/apt-0.5.4cnc9-fr1.i386.rpm

redhat 9.0
http://ftp.freshrpms.net/pub/freshrpms/redhat/9/apt/apt-0.5.5cnc6-fr1.i386.rpm

rpm http://people.ecsc.co.uk/ ~matt/downloads/apt/fedora-2-i386 production

Copyright © Linux教程網 All Rights Reserved