インターネットに繋がらない環境でyumコマンドの様にインストールする方法
掲載日:2020年12月28日
INFOMARTION > インターネットに繋がらない環境でyumコマンドの様にインストールする方法
概要
インターネットに繋がらない環境でyumコマンドの様にインストールする方法についてです。
yumコマンドは便利ですが、インターネットに繋がらない環境では実行できません。ローカルにyumレポジトリをインストールする方法もありますが、もっと簡単にインストールする方法を紹介します。
この記事を理解する前提としてyumの仕組みをよく知らない人は以下も参照してください。
・yum実行時にエラーがでる原因、そもそもyumとはどう動いているか#1-1. yumの仕組み
・yumでインストールした時にどのディレクトリに何がインストールされるか調べる方法#1-1. yumはどう動いているのか
1. インターネットに繋がらない環境でインストールする方法
rpmファイルを使って直接インストールする方法について記載します。yumは内部的には外部サーバのrpmファイルをrpmコマンドによりインストールしていますが、このrpmファイルをサーバ上に配置してインストールする方法を説明します。
今回の例としては「yum install php」をネットに繋がらない環境での代替手段を説明したいと思います。
1-1. yumコマンドのの代替方法としてrpmコマンドで対応する方法
yumコマンドでインストールしているrpmファイルを1つずつインストールしたいと思います。
まずは、対象のrpmファイル(phpをインストールするためのrpmファイル)を取得します。以下の記事を参考に対象のRPMファイルを探してください。
・yumでインストールした時にどのディレクトリに何がインストールされるか調べる方法#2-1.対象のRPMファイルを特定
上記記事を参考に調べた結果、今回インストールするファイルの格納先のファイルは「http://ftp.iij.ad.jp/pub/linux/centos/7.9.2009/os/x86_64/Packages/php-5.4.16-48.el7.x86_64.rpm」であることが分かりました。こちらのファイルをダウンロードしてソフトウェアをインストールしたいサーバに移動します。今回は「/tmp」に移動したいと思います。
ファイルをダウンロードし「/tmp」へ移動したら以下のコマンドを実行します。
[root@localhost ~]# rpm -ivh /tmp/php-5.4.16-48.el7.x86_64.rpm
エラー: 依存性の欠如:
php-common(x86-64) = 5.4.16-48.el7 は php-5.4.16-48.el7.x86_64 に必要とされています
php-cli(x86-64) = 5.4.16-48.el7 は php-5.4.16-48.el7.x86_64 に必要とされています
依存性の欠如のエラーが表示されています。yumの場合はこの依存関係を自動で解決してくれていますが、rpmでインストールする場合はこの依存関係を自力で解決しないといけません。
トライ&エラーとなってしまいますが、「php-5.4.16-48.el7.x86_64.rpm」を特定した様に「php-common」「php-cli」も同様に探してrpmコマンドによりインストールします。「php-common」からインストールしたいと思います。
「php-common」のrpmファイルを「/tmp」へ移動しインストールをします。
[root@localhost ~]# rpm -ivh /tmp/php-common-5.4.16-48.el7.x86_64.rpm
エラー: 依存性の欠如:
libzip.so.2()(64bit) は php-common-5.4.16-48.el7.x86_64 に必要とされています
今度は「php-common」をインストールする前提となる「libzip」が不足しているので「libzip」をインストールします。この様な感じで足りないRPMファイルを探してインストールしていきます。
[root@localhost ~]# rpm -ivh /tmp/libzip-0.10.1-8.el7.x86_64.rpm
準備しています... ################################# [100%]
更新中 / インストール中...
1:libzip-0.10.1-8.el7 ################################# [100%]
[root@localhost ~]# rpm -ivh /tmp/php-common-5.4.16-48.el7.x86_64.rpm
準備しています... ################################# [100%]
更新中 / インストール中...
1:php-common-5.4.16-48.el7 ################################# [100%]
[root@localhost ~]# rpm -ivh /tmp/php-cli-5.4.16-48.el7.x86_64.rpm
準備しています... ################################# [100%]
更新中 / インストール中...
1:php-cli-5.4.16-48.el7 ################################# [100%]
[root@localhost ~]# rpm -ivh /tmp/php-5.4.16-48.el7.x86_64.rpm
準備しています... ################################# [100%]
更新中 / インストール中...
1:php-5.4.16-48.el7 ################################# [100%]
上記の通り、無事インストールが完了しました。結果として以下の依存関係がありました。
・libzip-0.10.1-8.el7.x86_64.rpm・・・依存関係なし
・php-common-5.4.16-48.el7.x86_64.rpm・・・「libzip-0.10.1-8.el7.x86_64.rpm」がインストールの前提として必要
・php-cli-5.4.16-48.el7.x86_64.rpm・・・「php-common-5.4.16-48.el7.x86_64.rpm」がインストールの前提として必要
・php-5.4.16-48.el7.x86_64.rpm・・・「php-cli-5.4.16-48.el7.x86_64.rpm」「php-common-5.4.16-48.el7.x86_64.rpm」がインストールの前提として必要
以下の順にインストールする必要がありました。
「libzip-0.10.1-8.el7.x86_64.rpm」⇒「php-common-5.4.16-48.el7.x86_64.rpm」⇒「php-cli-5.4.16-48.el7.x86_64.rpm」⇒「php-5.4.16-48.el7.x86_64.rpm」
3. まとめ
インターネットに繋がらない環境でyumコマンドの様にインストールする方法について記載させていただきました。
改めてyumコマンドの依存性解決の便利さが理解できました。インターネットに繋げられない環境でパッケージファイルをインストールする際に参考にしてみてください。私の場合はセキュリティの問題があるため、開発環境をインターネットに繋げられなかったため、この様な方法でyumのインストールを代替しました。
最後までご覧いただきありがとうございました。