開発において,インターネットから切り離したオフライン環境にテスト実行環境を作ることがあります.
オフライン環境で実行しているサーバに新たなパッケージをインストールする場合,開発者自身が全ての依存関係を把握することは至難の業です.
そこで,CentOSのパッケージ管理システムにより,依存関係を解決してもらいます.
ミラーサーバをオフライン環境に作る程でもない,ことが前提です.
別のサーバで--downloadonly
オプションを使ってRPM一式をダウンロード
インターネットに繋がるCentOSサーバを別に1台用意して,オフラインにインストールするパッケージをyumコマンドでダウンロードします.
#yum install squid --downloadonly --downloaddir=$(pwd)
...
Dependencies Resolved
===================================================================================================
Package Arch Version Repository Size
===================================================================================================
Installing:
squid x86_64 7:3.3.8-12.el7_0 base 2.6 M
Installing for dependencies:
libecap x86_64 0.2.0-8.el7 base 20 k
libtool-ltdl x86_64 2.4.2-20.el7 base 49 k
perl-Compress-Raw-Bzip2 x86_64 2.061-3.el7 base 32 k
perl-Compress-Raw-Zlib x86_64 1:2.061-4.el7 base 57 k
perl-DBI x86_64 1.627-4.el7 base 802 k
perl-Data-Dumper x86_64 2.145-3.el7 base 47 k
perl-Digest noarch 1.17-245.el7 base 23 k
perl-Digest-MD5 x86_64 2.52-3.el7 base 30 k
perl-IO-Compress noarch 2.061-2.el7 base 260 k
perl-Net-Daemon noarch 0.48-5.el7 base 51 k
perl-PlRPC noarch 0.2020-14.el7 base 36 k
Transaction Summary
===================================================================================================
Install 1 Package (+11 Dependent packages)
Total download size: 3.9 M
Installed size: 12 M
Background downloading packages, then exiting:
(1/12): libecap-0.2.0-8.el7.x86_64.rpm | 20 kB 00:00:00
(2/12): libtool-ltdl-2.4.2-20.el7.x86_64.rpm | 49 kB 00:00:00
(3/12): perl-Compress-Raw-Bzip2-2.061-3.el7.x86_64.rpm | 32 kB 00:00:00
(4/12): perl-Compress-Raw-Zlib-2.061-4.el7.x86_64.rpm | 57 kB 00:00:00
(5/12): perl-Data-Dumper-2.145-3.el7.x86_64.rpm | 47 kB 00:00:00
(6/12): perl-Digest-1.17-245.el7.noarch.rpm | 23 kB 00:00:00
(7/12): perl-Digest-MD5-2.52-3.el7.x86_64.rpm | 30 kB 00:00:00
(8/12): perl-IO-Compress-2.061-2.el7.noarch.rpm | 260 kB 00:00:00
(9/12): perl-Net-Daemon-0.48-5.el7.noarch.rpm | 51 kB 00:00:00
(10/12): perl-PlRPC-0.2020-14.el7.noarch.rpm | 36 kB 00:00:00
(11/12): perl-DBI-1.627-4.el7.x86_64.rpm | 802 kB 00:00:00
(12/12): squid-3.3.8-12.el7_0.x86_64.rpm | 2.6 MB 00:00:01
---------------------------------------------------------------------------------------------------
Total 1.9 MB/s | 3.9 MB 00:00:02
exiting because "Download Only" specified
#ls
libecap-0.2.0-8.el7.x86_64.rpm perl-Digest-1.17-245.el7.noarch.rpm
libtool-ltdl-2.4.2-20.el7.x86_64.rpm perl-Digest-MD5-2.52-3.el7.x86_64.rpm
perl-Compress-Raw-Bzip2-2.061-3.el7.x86_64.rpm perl-IO-Compress-2.061-2.el7.noarch.rpm
perl-Compress-Raw-Zlib-2.061-4.el7.x86_64.rpm perl-Net-Daemon-0.48-5.el7.noarch.rpm
perl-Data-Dumper-2.145-3.el7.x86_64.rpm perl-PlRPC-0.2020-14.el7.noarch.rpm
perl-DBI-1.627-4.el7.x86_64.rpm squid-3.3.8-12.el7_0.x86_64.rpm
オフライン環境のサーバにインストール
ダウンロードしたRPM一式をオフライン環境に持ち込んで,RPMをインストールします.
# rpm -ivh *
Preparing... ################################# [100%]
Updating / installing...
1:perl-Data-Dumper-2.145-3.el7 ################################# [ 8%]
2:perl-Net-Daemon-0.48-5.el7 ################################# [ 17%]
3:perl-Digest-1.17-245.el7 ################################# [ 25%]
4:perl-Digest-MD5-2.52-3.el7 ################################# [ 33%]
5:perl-Compress-Raw-Zlib-1:2.061-4.################################# [ 42%]
6:perl-Compress-Raw-Bzip2-2.061-3.e################################# [ 50%]
7:perl-IO-Compress-2.061-2.el7 ################################# [ 58%]
8:perl-PlRPC-0.2020-14.el7 ################################# [ 67%]
9:perl-DBI-1.627-4.el7 ################################# [ 75%]
10:libtool-ltdl-2.4.2-20.el7 ################################# [ 83%]
11:libecap-0.2.0-8.el7 ################################# [ 92%]
12:squid-7:3.3.8-12.el7_0 ################################# [100%]
おわりに
オフライン環境へのコピーや構築の自動化を図る手段があると思いますが,上手い方法があれば,是非教えてください.