Windowsで作る - PHPプログラミングの開発環境
このページへのアクセス 今日: 1 / 昨日: 1 総計: 3861
文書の過去の版を表示しています。
編集中
Version CentOS 7.2
— y2sunlight 2020-05-29
CentOS パッケージ管理に戻る
yum は rpm パッケージを対象とした RHEL や CentOS などで標準として採用されているパッケージ管理システムです。もともとは、Fedoraの前身である Yellow Dog Linux で開発されたツールです。yum の名前の用来は、この Yellowdog から来ており、Yellowdog Updater Modified の略称です。
Yellow Dog Linux
Yellowdog Updater Modified
RPMがパッケージ単体を管理しているのに対して、yum は RPMパッケージの依存関係などの情報を保持した統合的管理運用システムです。yum は RHEL系のソフトウェアですが、Debian系(Ubuntu,Raspbianなど)でいうところの APT と同じ位置づけになり、パッケージのインストール、アップデート、検索、削除、情報表示などができます。
CentOS7のパッケージ管理全般についてもう少し知りたい場合は、本章の前に CentOS パッケージ管理の基礎知識 をご覧ください。
関連記事
リンク
yum全般の設定ファイルは以下にあります。
/etc/yum.conf
ほとんど触る機会はないと思いますが、以下で説明するリポジトリ設定ファイルの既定値となる項目(例えば:gpgcheck など)もあるので、一度目を通しておく方が良いかもしれません。
gpgcheck
リポジトリに関する設定ファイルは、以下ようにリポジトリ毎にファイルに保存されています。
/etc/yum.repos.d/REPOSITORY_NAME.repo
ius.repoの例でファイルの概要を説明します。
[ius] name=IUS Community Packages for Enterprise Linux 7 - $basearch #baseurl=https://dl.iuscommunity.org/pub/ius/stable/CentOS/7/$basearch mirrorlist=https://mirrors.iuscommunity.org/mirrorlist?repo=ius-centos7&arch=$basearch&protocol=http failovermethod=priority enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/IUS-COMMUNITY-GPG-KEY ...
複数のリポジトリを使用していると、同じパッケージが複数のリポジトリから提供されていることも少なくありません。この状況は必ずしも良いものではありません。不用意に yum install を実行してしまうと目的のリポジトリでない方からパッケージがインストールされてしますからです。従って yum の運用では、既定のリポジトリを設け、それ以外の利用を普段は無効化しておくことをお薦めします。無効化したリポジトリでも、明示的にyumコマンドで有効なリポジトリとして指定することができるので、不便を感じることは少ないと思います。
yum install
リポジトリを無効化する方法は、リポジトリ設定ファイルの項で述べたように、.repo ファイルで enabled=0 と設定します。
.repo
enabled=0
[ius] ... enabled=0 ...
無効化されたリポジトリを yumで一時的に有効にする場合は、下例のようにオプション –enablerepo REPOSITORY_ID を付けて yum を実行します。
–enablerepo REPOSITORY_ID
yum --enablerepo=ius search git2
リポジトリの一覧
yum perolist # 有効なリポジトリ yum perolist all # 全てのリポジトリ
パッケージの一覧
yum list # インストール済み/可能 yum list installed # インストール済み yum list updates # アップデート可能 yum list available # インストール可能
パッケージの情報表示
yum info PACKAGE_NAME
パッケージの検索
yum search PATTERN # 検索文字列を指定可
パッケージのインストール
yum install PACKAGE_NAME
パッケージのアップデートチェック
yum check-update # 全てのインストール済みパッケージ yum check-update PACKAGE_NAME # 指定したパッケージ
パッケージのアップデート
yum update # 全てのインストール済みパッケージ yum update PACKAGE_NAME # 指定したパッケージ
パッケージの削除
yum remove PACKAGE_NAME
最初に、EPEL を yum に登録します。EPEL は EPELの目的 にもあるように CentOSの公式リポジトリの拡張と思われるので(これは筆者の考えです)、常に有効化して yum を運用することにしています。
yum repolist で、現在有効なリポジトリの一覧を表示します。
yum repolist
yum repolist ... リポジトリー ID リポジトリー名 状態 !base/7/x86_64 CentOS-7 - Base 9,007 !extras/7/x86_64 CentOS-7 - Extras 392 !updates/7/x86_64 CentOS-7 - Updates 2,507 repolist: 11,906
yum install で、EPELリポジトリを yum に登録します。
yum install epel-release
インストールの途中で、インストールしても良いか確認される (Is this ok [y/d/N]:) ので y と回答します。正常にインストールされると最後に、完了のメッセージが表示されます。
Is this ok [y/d/N]:
y
yum repolist で、再び有効なリポジトリの一覧を表示して EPEL の有効化を確認します。
yum repolist ... リポジトリー ID リポジトリー名 状態 base/7/x86_64 CentOS-7 - Base 10,070 epel/x86_64 Extra Packages for Enterprise Linux 7 - x86_64 13,300 extras/7/x86_64 CentOS-7 - Extras 397 updates/7/x86_64 CentOS-7 - Updates 671 repolist: 24,438
Remi リポジトリは最新版を含め各種PHPの蓄積場なので是非とも追加しておきたいリポジトリです。Remi リポジトリは登録が終わったら無効化しておき、必要に応じて yumコマンドで有効化することにします。
Remi から PHP7.3 をインストール手順を以下に示します。Remi では EPEL を使用するので、先にEPELリポジトリの登録を済ませて下さい。
ここではPHPがまだインストールされていないものとして説明します。既にPHPがインストールされている環境では、古いPHPを yum remove php php-* で削除することができます。
yum remove php php-*
yum list でPHPのインストール状況を調べます。
yum list
yum list php 読み込んだプラグイン:fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: ftp.yz.yamagata-u.ac.jp * epel: ftp.yz.yamagata-u.ac.jp * extras: ftp.yz.yamagata-u.ac.jp * updates: ftp.yz.yamagata-u.ac.jp 利用可能なパッケージ php.x86_64 5.4.16-48.el7 base
PHPはインストールされておらず、PHP5は公式リポジトリ(base)からインストール可能ですが、PHP7はありません。
yum install で、Remi リポジトリを yum に登録します。
yum install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
yum repolist で、インストールされた remi リポジトリの一覧を表示します。
yum repolist all | grep remi ... remi Remi's RPM repository for Enterpri 無効 remi-php54 Remi's PHP 5.4 RPM repository for 無効 remi-php55 Remi's PHP 5.5 RPM repository for 無効 remi-php56 Remi's PHP 5.6 RPM repository for 無効 remi-php70 Remi's PHP 7.0 RPM repository for 無効 remi-php71 Remi's PHP 7.1 RPM repository for 無効 remi-php72 Remi's PHP 7.2 RPM repository for 無効 remi-php73 Remi's PHP 7.3 RPM repository for 無効 remi-php74 Remi's PHP 7.4 RPM repository for 無効 remi-safe Safe Remi's RPM repository for Ent 有効: 3,805 remi-test Remi's test RPM repository for Ent 無効 ...
上の表示例は、抜粋ですが、多くのPHPがバージョン毎にリポジトリ化されているのが分かります。有効になっているのは remi-safe だけです。この状態でも、php7.4のインストールはできますが、PHPのバージョンを指定する方が分かり易いので、yum コマンドで、PHPバージョン毎のリポジトリを指定してインストールすることにします。
/etc/yum.repos.d/emi-safe.repo を編集してremi-safeリポジトリを無効化します。
cd /etc/yum.repos.d/ vi remi-safe.repo
[remi-safe] の enabled=0 と設定します。
[remi-safe]
[remi-safe] ... enabled=0 ...
yum repolist で remi が無効になっているかを確認して下さい。
最初に yum install でPHP7.3の本体をインストールします。使用するリポジトリは remi-php74です。
yum install --enablerepo=remi,remi-php73 php
リポジトリしては remi と remi-php73 の2つを指定しました。バージョン共通のパッケージが remi には含まれているようです。
remi
remi-php73
引き続いて、PHPモジュールをインストールします。
必要に応じて追加して下さい。
yum install --enablerepo=remi,remi-php73 php-devel php-mbstring php-pdo php-gd php-mysqlnd
php-mysqlndは
現在のPHPバージョンを確認します。
php -v PHP 7.3.18 (cli) (built: May 12 2020 08:04:33) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.3.18, Copyright (c) 1998-2018 Zend Technologies
USP リポジトリは python や git の最新版をインストールする場合に必要になります。USP リポジトリは登録が終わったら無効化しておき、必要に応じて yumコマンドで有効化することにします。
USP から git2.x をインストール手順を以下に示します。USP では EPEL を使用するので、先にEPELリポジトリの登録を済ませて下さい。
yum list でgitのインストール状況を調べます。
yum list git* 読み込んだプラグイン:fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: ftp.yz.yamagata-u.ac.jp * epel: ftp.yz.yamagata-u.ac.jp * extras: ftp.yz.yamagata-u.ac.jp * updates: ftp.yz.yamagata-u.ac.jp インストール済みパッケージ git.x86_64 1.8.3.1-6.el7_2.1 @updates 利用可能なパッケージ GitPython.noarch 1.0.1-8.el7 epel git.x86_64 1.8.3.1-22.el7_8 updates git-all.noarch 1.8.3.1-22.el7_8 updates git-annex.x86_64 5.20140221-1.2.el7 epel ...
git1.8がインストールされているようです。
インストール済のgit1.8を削除します。
yum remove git
上の表示例は、抜粋ですが、多くのPHPがバージョン毎にリポジトリ化されているのが分かります。有効になっているのは remi-safe だけです。この状態でも、php7.4のインストールはできますが、PHPのバージョンを指定する方が分かり易いので、PHPバージョン毎のリポジトリを指定してインストールすることにします。