インターネットに繋がらない環境でyumコマンドの様にインストールする方法


掲載日:2020年12月28日



INFOMARTION > インターネットに繋がらない環境でyumコマンドの様にインストールする方法

概要

インターネットに繋がらない環境でyumコマンドの様にインストールする方法についてです。

yumコマンドは便利ですが、インターネットに繋がらない環境では実行できません。ローカルにyumレポジトリをインストールする方法もありますが、もっと簡単にインストールする方法を紹介します。

この記事を理解する前提としてyumの仕組みをよく知らない人は以下も参照してください。

yum実行時にエラーがでる原因、そもそもyumとはどう動いているか#1-1. yumの仕組み

yumでインストールした時にどのディレクトリに何がインストールされるか調べる方法#1-1. yumはどう動いているのか

目次

  1. インターネットに繋がらない環境でインストールする方法
  2. まとめ

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のインストールを代替しました。

最後までご覧いただきありがとうございました。



■INFORMATION

INFORMATIONのトップページはこちらよりお願いいたします。


■PROFILE

プロフィールはこちらよりお願いいたします。


■お問い合わせ先

記事に関するお問い合わせはこちらよりお願いいたします。