【CentOS6】yumで特定バージョンのパッケージをインストール
yumは、centosやfedoraにおいて、パッケージをインストールするのに便利なコマンドです。
たまに、「既存サーバーと全く同じものを作って、テストサーバーにしたい」というお客さんからの要望があります。
その場合、yumコマンドやrpmコマンドを理解できれば、目標達成はそんなに難しくありません。
結論から言うと
yumコマンドを使って、基本的にはリポジトリにあるパッケージしかインストールできません。
特定バージョンのパッケージをダウンロードして、yum localinstallコマンドもしくはrpmコマンドで
ローカルからインストールする場合は、特にパッケージの間の依存性とコンフリクトを注意しましょう。
一例を挙げてみます。
すでにインストールしているmysqlパッケージをリストする
1 2 3 4 5 6 | rpm -qa | grep -i mysql | sort mysql-5.1.69-1.el6_4.x86_64 mysql-libs-5.1.69-1.el6_4.x86_64 mysql-server-5.1.69-1.el6_4.x86_64 perl-DBD-MySQL-4.013-3.el6.x86_64 php-mysql-5.3.3-22.el6.x86_64 |
mysql-develというパッケージをインストールする
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 | yum install mysql-devel Loaded plugins: fastestmirror, security Loading mirror speeds from cached hostfile * base: ftp.iij.ad.jp * epel: ftp.iij.ad.jp * extras: ftp.iij.ad.jp * updates: ftp.iij.ad.jp Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package mysql-devel.x86_64 0:5.1.69-1.el6_4 will be installed --> Processing Dependency: openssl-devel for package: mysql-devel-5.1.69-1.el6_4.x86_64 --> Running transaction check ---> Package openssl-devel.x86_64 0:1.0.0-27.el6_4.2 will be installed --> Processing Dependency: zlib-devel for package: openssl-devel-1.0.0-27.el6_4.2.x86_64 --> Processing Dependency: krb5-devel for package: openssl-devel-1.0.0-27.el6_4.2.x86_64 --> Running transaction check ---> Package krb5-devel.x86_64 0:1.10.3-10.el6_4.4 will be installed --> Processing Dependency: krb5-libs = 1.10.3-10.el6_4.4 for package: krb5-devel-1.10.3-10.el6_4.4.x86_64 --> Processing Dependency: libselinux-devel for package: krb5-devel-1.10.3-10.el6_4.4.x86_64 --> Processing Dependency: libcom_err-devel for package: krb5-devel-1.10.3-10.el6_4.4.x86_64 --> Processing Dependency: keyutils-libs-devel for package: krb5-devel-1.10.3-10.el6_4.4.x86_64 ---> Package zlib-devel.x86_64 0:1.2.3-29.el6 will be installed --> Running transaction check ---> Package keyutils-libs-devel.x86_64 0:1.4-4.el6 will be installed ---> Package krb5-libs.x86_64 0:1.10.3-10.el6_4.2 will be updated ---> Package krb5-libs.x86_64 0:1.10.3-10.el6_4.4 will be an update ---> Package libcom_err-devel.x86_64 0:1.41.12-14.el6_4.2 will be installed --> Processing Dependency: libcom_err = 1.41.12-14.el6_4.2 for package: libcom_err-devel-1.41.12-14.el6_4.2.x86_64 ---> Package libselinux-devel.x86_64 0:2.0.94-5.3.el6_4.1 will be installed --> Processing Dependency: libselinux = 2.0.94-5.3.el6_4.1 for package: libselinux-devel-2.0.94-5.3.el6_4.1.x86_64 --> Processing Dependency: libsepol-devel >= 2.0.32-1 for package: libselinux-devel-2.0.94-5.3.el6_4.1.x86_64 --> Processing Dependency: pkgconfig(libsepol) for package: libselinux-devel-2.0.94-5.3.el6_4.1.x86_64 --> Running transaction check ---> Package libcom_err.x86_64 0:1.41.12-14.el6 will be updated --> Processing Dependency: libcom_err = 1.41.12-14.el6 for package: e2fsprogs-1.41.12-14.el6.x86_64 --> Processing Dependency: libcom_err = 1.41.12-14.el6 for package: e2fsprogs-libs-1.41.12-14.el6.x86_64 --> Processing Dependency: libcom_err = 1.41.12-14.el6 for package: libss-1.41.12-14.el6.x86_64 ---> Package libcom_err.x86_64 0:1.41.12-14.el6_4.2 will be an update ---> Package libselinux.x86_64 0:2.0.94-5.3.el6 will be updated --> Processing Dependency: libselinux = 2.0.94-5.3.el6 for package: libselinux-utils-2.0.94-5.3.el6.x86_64 ---> Package libselinux.x86_64 0:2.0.94-5.3.el6_4.1 will be an update ---> Package libsepol-devel.x86_64 0:2.0.41-4.el6 will be installed --> Running transaction check ---> Package e2fsprogs.x86_64 0:1.41.12-14.el6 will be updated ---> Package e2fsprogs.x86_64 0:1.41.12-14.el6_4.2 will be an update ---> Package e2fsprogs-libs.x86_64 0:1.41.12-14.el6 will be updated ---> Package e2fsprogs-libs.x86_64 0:1.41.12-14.el6_4.2 will be an update ---> Package libselinux-utils.x86_64 0:2.0.94-5.3.el6 will be updated ---> Package libselinux-utils.x86_64 0:2.0.94-5.3.el6_4.1 will be an update ---> Package libss.x86_64 0:1.41.12-14.el6 will be updated ---> Package libss.x86_64 0:1.41.12-14.el6_4.2 will be an update --> Finished Dependency Resolution Dependencies Resolved ========================================================================================================================================================================================= Package Arch Version Repository Size ========================================================================================================================================================================================= Installing: mysql-devel x86_64 5.1.69-1.el6_4 updates 128 k Installing for dependencies: keyutils-libs-devel x86_64 1.4-4.el6 base 28 k krb5-devel x86_64 1.10.3-10.el6_4.4 updates 494 k libcom_err-devel x86_64 1.41.12-14.el6_4.2 updates 32 k libselinux-devel x86_64 2.0.94-5.3.el6_4.1 updates 136 k libsepol-devel x86_64 2.0.41-4.el6 base 64 k openssl-devel x86_64 1.0.0-27.el6_4.2 updates 1.1 M zlib-devel x86_64 1.2.3-29.el6 base 44 k Updating for dependencies: e2fsprogs x86_64 1.41.12-14.el6_4.2 updates 552 k e2fsprogs-libs x86_64 1.41.12-14.el6_4.2 updates 120 k krb5-libs x86_64 1.10.3-10.el6_4.4 updates 760 k libcom_err x86_64 1.41.12-14.el6_4.2 updates 36 k libselinux x86_64 2.0.94-5.3.el6_4.1 updates 108 k libselinux-utils x86_64 2.0.94-5.3.el6_4.1 updates 81 k libss x86_64 1.41.12-14.el6_4.2 updates 41 k Transaction Summary ========================================================================================================================================================================================= Install 8 Package(s) Upgrade 7 Package(s) Total download size: 3.7 M Is this ok [y/N]: |
バージョン5.1.49のmysql-develパッケージをインストールするということです。
関連するパッケージも一緒にインストールしてくれるから、実に便利です。
違うバージョンのmysql-develパッケージをインストールするには?
1 2 3 4 5 6 7 8 9 | yum install mysql-devel-5.1.68 Loaded plugins: fastestmirror, security Loading mirror speeds from cached hostfile * base: ftp.iij.ad.jp * epel: ftp.iij.ad.jp * extras: ftp.iij.ad.jp * updates: ftp.iij.ad.jp Setting up Install Process No package mysql-devel-5.1.68 available. |
該当バージョンがなくて、安定の最新バージョンしかリポジトリにないのようです。
もちろん、違うリポジトリには別のバージョン(開発バージョンなど)のものが存在しますが、それらのリポジトリを追加しない限りはインストールしてくれないのです。
リポジトリの増やし方
CentOS6でremiというリポジトリを増やしてみる
1 2 3 4 | wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm rpm -Uvh epel-release-6-8.noarch.rpm rpm -Uvh remi-release-6.rpm |
普段使わないリポジトリの有効化
設定ファイルでリポジトリを有効化する(「おまけ」に参照)ことが可能ですが、yumコマンドを使ったほうが便利です。
1 | yum --enablerepo=remi install mysql-devel |
おまけ
Author Profile
スターフィールド編集部
SHARE