0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

linux ローカルリポジトリのすすめ

0
Posted at

はじめに

Linuxサーバがインターネットに接続できない環境では、必要なRPMパッケージをインターネットに接続可能な別のサーバでダウンロードし、オフライン環境のサーバへ持ち込んでインストールする方法があります。

しかし、この方法では毎回依存関係を含めてRPMファイルを個別に指定する必要があり、作業の手間がかかります。

そのため、事前に必要なパッケージとその依存関係をすべてダウンロードし、ローカルリポジトリを構築することで、yum install コマンドだけでインストールできるようにするのが効率的です。

特に、同じパッケージを複数のオフラインサーバへインストールする場合、毎回個別にRPMファイルを指定するよりも、ローカルリポジトリから一括で対応した方が作業工数を大幅に削減できます。

私の環境

CentOS7
VirtualBox

参考にしたサイト

今回インストールしたいパッケージはbcです

1.事前にパッケージbcの依存関係を確認します。

※bcパッケージの依存関係を表示する

[root@localhost ~]# yum deplist bc
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * epel: d2lzkl7pfhq30w.cloudfront.net
 * remi-safe: ftp.riken.jp
パッケージ    : bc.x86_64 1.06.95-13.el7
  依存性      : /bin/sh
   provider: bash.x86_64 4.2.46-35.el7_9
  依存性      : /sbin/install-info
   provider: info.x86_64 5.1-5.el7
  依存性      : libc.so.6(GLIBC_2.14)(64bit)
   provider: glibc.x86_64 2.17-326.el7_9.3
  依存性      : libncurses.so.5()(64bit)
   provider: ncurses-libs.x86_64 5.9-14.20130511.el7_4
  依存性      : libreadline.so.6()(64bit)
   provider: readline.x86_64 6.2-11.el7
  依存性      : libtinfo.so.5()(64bit)
   provider: ncurses-libs.x86_64 5.9-14.20130511.el7_4
  依存性      : rtld(GNU_HASH)
   provider: glibc.x86_64 2.17-326.el7_9.3
   provider: glibc.i686 2.17-326.el7_9.3

2. ローカルリポジトリを作成する

ローカルリポジトリのフォルダを作成する

# mkdir -p  /var/www/html/repo

作成したローカルリポジトリのフォルダへ移動する

# cd /var/www/html/repo

現在のカレントディレクトリがローカルリポジトリのフォルダであること

# pwd
/var/www/html/repo

RPM パッケージを格納したディレクトリを YUM/DNF 用のローカルリポジトリに変えるためのコマンド

# createrepo .

repodataが作成されました。

# ls -ltr 
repodata

3. bcのrpmパッケージを依存関係を含めてダウンロードする

# yumdownloader --resolve bc

読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * epel: repo.jing.rocks
 * remi-safe: ftp.riken.jp
--> トランザクションの確認を実行しています。
---> パッケージ bc.x86_64 0:1.06.95-13.el7 を インストール
--> 依存性解決を終了しました。
bc-1.06.95-13.el7.x86_64.rpm

rpmパッケージをダウンロードされました

# pwd
/var/www/html/repo

# ls -tlr
合計 120
-rw-r--r-- 1 root root 117272  7月  4  2014 bc-1.06.95-13.el7.x86_64.rpm
drwxr-xr-x 2 root root   4096  7月  6 20:55 repodata

4. ローカルリポジトリの情報をアップデートする

bcのrpmファイルをか格納したため、ローカルリポジトリの情報をアップデートします。

# createrepo --update  .
Spawning worker 0 with 1 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
[root@localhost repo]# ls -tlr
合計 120
-rw-r--r-- 1 root root 117272  7月  4  2014 bc-1.06.95-13.el7.x86_64.rpm
drwxr-xr-x 2 root root   4096  7月  6 21:01 repodata

5. クライアント側 /etc/yum.repos.d/local.repoファイルを作成する

/etc/yum.repos.d/local.repoファイルを作成する

# cd /etc/yum.repos.d/

# vi local.repo
[localrepo]
name=Local Repository
baseurl=file:///var/www/html/repo ←ローカルリポジトリのフォルダを指定する
enabled=1
gpgcheck=0

6. YUM の キャッシュをすべて削除する

YUM の キャッシュをすべて削除してディスクをクリーンにする コマンドです。

# yum clean all
読み込んだプラグイン:fastestmirror
リポジトリーを清掃しています: base epel extras localrepo mysql-connectors-community mysql-tools-community mysql57-community remi-safe updates zabbix zabbix-frontend
                            : zabbix-non-supported
Cleaning up list of fastest mirrors
Other repos take up 32 M of disk space (use --verbose for details)

YUM のキャッシュをすべて削除し、詳細情報(verbose)を表示するコマンド
有効なリポジトリのキャッシュはすべて削除済み
無効(disabled)なリポジトリのキャッシュは削除されていない
合計 約32MB のキャッシュが残っている
残っているキャッシュは明示的に削除しない限り保持される

# yum clean all --verbose
プラグイン「fastestmirror」を読み込んでいます
Config time: 0.011
Yum version: 3.4.3
リポジトリーを清掃しています: base epel extras localrepo mysql-connectors-community mysql-tools-community mysql57-community remi-safe updates zabbix zabbix-frontend
                            : zabbix-non-supported
Operating on /var/cache/yum/x86_64/7 (see CLEAN OPTIONS in yum(8) for details)
Disk usage under /var/cache/yum/*/* after cleanup:
0      enabled repos
32 M   disabled repos:
  23 M   /var/cache/yum/x86_64/7/remi
  9.3 M  /var/cache/yum/x86_64/7/ius
0      untracked repos
4.0 k  other data:
  4.0 k  /var/cache/yum/x86_64/7/timedhosts
32 M   total

7. bcパッケージをインストールする

先ほど作成したlocalrepoからbcパッケージがインストールされていることを確認しました。

# yum --disablerepo=* --enablerepo=localrepo install bc
読み込んだプラグイン:fastestmirror
Determining fastest mirrors
localrepo                                                                                                                                                      | 2.9 kB  00:00:00
localrepo/primary_db                                                                                                                                           | 2.2 kB  00:00:00
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ bc.x86_64 0:1.06.95-13.el7 を インストール
--> 依存性解決を終了しました。

依存性を解決しました

======================================================================================================================================================================================
 Package                               アーキテクチャー                          バージョン                                        リポジトリー                                  容量
======================================================================================================================================================================================
インストール中:
 bc                                    x86_64                                    1.06.95-13.el7                                    localrepo                                    115 k

トランザクションの要約
======================================================================================================================================================================================
インストール  1 パッケージ

総ダウンロード容量: 115 k
インストール容量: 215 k
Is this ok [y/d/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  インストール中          : bc-1.06.95-13.el7.x86_64                                                                                                                              1/1
  検証中                  : bc-1.06.95-13.el7.x86_64                                                                                                                              1/1

インストール:
  bc.x86_64 0:1.06.95-13.el7

完了しました!

まとめ

ローカルリポジトリを作成することで、個別にRPMパッケージを指定してインストールする必要がなくなります。
そのため、インターネットに接続できない複数のサーバに同じパッケージを展開する際に、効率的かつ非常に便利です。
良かったら参考にしてください。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?