概要

SUSE Linuxにおいてリポジトリを追加するプロセスは、システムにソフトウェアパッケージの新しいソースを提供する重要な事柄である。
一般的に、この作業はroot権限を持つユーザ、または、sudoコマンドを使用して実行する。

リポジトリの追加は主に2つの方法で行われる。

  • コマンドラインを使用する方法
    Zypperというパッケージマネージャを使用する。
    zypperコマンドを使用して、新しいリポジトリのURLや名前を指定してシステムに追加する。
  • GUIを使用する方法
    SUSE Linuxでは、YaSTと呼ばれる管理ツールを使用してリポジトリを追加できる。
    YaSTを通じて、ソフトウェアリポジトリの設定画面にアクセスして、新しいリポジトリの詳細を入力することで追加が可能である。


リポジトリを追加する場合は、信頼できるソースからのものであることを確認することが重要である。
信頼性の低いリポジトリを追加すると、システムのセキュリティやパフォーマンスに悪影響を及ぼす可能性がある。

リポジトリを追加した後は、システムのパッケージリストを更新する必要がある。
これにより、新しく追加されたリポジトリからの最新のパッケージ情報がシステムに反映される。

また、追加したリポジトリが正しく機能していることを確認するため、新しいパッケージをインストール、あるいは、既存のパッケージを更新して、テストを行うことが推奨される。

※注意
既定のローカルキャッシュは、/var/cache/zypp/packagesディレクトリにある。
ローカルキャッシュの場所を変更する場合は、/etc/zypp/zypp.confファイルを編集することで変更できる。


リポジトリの追加

自動アップデートを有効にして、リポジトリを追加する。

sudo zypper addrepo -f <リポジトリのURL> <リポジトリのエイリアス名>
# または
sudo zypper ar -f <リポジトリのURL> <リポジトリのエイリアス名>

例 :
sudo zypper addrepo -f 'http://packman.inode.at/suse/openSUSE_Leap_$releasever/' Packman


また、-pオプションを付加することにより、リポジトリの優先度を設定することができる。
この値が小さいほど優先度が高くなる。

# リポジトリの優先度を90に指定する場合
# デフォルトのリポジトリの優先度の値は99のため、99未満の値が優先される
sudo zypper addrepo -f <リポジトリのURL> <リポジトリのエイリアス名> -p 90


--gpgcheckオプションを付加して、GPGチェックを有効にすることができる。

sudo zypper addrepo -f <リポジトリのURL> <リポジトリのエイリアス名> --gpgcheck



リポジトリの無効化

追加したリポジトリを無効にする。

sudo zypper modifyrepo -d <リポジトリのURLまたはエイリアス名>
# または
sudo zypper mr -d <リポジトリのURLまたはエイリアス名>

例 :
sudo zypper modifyrepo -d Packman



リポジトリの削除

追加したリポジトリを削除する。

sudo zypper removerepo <リポジトリのURLまたはエイリアス名>
# または
sudo zypper rr <リポジトリのURLまたはエイリアス名>

例: 
sudo zypper removerepo 'http://packman.inode.at/suse/openSUSE_Leap_$releasever/'



リポジトリの種類の指定

-tオプションを付加して、リポジトリの種類を指定することができる。

指定できるリポジトリの種類には複数の選択肢がある。
これらは、リポジトリがどのようにパッケージ情報を構成・提供しているかを示す。

リポジトリの種類を正しく指定することにより、Zypperはそのリポジトリからパッケージ情報を適切に読み取り、管理することができる。
多くの場合、リポジトリの種類を明示的に指定しなくても、Zypperが自動的に判断するが、問題が発生した場合や特定の動作を確実にする場合に-tオプションを付加する。

主なリポジトリの種類には以下に示すものがある。

  • YUM (Yellowdog Updater Modified)
    -t YUMと指定する。
    RHEL系のディストリビューションで広く使用されているリポジトリ形式である。
    XMLベースのメタデータを使用しており、依存関係の解決に優れている。
  • RPM-MD (RPM Metadata)
    -t RPM-MDと指定する。
    これはYUMと同様のフォーマットであり、多くの場合YUMと互換性がある。
  • Plaindir
    -t Plaindirと指定する。
    単純なディレクトリ構造でRPMパッケージを提供するリポジトリタイプである。
    メタデータが最小限であり、小規模なリポジトリに適している。
  • SUSE
    -t SUSEと指定する。
    SUSE特有のリポジトリ形式であり、YaST等のSUSEツールとの互換性が高い。
  • DEB
    -t DEBと指定する。
    Debian系のパッケージ形式用のリポジトリタイプであるが、SUSEでの使用は一般的ではない。
  • Helm
    -t Helmと指定する。
    Kubernetesのパッケージマネージャであるhelmのチャートリポジトリ向けである。


また、リポジトリの提供元がリポジトリの種類を明示している場合は、その指示に従うことが推奨される。
正しいリポジトリタイプを指定することにより、パッケージの検索、インストール、更新がより確実かつ効率的に行うことができる。


リポジトリリストの更新

リポジトリを更新した後、追加あるいは削除したリポジトリを含む全てのリポジトリのメタデータを更新する。

sudo zypper refresh



リポジトリの表示

設定されている全てのリポジトリを表示する。

sudo zypper repos

# 詳細な情報も表示する場合
sudo zypper repos -d  または  sudo zypper repos --details



YaSTの使用

まず、デスクトップ環境のメニューからYaSTを選択、あるいは、ターミナルでsudo yast2コマンドを実行する。

YaSTを起動した後、以下に示す手順でリポジトリの操作を行う。

  • リポジトリを追加・編集する場合
  1. ソフトウェアリポジトリの設定画面へ移動
    YaSTのメインウインドウから[ソフトウェア] - [ソフトウェアリポジトリ]を選択する。
  2. 現在のリポジトリの確認
    画面には現在システムに設定されているリポジトリの一覧が表示される。
    各リポジトリの名前、URL、有効 / 無効の状態等の情報を確認できる。
  3. 新しいリポジトリの追加
    [追加]ボタンを選択して、新しいリポジトリを追加するためのウィザードが開く。
    このウィザードでは、以下に示す操作が可能である。
    • リポジトリの種類の選択 (例: HTTP、FTP、CD/DVD等)
    • リポジトリのURLや場所の指定
    • リポジトリの名前とエイリアスの設定
  4. 既存のリポジトリの編集
    リストからリポジトリを選択して、[編集]ボタンを押下することにより、該当リポジトリの設定が変更できる。
    URLの変更やGPG鍵の設定等が可能である。
  5. リポジトリの有効化 / 無効化
    リストのチェックボックスで各リポジトリを有効または無効にできる。
  6. リポジトリの優先度設定
    [優先度]列を押下することにより、各リポジトリの優先度が調整できる。
    数値が小さいほど優先度が高くなる。


  • リポジトリを削除する場合
  1. 上記2.まで同様の操作を行う。
  2. 該当するリポジトリにフォーカスを当てる。
  3. [削除]ボタンを押下する。


  • リポジトリを更新する場合
  1. 上記2.まで同様の操作を行う。
  2. YaST画面右下にある[更新]プルダウンから任意の設定を選択して、リポジトリのメタデータを更新する。


  • 自動リフレッシュの設定
  1. 上記2.まで同様の操作を行う。
  2. 該当するリポジトリにフォーカスを当てる。
    [自動的に更新する]チェックボックスにチェックを入力する。


変更を加えた後、YaST画面の[OK]ボタンを押下して設定を保存する。

YaSTは変更を反映するためにシステムの設定ファイルを自動的に更新する。