Linux Server Deployment & SSH Mastery · レッスン

ソフトウェアリポジトリの管理

サードパーティーリポジトリを追加し、パッケージソースを理解して、複雑なソフトウェアのインストール時に依存関係の競合を解決します。

レッスン 3/411 ステップ

「ソフトウェアリポジトリの管理」はCoddyKit上の無料Linux Server Deployment & SSH Masteryレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはLinux Server Deployment & SSH Mastery学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Linux Server Deployment & SSH Masteryコースには全4レッスンが含まれています。

ソフトウェアリポジトリとは?

Linuxにソフトウェアをインストールするとき、システムは適当な場所から無作為にダウンロードするわけではありません。ソフトウェアリポジトリを使用します。

リポジトリ(repo)とは、ソフトウェアパッケージが保存・管理されている一元的な場所です。Linuxサーバー向けのアプリストアのようなものだと考えてください。

  • 信頼性:パッケージは通常、使用しているLinuxディストリビューションで動作することがテストされています。
  • 更新:リポジトリを使うと、ソフトウェアを最新の状態に保ちやすくなります。
  • 依存関係:必要な関連ソフトウェア(依存関係)のインストールを処理します。

公式ソースとサードパーティソース

リポジトリは通常、次の2種類に分けられます。

  • 公式リポジトリ:Linuxディストリビューション(例:Ubuntu、CentOS)が管理しています。安定していて十分にテストされたソフトウェアが含まれています。一般的なツールの多くはここから提供されます。
  • サードパーティリポジトリ:ディストリビューションではなく、個人の開発者や組織が管理しています。より新しいソフトウェアバージョン、特定用途向けのツール、ベータ版などが提供される場合があります。

サードパーティリポジトリは便利な場合もありますが、常に注意して利用してください。セキュリティリスクを避けるため、信頼できるソースのリポジトリだけを追加しましょう。

APTでのリポジトリ追加(Debian/Ubuntu)

DebianおよびUbuntu系システムでは、Advanced Package Tool(APT)がソフトウェアを管理します。リポジトリは/etc/apt/以下のファイルに記載されており、主に/etc/apt/sources.listと/etc/apt/sources.list.d/内のファイルが使われます。

サードパーティリポジトリには、特にPersonal Package Archives(PPA)を追加する場合、add-apt-repositoryコマンドを使うことがよくあります。

新しいリポジトリを追加した後は、必ずsudo apt updateを実行して、そこから最新のパッケージ情報を取得してください。

APTリポジトリ:PPA追加の例

一般的なPPAを追加する方法を見てみましょう。この例では、テキストエディターNeovimの新しいバージョンを提供するPPAを追加し、その後パッケージリストを更新します。

# Add the Neovim stable PPA
sudo add-apt-repository -y ppa:neovim-ppa/stable

# Update your package list to include the new repo's packages
sudo apt update

echo "Neovim PPA added and package lists updated!"

YUM/DNFでのリポジトリ追加(RHEL/CentOS)

Red Hat、CentOS、Fedoraシステムでは、yum(または後継のdnf)がパッケージを管理します。これらのシステムでは、リポジトリの定義に.repoファイルを使用します。

これらのファイルは通常、/etc/yum.repos.d/ディレクトリにあります。各.repoファイルでは、名前、ベースURL、GPGキー情報などを含む1つ以上のリポジトリを定義します。

.repoファイルを作成または変更した後は、sudo dnf clean all(またはyum clean all)を実行し、その後sudo dnf update(またはyum update)を実行してパッケージメタデータを更新する必要がある場合があります。

YUM/DNFリポジトリ:.repoファイルの作成

ここでは、公式のRHEL/CentOSリポジトリには含まれていないGoogle Chrome用の.repoファイルを作成する例を示します。sudo権限でファイルに書き込むためにteeを使用します。

# Create a .repo file for Google Chrome
echo "[google-chrome]" | sudo tee /etc/yum.repos.d/google-chrome.repo
echo "name=Google Chrome" | sudo tee -a /etc/yum.repos.d/google-chrome.repo
echo "baseurl=http://dl.google.com/linux/chrome/rpm/stable/x86_64" | sudo tee -a /etc/yum.repos.d/google-chrome.repo
echo "enabled=1" | sudo tee -a /etc/yum.repos.d/google-chrome.repo
echo "gpgcheck=1" | sudo tee -a /etc/yum.repos.d/google-chrome.repo
echo "gpgkey=https://dl.google.com/linux/linux_signing_key.pub" | sudo tee -a /etc/yum.repos.d/google-chrome.repo

