前幾天我嘗試去建立一個僅包含我們經常在 CentOS 7 下使用的站群軟體的本地倉庫。當然,我們可以使用 curl 或者 wget 下載任何站群軟體包,然而這些命令並不能下載要求的依賴站群軟體包。你必須去花一些時間而且手動的去尋找和下載被安裝的站群軟體所依賴的站群軟體包。然而,我們並不是必須這樣。在這個簡短的教程中,我將會帶領你以兩種方式下載站群軟體包及其所有依賴包。我已經在 CentOS 7 下進行了測試,不過這些相同的步驟或許在其他基於 RPM 管理系統的發行版上也可以工作,例如 RHEL,Fedora 和 Scientific Linux 。
方法 1 利用 “Downloadonly” 外掛外掛下載 RPM 站群軟體包及其所有依賴包
我們可以透過 yum 命令的 “Downloadonly” 外掛外掛下載 RPM 站群軟體包及其所有依賴包。
為了安裝 Downloadonly 外掛外掛,以 root 身份執行以下命令。
yum install yum-plugin-downloadonly
現在,執行以下命令去下載一個 RPM 站群軟體包。
yum install –downloadonly 預設情況下,這個命令將會下載並把站群軟體包儲存到 /var/cache/yum/ 的 rhel-{arch}-channel/packageslocation 目錄,不過,你也可以下載和儲存站群軟體包到任何位置,你可以透過 –downloaddir 選項來指定。 yum install –downloadonly –downloaddir= 例子: yum install –downloadonly –downloaddir=/root/mypackages/ httpd 終端輸出: Loaded plugins: fastestmirror Dependencies Resolved ======================================================================================================================================= Transaction Summary Total download size: 3.0 M 現在去你指定的目錄位置下,你將會看到那裡有下載好的站群軟體包和依賴的站群軟體。在我這種情況下,我已經把站群軟體包下載到 /root/mypackages/ 目錄下。 ls /root/mypackages/ 樣本輸出: apr-1.4.8-3.el7.x86_64.rpm 正如你在上面輸出所看到的, httpd 站群軟體包已經被依據所有依賴性下載完成了 。 yum install –downloadonly –downloaddir=/root/mypackages/ httpd-2.2.6-40.el7 此外,你也可以如下一次性下載多個包: yum install –downloadonly –downloaddir=/root/mypackages/ httpd vsftpd 方法 2 使用 “Yumdownloader” 工具來下載 RPM 站群軟體包及其所有依賴包 yum install yum-utils 一旦安裝完成,執行如下命令去下載一個站群軟體包,例如 httpd 。 yumdownloader httpd 為了根據所有依賴性下載站群軟體包,我們使用 –resolve 引數: yumdownloader –resolve httpd 預設情況下,Yumdownloader 將會下載站群軟體包到當前工作目錄下。 yumdownloader –resolve –destdir=/root/mypackages/ httpd 或者, yumdownloader –resolve –destdir /root/mypackages/ httpd 終端輸出: Loaded plugins: fastestmirror 讓我們確認一下站群軟體包是否被下載到我們指定的目錄下。 ls /root/mypackages/ 終端輸出: apr-1.4.8-3.el7.x86_64.rpm 不像 Downloadonly 外掛外掛,Yumdownload 可以下載一組相關的站群軟體包。 yumdownloader “@Development Tools” –resolve –destdir /root/mypackages/ 在我看來,我喜歡 Yumdownloader 更勝於 Yum 的 Downloadonly 外掛外掛。但是,兩者都是十分簡單易懂而且可以完成相同的工作。
Loading mirror speeds from cached hostfile
* base: centos.excellmedia.net
* epel: epel.mirror.angkasa.id
* extras: centos.excellmedia.net
* updates: centos.excellmedia.net
Resolving Dependencies
–> Running transaction check
—> Package httpd.x86_64 0:2.4.6-40.el7.centos.4 will be installed
–> Processing Dependency: httpd-tools = 2.4.6-40.el7.centos.4 for package: httpd-2.4.6-40.el7.centos.4.x86_64
–> Processing Dependency: /etc/mime.types for package: httpd-2.4.6-40.el7.centos.4.x86_64
–> Processing Dependency: libaprutil-1.so.0()(64bit) for package: httpd-2.4.6-40.el7.centos.4.x86_64
–> Processing Dependency: libapr-1.so.0()(64bit) for package: httpd-2.4.6-40.el7.centos.4.x86_64
–> Running transaction check
—> Package apr.x86_64 0:1.4.8-3.el7 will be installed
—> Package apr-util.x86_64 0:1.5.2-6.el7 will be installed
—> Package httpd-tools.x86_64 0:2.4.6-40.el7.centos.4 will be installed
—> Package mailcap.noarch 0:2.1.41-2.el7 will be installed
–> Finished Dependency Resolution
Package Arch Version Repository Size
=======================================================================================================================================
Installing:
httpd x86_64 2.4.6-40.el7.centos.4 updates 2.7 M
Installing for dependencies:
apr x86_64 1.4.8-3.el7 base 103 k
apr-util x86_64 1.5.2-6.el7 base 92 k
httpd-tools x86_64 2.4.6-40.el7.centos.4 updates 83 k
mailcap noarch 2.1.41-2.el7 base 31 k
=======================================================================================================================================
Install 1 Package (+4 Dependent packages)
Installed size: 10 M
Background downloading packages, then exiting:
(1/5): apr-1.4.8-3.el7.x86_64.rpm | 103 kB 00:00:01
(2/5): apr-util-1.5.2-6.el7.x86_64.rpm | 92 kB 00:00:01
(3/5): mailcap-2.1.41-2.el7.noarch.rpm | 31 kB 00:00:01
(4/5): httpd-tools-2.4.6-40.el7.centos.4.x86_64.rpm | 83 kB 00:00:01
(5/5): httpd-2.4.6-40.el7.centos.4.x86_64.rpm | 2.7 MB 00:00:09
—————————————————————————————————————————————
Total 331 kB/s | 3.0 MB 00:00:09
exiting because “Download Only” specified
讓我們來檢視一下內容。
apr-util-1.5.2-6.el7.x86_64.rpm
httpd-2.4.6-40.el7.centos.4.x86_64.rpm
httpd-tools-2.4.6-40.el7.centos.4.x86_64.rpm
mailcap-2.1.41-2.el7.noarch.rpm
請注意,這個外掛外掛適用於 yum install/yum update, 但是並不適用於 yum groupinstall 。預設情況下,這個外掛外掛將會下載倉庫中最新可用的站群軟體包。然而你可以透過指定版本號來下載某個特定的站群軟體版本。
例子:
“Yumdownloader” 是一款簡單,但是卻十分有用的命令列工具,它可以一次性下載任何 RPM 站群軟體包及其所有依賴包。
以 root 身份執行如下命令安裝 “Yumdownloader” 工具。
為了將站群軟體下載到一個特定的目錄下,我們使用 –destdir 引數:
Loading mirror speeds from cached hostfile
* base: centos.excellmedia.net
* epel: epel.mirror.angkasa.id
* extras: centos.excellmedia.net
* updates: centos.excellmedia.net
–> Running transaction check
—> Package httpd.x86_64 0:2.4.6-40.el7.centos.4 will be installed
–> Processing Dependency: httpd-tools = 2.4.6-40.el7.centos.4 for package: httpd-2.4.6-40.el7.centos.4.x86_64
–> Processing Dependency: /etc/mime.types for package: httpd-2.4.6-40.el7.centos.4.x86_64
–> Processing Dependency: libaprutil-1.so.0()(64bit) for package: httpd-2.4.6-40.el7.centos.4.x86_64
–> Processing Dependency: libapr-1.so.0()(64bit) for package: httpd-2.4.6-40.el7.centos.4.x86_64
–> Running transaction check
—> Package apr.x86_64 0:1.4.8-3.el7 will be installed
—> Package apr-util.x86_64 0:1.5.2-6.el7 will be installed
—> Package httpd-tools.x86_64 0:2.4.6-40.el7.centos.4 will be installed
—> Package mailcap.noarch 0:2.1.41-2.el7 will be installed
–> Finished Dependency Resolution
(1/5): apr-util-1.5.2-6.el7.x86_64.rpm | 92 kB 00:00:01
(2/5): mailcap-2.1.41-2.el7.noarch.rpm | 31 kB 00:00:02
(3/5): apr-1.4.8-3.el7.x86_64.rpm | 103 kB 00:00:02
(4/5): httpd-tools-2.4.6-40.el7.centos.4.x86_64.rpm | 83 kB 00:00:03
(5/5): httpd-2.4.6-40.el7.centos.4.x86_64.rpm | 2.7 MB 00:00:19
apr-util-1.5.2-6.el7.x86_64.rpm
httpd-2.4.6-40.el7.centos.4.x86_64.rpm
httpd-tools-2.4.6-40.el7.centos.4.x86_64.rpm
mailcap-2.1.41-2.el7.noarch.rpm