Package-Management

從 CentOS repo 下載所有 RPM 軟體包?

  • October 1, 2020

我有一個伺服器,它應該包含從 CentOS 儲存庫下載的所有 RPM 軟體包,這樣我就可以從另一台無法訪問 Internet 的伺服器訪問該伺服器並將最新的軟體包獲取到它自己。

問題是,由於依賴問題,我無法下載所有軟體包。下面是我嘗試過的命令。

$ repotrack -p . -a x86_64 *.rpm

上面的命令下載了 194 個 RPM 包。當我嘗試使用 *rpm 時,同樣的結果。

$ yum install --downloadonly --installroot=/etc/yum.downloads/packets-installroot --downloaddir=/etc/yum.downloads *.rpm 

上面的命令下載了 179 個 RPM 包。當我嘗試使用 *rpm 時,數據包數減少了。

$ yumdownloader --resolve --destdir=/etc/yum.downloads/ *.rpm

上面的命令只下載 48 個包。

$ yum install --downloadonly --downloaddir=/etc/yum.downloads/ *rpm

上面的命令只下載 48 個包。

這些命令應該下載所有 RPM 包和依賴項,而它們不會。我也在嘗試使用特定 1 個包的命令,並且他們下載了它的依賴項,但是每當我嘗試下載所有包時,我猜它都無法做到這一點。

更新:

我試過下面的命令

$ repoquery --qf=%{name} -g --list --grouppkgs=all [groups] | xargs repotrack -a x86_64 -p .

它下載了4640個包,但仍然存在問題。-g 命令查詢組而不是包。所以有些包沒有組,我也需要下載它們。

-a參數是我相信的解決方案,因為在手冊中它說-a“查詢全部”。但我仍然找不到真正的語法。有人知道嗎?

我找到了解決方案。

repoquery -a | xargs repotrack -a x86_64 -p .

wget -A rpm -r -l 5 http://mirror.centos.org/centos/7/os/x86_64/Packages/ -P .

您可以使用以下命令:

要列出指定儲存庫中的所有可用包,請執行以下操作:

repoquery -a --repoid=REPONAME

要下載所有包,請使用xargsyumdownloader

repoquery -a --repoid=REPONAME| xargs -i -t yumdownloader {}

當 repod 是您的遠端倉庫的名稱時。

引用自:https://unix.stackexchange.com/questions/476973