echo "Google Chrome repository file created!"

GPGキーによるパッケージの検証

サードパーティリポジトリを追加するときは、GPG(GNU Privacy Guard)キーもインポートすることが重要です。これらのキーは、パッケージの真正性を暗号学的に検証するために使用されます。

これにより、ダウンロードしたパッケージが改ざんされておらず、表示されたソースから実際に提供されたものであることを確認し、悪意のあるソフトウェアからシステムを保護できます。

  • APT:キーはadd-apt-repositoryで処理されることが多く、apt-key addで手動インポートすることもできます。
  • YUM/DNF:キーは.repoファイルでgpgkey=を使って指定し、rpm --importでインポートします。
wget -qO - https://example.com/KEY.gpg | sudo apt-key add -
# Or for YUM/DNF:
sudo rpm --import https://example.com/KEY.gpg

依存関係の競合への対処

異なるリポジトリが同じパッケージの異なるバージョンを提供していたり、依存関係が競合するパッケージを提供していたりする場合があります。これにより依存関係の競合が発生することがあります。

パッケージマネージャーは通常、このような競合を警告し、解決策を提案することがあります。診断に使われる一般的なツールには次のものがあります。

  • APT:apt policy <package-name>は、異なるリポジトリで利用可能なバージョンを表示します。
  • YUM/DNF:dnf deplist <package-name>は、依存関係と提供元を一覧表示します。

サードパーティ版が必要で、その潜在的なリスクを理解している場合を除き、公式リポジトリを使うのが最善です。

apt policy firefox
# Or for YUM/DNF:
dnf deplist firefox

リポジトリの優先順位付け

同じパッケージを提供するリポジトリが複数ある場合、どのリポジトリを優先するかをパッケージマネージャーに指定できます。これをリポジトリの優先順位付けと呼びます。

  • APT:/etc/apt/preferences.d/にファイルを作成して「pinning」を使用します。特定のソースのパッケージに「Pin-Priority」を割り当てます。500を超える高い数値は、優先されることを示します。
  • YUM/DNF:yum-plugin-priorities(またはDNF組み込みの機能)を使うと、.repoファイルにpriority=の値を設定できます(数値が小さいほど優先順位が高くなります)。

これにより、安定版のリポジトリと新しいリポジトリを安全に組み合わせて利用できます。

# Example for APT pinning:
# File: /etc/apt/preferences.d/my-app
Package: my-app
Pin: origin "example.com"
Pin-Priority: 900

リポジトリ管理チェック

ソフトウェアリポジトリの管理について、理解度を確認してみましょう。

復習:リポジトリを使いこなす

おめでとうございます。Linux管理者にとって重要なスキルである、ソフトウェアリポジトリの管理方法を学びました。

  • 公式リポジトリとサードパーティリポジトリの違いを理解しました。
  • add-apt-repository(Debian/Ubuntu)や.repoファイルの作成(RHEL/CentOS)によって、リポジトリを追加できるようになりました。
  • パッケージの真正性を検証するGPGキーの重要性を理解しました。
  • 依存関係の競合への対処と、リポジトリの優先順位付けについて学びました。

セキュリティを常に優先し、信頼できるソースのリポジトリだけを追加するようにしてください。

無料で開始

AI チューターと学ぶ Linux Server Deployment & SSH Mastery — 無料

ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。

コース
12
レッスン
48

よくある質問

「ソフトウェアリポジトリの管理」レッスンは無料ですか?

はい。「ソフトウェアリポジトリの管理」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Linux Server Deployment & SSH Masteryコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Linux Server Deployment & SSH Masteryコースには全4レッスンが含まれています。

「ソフトウェアリポジトリの管理」で何を学びますか?

サードパーティーリポジトリを追加し、パッケージソースを理解して、複雑なソフトウェアのインストール時に依存関係の競合を解決します。 ブラウザで直接実行するハンズオンコードでLinux Server Deployment & SSH Masteryを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Linux Server Deployment & SSH Masteryを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのLinux Server Deployment & SSH Masteryは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。

「ソフトウェアリポジトリの管理」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このLinux Server Deployment & SSH Masteryレッスンでコードを書いて実行できますか?

はい。すべてのLinux Server Deployment & SSH Masteryレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. APTとYUMのパッケージマネージャー
  2. ソフトウェアのインストールと更新
  3. ソフトウェアリポジトリの管理
  4. ソースからのビルドとSnap/Flatpakの利用
← Linux Server Deployment & SSH Masteryに戻る