CentOSでリポジトリを扱う方法 — Linuxでは当然のことながら、必要以上に難しくする必要がある
システムを最新の状態に保とうとして、奇妙なパッケージの競合に遭遇したり、ソフトウェアの新しいバージョンが見つからなかったりした経験があるなら、あなただけではありません。デフォルトのリポジトリは通常は安定していますが、最新ではありません。そこで、EPELやRemiなどのサードパーティ製リポジトリの出番です。これらをインストールすると選択肢は広がりますが、正直言って、システムを壊さずに有効化、無効化、または管理する方法を見つけるのは少々面倒です。そこで、頭が爆発しそうにならない程度に、この問題を解決する方法を一つずつ見ていきましょう。新しいソフトウェアにアクセスでき、マシンにインストールされているものをより適切に制御できるようになります。
CentOS で EPEL と Remi リポジトリを有効にする方法は?
何がポイントで、いつ気にする必要があるのでしょうか?
始める前に、知っておくと良いことがあります。EPEL(Extra Packages for Enterprise Linux)は、PHP、監視ツールなど、様々な追加機能を備えたオールスターリポジトリです。Remiは、PHPやMySQLの最新バージョンを入手するのに最適です。通常、デフォルトのリポジトリに何かが欠けていたり、古くなったりしている場合は、Remiが役立ちます。コアパッケージと競合することはないので安全です(ほとんどの場合。ただし、競合が発生する場合もありますので、ご注意ください)。新しいツールが有効になれば、それほど苦労せずにインストールできるようになります。
オンにする方法:コマンドと手順
- まず、どのリポジトリが有効になっているか確認しましょう。
yum repolistベース、エクストラ、アップデートだけになっているかもしれません。初心者にはこれで十分ですが、新しいものはあまり含まれていません。 - CentOS 7にEPELをインストールします
yum install epel-release。とても簡単です。実行すると、リポジトリがすぐにリストに表示されます。キャッシュをクリアする必要はありません。ソフトウェアのパントリーに棚を一つ追加するようなものです。 - Remiの場合: を実行します。これにより、最新のPHPやその他のアップデートを含むリポジトリが追加されます。(もちろん、「7」はCentOSのバージョンに置き換えてください。)
rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm - Remiで特定のPHPバージョンを有効にしたいですか? /etc/yum.repos.d/にあるファイル(remi-php73.repoなど)を見つけて設定してください
enabled=1。これは重要です。そうしないと、使われていない家具のようにただそこに放置されてしまうからです。
プロのヒント: カスタムリポジトリ構成の作成
パッケージやリポジトリがRPM経由で入手できない場合は、 /etc/yum.repos.d/以下にカスタム.repoファイルを作成してください。やなどの基本情報を追加するだけです。例えば、MariaDBを追加する場合は以下のようになります。[myrepo]namebaseurl
[mariadb] name=MariaDB baseurl=http://yum.mariadb.org/10.4/centos7-amd64/ gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1 enabled=1
リポジトリの管理と設定方法 – ちょっとした制御が大きな効果を発揮します
リポジトリ構成はどこに保存されますか?
/etc/yum.repos.d/内に、拡張子.repoを持つファイルがあります。各ファイルは基本的にリポジトリのミニ設定です。
これらのファイルはどのようになっているのでしょうか?
これらには通常name、baseurl、enabled(1 または 0)などの値や、 などのオプションが含まれますgpgcheck。以下に簡単な例を示します。
[myrepo] name=My Custom Repo baseurl=http://some.server.com/repo/ enabled=1 gpgcheck=1 gpgkey=https://some.server.com/RPM-GPG-KEY
リポジトリを無効にする方法
- .repoファイルを編集する
- セット
enabled=0 - yumキャッシュを消去する
yum clean all - キャッシュを再構築
yum makecache
これにより、リポジトリがパッケージ管理に表示されなくなります。アップデートまたはインストール時のみ一時的に無効にしたい場合は、--disablerepo=REPO_NAMEコマンドにオプションを使用してください。例:
yum update --disablerepo=epel
複数のリポジトリを一時的に無効にする方法
特定のリポジトリ(MariaDBなど)からのみアップデートしたいとします。次のコマンドを実行します。
yum update --disablerepo="*" --enablerepo=mariadb
yum-utils を使って管理を簡素化する
このツールセット( でインストールyum -y install yum-utils)を使うと、特に複雑な設定の場合、リポジトリの無効化と有効化が簡単になります。例えば、 remi: を無効化したりyum-config-manager --disable remi、リポジトリを完全に削除したりするには、.repoファイルを削除してから と を実行しyum clean allますyum makecache。
特定のリポジトリのパッケージ更新の確認
特定のリポジトリから利用可能なアップデートを確認するには、次のコマンドを実行します。
yum check-update --disablerepo="*" --enablerepo=mariadb
こうすることで、すべてのリポジトリでビューが乱雑になることなく、準備が整ったものを把握することができます。
知っておく価値のある他のリポジトリ — なぜ知ってはいけないのでしょうか?
- MariaDB :リポジトリのセットアップ手順を複製し、
[mariadb]リポジトリ ファイルを追加して、安定した、または最新の MariaDB バージョンを取得します。 - Nginx : Webサーバーの場合は、 /etc/yum.repos.d/ nginx.repo に適切なリポジトリ情報を含むファイルを作成します。Nginxの公式マニュアルには、多くの場合、gpgキーとCentOSバージョンに応じた正しいURLが記載されています。
- Webtatic : PHPをサポートしていますが、最新バージョンはRemiより数バージョン遅れている可能性があります。
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm - MySQL:MySQLに興味があるなら、[Oracleのサイト](https://dev.mysql.com/downloads/repo/yum/)からRPMをダウンロードし、指示に従ってください。ただし、MariaDBは現在、ほとんどのLinuxサーバーでデフォルトになっているので注意が必要です。
これらのリポジトリはかなり信頼性が高いですが、リポジトリのURLとGPGキーは必ず二重チェックしてください。Linuxは、すべて理解したと思ったら、どんどん複雑化していくものです。
まとめ
CentOS でのリポジトリ管理は、一度コツをつかめばそれほど難しくはありません。適切な RPM をダウンロードし、設定を調整し、有効化/リポジトリリストを注意深く確認するだけです。場合によっては、リポジトリを無効化したり、.repoyum-config-managerファイルを編集したりするだけで、大きな違いが生まれます。重要なのは、トラブルが発生したり、最新のリポジトリを入手したい場合に備えて、どのリポジトリを有効化したままにし、どのリポジトリを無効化するかを把握することです。
まとめ
- 必要に応じて、EPELやRemiなどの追加のリポジトリをインストールします。
- カスタム制御のために/etc/yum.repos.d/内のファイルを編集する
- 使用
yum clean allとyum makecache変更後 - 特定のリポジトリをクエリする
yum check-update --disablerepo="*" --enablerepo=yourrepo - yum-utilsのようなツールはリポジトリの管理を容易にします
これで誰かの時間短縮になればいいなと思っています。少し手間はかかりますが、少なくともこれでリポジトリのジャングルは少しはすっきりするはずです。