
私はインターネットにアクセスできない最小限のCentOSサーバーを持っています。サーバーA。
私の目標は、アプリケーション用のローカル RPM ファイルの特定のバージョンをインストールするためのシェル スクリプト ファイルを作成することです。ターゲット アプリケーションは Apache だとします。問題は、各 RPM に依存関係があることです。
インターネットにアクセスできる別のサーバーで、私はこれをサーバーBパッケージをダウンロードします:
wget http://repo.okay.com.mx/centos/7/x86_64/release/httpd-2.4.35-5.el7.x86_64.rpm
次に、それをサーバー A に移動してインストールしてみます。
rpm -i httpd-2.4.35-5.el7.x86_64.rpm
yum インストール依存関係のスクリーンショット:
いくつかの要件があります:
rpm -qpR httpd-2.4.35-5.el7.x86_64.rpm
依存関係の参照のスクリーンショット:
いくつかの要件が理解できません:
1- とは何ですか/etc/mime.types
? そのようなファイルはありません。どこから入手できますか?
2- いくつかのパッケージは複数回言及されています。
systemd-utils
systemd-utils
systemd-utils
それはどういう意味ですか?
3- 一部のパッケージには複数のバリエーションがあります。どれをインストールすればよいですか? libc.so
4- リストはアルファベット順に並んでいるようです。インストールの順序はどうなっていますか?
5-dnf repoquery
コマンドは別のリストも提供します。どれに従うべきでしょうか?
dnf repoquery スクリーンショット:
6- 私が探しているものをより自動的に実行する方法はありませんか?
答え1
# Install Yumdownloader using the following command as root user.
yum install yum-utils
# Once installed, run the following command to download a package, for example httpd.
# To download packages with all dependencies, use --resolve option:
mkdir httpd && cd httpd && yumdownloader --resolve httpd
# it will download httpd with all dependencies into working dir.
docker 内の CentOS 7 でテスト済み:
[root@187dddae557b httpd]# ls
apr-1.4.8-7.el7.x86_64.rpm httpd-2.4.6-97.el7.centos.5.x86_64.rpm
apr-util-1.5.2-6.el7.x86_64.rpm httpd-tools-2.4.6-97.el7.centos.5.x86_64.rpm
centos-logos-70.0.6-3.el7.centos.noarch.rpm mailcap-2.1.41-2.el7.noarch.rpm
答え2
- このような場合、問題のホストからアクセスできるローカル リポジトリを作成する方がはるかに簡単になります。
dnf
欠落している依存関係だけでなく、すべての依存関係が表示されるため、より大きなリストを提供します。- この方法を使用する場合は、
dnf
必要なパッケージをダウンロードしてインストールするだけです。 - を使用すると
rpm
、依存パッケージが表示されます。たとえば、ダウンロードして転送し、インストールしてから、メイン パッケージのインストールを再試行します。ファイル名のみが表示される場合は、 を使用してパッケージ名を取得してapr15
みてください。yum provides /etc/mime.types