web-dev-qa-db-ja.com

すでにインストールされているコマンドのRPMパッケージをダウンロードします

CentOSマシンで、openssl-develをすでに使用してインストールしています

$ yum install openssl-devel 

すべての依存パッケージをダウンロードしてインストールしました。今、私はそれらすべてのRPMパッケージが必要です。 RPMパッケージのみをダウンロードすることは可能ですか?私がこれをするとき:

 $ yum install  openssl-devel -y --downloadonly 

それは言う

Package 1:openssl-devel-1.0.1e-4.fc18.x86_64 already installed and latest version

すでにインストールされているため。

同じシステムにそれらのRPMパッケージをダウンロードする方法を誰かが知っていますか?

12
abubacker

--downloadonlyスイッチを使用してすでにインストールされているRPMのパッケージをダウンロードすることが可能です。パッケージが既にインストールされているかどうかを確認する前に、yumがこの設定を確認しない理由はわかりませんが、ツールの基盤となるアーキテクチャーが原因である可能性があります。

とにかく、あなたがする必要があるのは、yumにreinstallパッケージを指示することです:

yum --downloadonly --downloaddir=/tmp/rpm_files/ reinstall package_name

もちろん、yumはこのパッケージのためだけにインストールされた依存関係を認識しないため、RPMを取得して別のシステムにインストールしようとすると、一部の依存関係が失われる可能性があります。依存関係グラフ全体を調べる方法はいくつかありますが、これはすでにSEの他の場所で説明されていると思います。

13
JohnEye

yumdownloader in yum-utilsは、渡したパッケージをダウンロードします。または、オプションで、パッケージのダウンロード元のURLを生成します。

Yum-utilsパッケージの repotrack コマンドを使用できます。依存関係ツリー全体がダウンロードされます-すでにインストールされている場合でも

例:

Sudo yum install yum-utils      # Install yum-utils
Sudo repotrack openssl-devel    # Download all dependencies for openssl-devel


出力例:

[sbadra@rhel6 ~]$ Sudo yum install openssl-devel
Loaded plugins: product-id, search-disabled-repos, subscription-manager
Setting up Install Process
Package openssl-devel-1.0.1e-57.el6.x86_64 already installed and latest version
Nothing to do

[sbadra@rhel6 ~]$ Sudo repotrack openssl-devel
Downloading audit-libs-2.4.5-6.el6.x86_64.rpm
Downloading audit-libs-2.4.5-6.el6.i686.rpm
Downloading basesystem-10.0-4.el6.noarch.rpm
Downloading bash-4.1.2-48.el6.x86_64.rpm
Downloading ca-certificates-2017.2.14-65.0.1.el6_9.noarch.rpm
Downloading chkconfig-1.3.49.5-1.el6.x86_64.rpm
Downloading coreutils-8.4-46.el6.x86_64.rpm
Downloading coreutils-libs-8.4-46.el6.x86_64.rpm
.... more packages ....
Downloading openssl-1.0.1e-57.el6.i686.rpm
Downloading openssl-1.0.1e-57.el6.x86_64.rpm
Downloading openssl-devel-1.0.1e-57.el6.i686.rpm
Downloading openssl-devel-1.0.1e-57.el6.x86_64.rpm
.... more packages ....
Downloading sed-4.2.1-10.el6.x86_64.rpm
Downloading setup-2.8.14-23.el6.noarch.rpm
Downloading tzdata-2018c-1.el6.noarch.rpm
Downloading zlib-1.2.3-29.el6.x86_64.rpm
Downloading zlib-1.2.3-29.el6.i686.rpm
Downloading zlib-devel-1.2.3-29.el6.i686.rpm
Downloading zlib-devel-1.2.3-29.el6.x86_64.rpm
3
Sami Badra

長期的には、マシンをインターネットからダウンロードするマシンとして指定し、そのマシンでNFS(またはWebサーバー)を実行して、/ var/cache/yumを内部ホストに公開することができます。

次に、yum構成を更新して、以下を追加する必要があります。

[main]
keepcache = 1

あたり https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Deployment_Guide/sec-Working_with_Yum_Cache.html

キャッシュを有効にすると、すべてのyum操作で、設定されたリポジトリからパッケージデータがダウンロードされる場合があります。

より実用的な言葉で:

$ Sudo yum install -y nginx
$ Sudo find /var/cache/yum/ -type f -name '*.rpm'
<...snip....>
/var/cache/yum/x86_64/7/epel/packages/nginx-1.10.2-1.el7.x86_64.rpm

他の答えは実際に実際に解決しますが、これはすでに持っているパッケージに対してyum reinstallを実行し、必要な場合にのみ役立ちますRPM。

2

これが私がすることです:

Sudo yum install --config =。/ yum.conf --installroot =/tmp/f541Sdex --downloadonly --downloaddir/tmp/DL-e25xds $(cat list-of-packages)

0
Sparsile