ページの作成:「== 概要 == Myrlyn (旧称YQPkg) は、Linux向けのグラフィカルパッケージ管理ツールである。<br> YaST (Yet another Setup Tool) の機能を引き継ぎつつ、現代的なQt 6ベースのUIを採用しており、ソフトウェアパッケージのインストール、更新、削除をユーザフレンドリーな方法で管理できる。<br> <br> openSUSEおよびSLE (SUSE Linux Enterprise) 環境での使用を想定しており、libzy…」
 
 
(同じ利用者による、間の4版が非表示)
3行目: 3行目:
YaST (Yet another Setup Tool) の機能を引き継ぎつつ、現代的なQt 6ベースのUIを採用しており、ソフトウェアパッケージのインストール、更新、削除をユーザフレンドリーな方法で管理できる。<br>
YaST (Yet another Setup Tool) の機能を引き継ぎつつ、現代的なQt 6ベースのUIを採用しており、ソフトウェアパッケージのインストール、更新、削除をユーザフレンドリーな方法で管理できる。<br>
<br>
<br>
openSUSEおよびSLE (SUSE Linux Enterprise) 環境での使用を想定しており、libzyppパッケージ管理ライブラリをバックエンドとして利用する。<br>
openSUSEおよびSLE (SUSE Linux Enterprise) 環境での使用を想定しており、libzypパッケージ管理ライブラリをバックエンドとして利用する。<br>
<br>
<br>
Myrlynは、YaST由来の機能に加えて、Updatesビュー、Zypp履歴ブラウザ、非rootユーザ向けの読み取り専用モード等の独自機能を提供する。<br>
Myrlynの開発は2024年11月のHack Week 24においてYQPkgとして開始された。<br>
その後、2025年1月19日にversion 1.0.0 (安定版) がリリースされており、openSUSE Leap 16ではYaSTに代わる公式パッケージ管理GUIとして位置づけられている。<br>
<br>
Myrlynは、YaST由来の機能に加えて、Updatesビュー、Zypp履歴ブラウザ、非rootユーザ向けの読み取り専用モード、コミュニティリポジトリ管理などの独自機能を提供する。<br>
<br><br>
 
== YaSTからの移行 ==
==== 移行の背景 ====
YaSTは30年以上前からopenSUSEの標準システム管理ツールとして使用されてきた。<br>
しかし、RubyベースのYaSTは複雑な依存関係を持ち、保守が困難な状況となっていた。<br>
<br>
この課題を受けて、SLE 16での廃止が決定され、Leap 16でも同様に廃止が決定された。<br>
<br>
YaSTが担っていた役割は、以下に示す3つのツールに分割・移管される。<br>
* Agama
*: インストーラとしての役割を担う。
* Cockpit
*: Webベースのシステム管理ツールとしての役割を担う。
* Myrlyn
*: パッケージ管理GUIとしての役割を担う。
<br>
==== openSUSE Leap 16での位置づけ ====
Leap 16の新規インストール環境では、Myrlynがデフォルトで含まれる。<br>
旧バージョンからアップグレードする場合は、別途インストールが必要となる。<br>
<br>
Myrlyn 1.0はYaSTソフトウェアモジュールの機能をほぼ100%カバーしており、さらに以下の点で改善されている。<br>
* 起動時パフォーマンスの向上
* UI/UXの大幅な改善
* パッケージ選択時の遅延削減
<br>
==== Tumbleweed / Slowrollでの状況 ====
* Tumbleweed
*: YaSTはまだ存在しており、段階的に廃止が予定されている。コミュニティによる保守の可能性もある。Myrlynの利用も可能。
* Slowroll
*: Agamaインストーラに対応しており、新しいアプローチに準拠している。
<br><br>
<br><br>


11行目: 45行目:
Myrlynの技術的な構成を、以下に示す。<br>
Myrlynの技術的な構成を、以下に示す。<br>
* バックエンド
* バックエンド
*: libzypp (SUSEのパッケージ管理ライブラリ)
*: libzypp (openSUSEのパッケージ管理ライブラリ)
* GUIフレームワーク
* GUIフレームワーク
*: Qt 6
*: Qt 6
45行目: 79行目:
*: インストールや更新の進行状況を視覚的に確認できる。
*: インストールや更新の進行状況を視覚的に確認できる。
* Zypp履歴ブラウザ
* Zypp履歴ブラウザ
*: パッケージ操作の履歴を階層的にフィルタリング可能 (年月日ナビゲーション、正規表現ワイルドカード対応)
*: パッケージ操作の履歴を階層的にフィルタリング可能 (年月日ナビゲーション、正規表現ワイルドカード対応)
* Community Repository Support
*: openSUSE Leap 16.0向けコミュニティリポジトリに対応しており、Packman、openh264、libdvdcss、NVIDIA等のプリセットを利用できる。
* Dependency Resolver表示
*: メインウィンドウにresolver modeを表示する。
* RPM Recommends検索
*: 推奨パッケージの検索機能を提供する。
* 検索モード設定
*: 「Starts With」と「Contains」の2モードをUIのwrenchアイコンから切り替えられる。
* 設定ファイル統合
*: <u>~/.config/openSUSE/myrlyn-sudo.conf</u> で環境変数 (proxy設定等) を設定できる。
<br>
<br>
==== パッケージロック機能 ====
==== パッケージロック機能 ====
Myrlynは、パッケージに対して2つの保護状態を設定できる。<br>
Myrlynは、パッケージに対して2つの保護状態を設定できる。<br>
* Taboo状態
* Taboo状態
*: パッケージを永遠にインストール対象から除外する。(アンインストール後も再インストール防止)
*: パッケージを永遠にインストール対象から除外する (アンインストール後も再インストール防止)
* Protected状態
* Protected状態
*: 現在のバージョンを維持し続ける。(更新を防止)
*: 現在のバージョンを維持し続ける (更新を防止)
<br><br>
 
== UI/UX設計 ==
Myrlynは、以下のUI/UX設計の特徴を持つ。<br>
* 現代的なQt 6ベースのインターフェース
*: 高解像度ディスプレイへの最適化が行われている。
* 列幅の自動調整
*: 手動調整の不要化により、ユーザの操作負担を軽減する。
* 従来のYaST実装より改善された視覚的外観
*: より洗練されたデザインを採用している。
<br><br>
<br><br>


59行目: 113行目:
Myrlyn 1.0では、GCC 11以降、Qt 6.5以降が必須となる。<br>
Myrlyn 1.0では、GCC 11以降、Qt 6.5以降が必須となる。<br>
<br>
<br>
==== パッケージ管理システムからインストール ====
===== Tumbleweed / Slowroll向け =====
SUSE 15.6では、標準リポジトリからMyrlynをインストールできる。<br>
Tumbleweed/Slowrollでは、標準リポジトリからMyrlynをインストールできる。<br>
<br>
sudo zypper install myrlyn
<br>
===== Leap 15.6向け =====
Leap 15.6でも、標準リポジトリからMyrlynをインストールできる。<br>
<br>
sudo zypper install myrlyn
<br>
===== Leap 16向け =====
Leap 16の新規インストール環境ではMyrlynがデフォルトで含まれる。<br>
旧バージョンからアップグレードした場合は、以下のコマンドでインストールする。<br>
<br>
  sudo zypper install myrlyn
  sudo zypper install myrlyn
<br>
<br>
==== ソースコードからインストール ====
==== ソースコードからインストール ====
===== 依存パッケージのインストール =====
Myrlynのビルドに必要な依存関係のライブラリをインストールする。<br>
Myrlynのビルドに必要な依存関係のライブラリをインストールする。<br>
sudo zypper install -t pattern devel_C_C++
<br>
  sudo zypper install make cmake libzypp-devel qt6-core-devel qt6-gui-devel qt6-widgets-devel
  sudo zypper install make cmake libzypp-devel qt6-core-devel qt6-gui-devel qt6-widgets-devel
<br>
<br>
[https://github.com/shundhammer/myrlyn MyrlynのGithub]にアクセスして、ソースコードをダウンロードする。<br>
Tumbleweed / Slowroll向けには、開発パターンを利用することもできる。<br>
<br>
sudo zypper install -t pattern devel_C_C++ devel_qt6
sudo zypper install cmake libzypp-devel
<br>
Leap 15 / SLE 15環境の場合、GCC 10以上が必要となる。<br>
<br>
sudo zypper in gcc10-c++
<br>
===== ビルド手順 =====
[https://github.com/shundhammer/myrlyn MyrlynのGitHub]にアクセスして、ソースコードをダウンロードする。<br>
ダウンロードしたファイルを解凍する。<br>
ダウンロードしたファイルを解凍する。<br>
<br>
  tar xf myrlyn-<バージョン>.tar.gz
  tar xf myrlyn-<バージョン>.tar.gz
  cd myrlyn-<バージョン>
  cd myrlyn-<バージョン>
<br>
<br>
Myrlynをビルドおよびインストールする。<br>
または、<code>git clone</code> コマンドを実行して、ソースコードをダウンロードする。<br>
<br>
git clone https://github.com/shundhammer/myrlyn.git
cd myrlyn
<br>
Myrlynをビルドする。<br>
<br>
# SLE 16 / openSUSE Leap 16
make -f Makefile.repo
cd build
make
# SLE 15 / openSUSE Leap 15
make -f Makefile.repo leap-15
cd build
make
# openSUSE Tumbleweed / Slowroll
make -f Makefile.repo
cd build
make
<br>
カスタムビルドを行う場合、CMakeオプションを指定してビルドできる。<br>
<br>
  mkdir build && cd build
  mkdir build && cd build
   
   
  cmake -DCMAKE_INSTALL_PREFIX=<Myrlynのインストールディレクトリ> \
  cmake -DCMAKE_INSTALL_PREFIX=<Myrlynのインストールディレクトリ> \
       -DCMAKE_BUILD_TYPE=Release \
       -DCMAKE_BUILD_TYPE=Release             \
       -DCMAKE_C_COMPILER=<GCC 11以降のGCC> \
       -DCMAKE_C_COMPILER=<GCC 10以降のGCC>   \
       -DCMAKE_CXX_COMPILER=<G++ 11以降のG++> \
       -DCMAKE_CXX_COMPILER=<GCC 10以降のG++> \
       ..
       ..
   
   
  make -j $(nproc)
  make -j $(nproc)
  make install
<br>
<center>
{| class="wikitable"
|+ CMakeオプション
! オプション名 !! 説明 !! 例
|-
| CMAKE_INSTALL_PREFIX || Myrlynのインストールディレクトリを指定する。 || 任意のインストールディレクトリ
|-
| CMAKE_BUILD_TYPE || ビルドタイプを指定する。(Release, Debug, RelWithDebInfo, MinSizeRel) || <u>Release</u>
|-
| CMAKE_C_COMPILER || Cコンパイラを指定する。 || <u>gcc-16</u>
|-
| CMAKE_CXX_COMPILER || C++コンパイラを指定する。 || <u>g++-16</u>
|}
</center>
<br>
 
===== インストール =====
ビルド完了後、以下に示すコマンドで実行可能形式をインストールする。<br>
  sudo make install
<br>
インストール先は、<u>/usr/bin/myrlyn</u> となる。<br>
カスタムインストールディレクトリを指定した場合は、そのディレクトリの <u>bin/myrlyn</u> にインストールされる。<br>
<br>
===== クリーンアップ =====
ビルドディレクトリを削除する場合は、以下のコマンドを実行する。<br>
rm -rf build
<br><br>
<br><br>


== Myrlynの使用 ==
== Myrlynの使用 ==
==== 実行方法 ====
==== 実行方法 ====
Myrlynは、以下に示す方法で実行できる。<br>
===== ビルドディレクトリから実行 =====
ビルドディレクトリから直接実行する場合、以下に示すコマンドを実行する。<br>
<br>
<br>
===== ビルドディレクトリから実行 =====
ビルドディレクトリから直接実行する場合、以下のコマンドを実行する。<br>
  ./src/myrlyn
  ./src/myrlyn
<br>
<br>
===== インストール後の実行 =====
===== インストール後の実行 =====
インストール後は、以下のコマンドで実行できる。<br>
インストール後は、以下に示すコマンドで実行できる。<br>
<br>
  myrlyn
  myrlyn
<br>
<br>
===== 非rootユーザでの実行 =====
===== 一般rootユーザでの実行 =====
非rootユーザーは、読み取り専用モードで実行できる。<br>
一般rootユーザは、読み取り専用モードで実行できる。<br>
この場合、パッケージ情報の閲覧は可能だが、変更操作は実行できない。<br>
この場合、パッケージ情報の閲覧は可能だが、変更操作は実行できない。<br>
<br>
  myrlyn
  myrlyn
<br>
<br>
===== rootユーザでの実行 =====
===== rootユーザでの実行 =====
rootユーザまたはsudoコマンドを使用して実行する場合、全ての機能が利用可能となる。<br>
rootユーザ または sudoコマンドを使用して実行する場合、全ての機能が利用可能となる。<br>
<br>
  sudo myrlyn
  sudo myrlyn
<br>
<br>
110行目: 239行目:
Updatesビューでは、更新可能なパッケージを一覧表示できる。<br>
Updatesビューでは、更新可能なパッケージを一覧表示できる。<br>
起動後、Updatesタブを選択すると、更新可能なパッケージが表示される。<br>
起動後、Updatesタブを選択すると、更新可能なパッケージが表示される。<br>
更新したいパッケージを選択して、Applyボタンをクリックすると、更新が実行される。<br>
更新したいパッケージを選択して、[Apply]ボタンを押下すると、更新が実行される。<br>
<br>
<br>
==== Zypp履歴ブラウザの使用 ====
==== Zypp履歴ブラウザの使用 ====
Zypp履歴ブラウザでは、パッケージ操作の履歴を確認できる。<br>
Zypp履歴ブラウザでは、パッケージ操作の履歴を確認できる。<br>
履歴は、年月日で階層的にフィルタリング可能であり、正規表現ワイルドカードにも対応している。<br>
履歴ブラウザを開くには、メニューから[History]を選択する。<br>
履歴ブラウザを開くには、メニューから[History]を選択する。<br>
<br>
Myrlyn 1.0では、以下の改善が行われている。<br>
* 階層的タイムラインビュー
*: 年、月、日で構成された新しいナビゲーション構造を採用している。
* トランザクショングループ化
*: 各コマンドが実行した内容を明確に表示する (dup、install、removeの区別が可能)。
* 詳細フィルタリング
*: パッケージ名、パターン、リポジトリ、削除イベント等での検索が可能。
* 正規表現ワイルドカード対応
*: 高度な検索条件を指定できる。
<br>
<br>
==== パッケージロック機能の使用 ====
==== パッケージロック機能の使用 ====
127行目: 265行目:
パッケージを右クリックして、[Protected]を選択すると、現在のバージョンが維持され続ける。<br>
パッケージを右クリックして、[Protected]を選択すると、現在のバージョンが維持され続ける。<br>
更新が防止される。<br>
更新が防止される。<br>
<br><br>
== コミュニティリポジトリ管理 ==
Myrlyn 1.0では、コミュニティリポジトリをGUIから直接管理できる機能が追加された。<br>
<br>
==== 組み込みリポジトリプリセット ====
以下に示すディストリビューション向けにリポジトリプリセットが用意されている。<br>
* Leap 16
* Tumbleweed
* Slowroll
* SLE 15
<br>
各ディストリビューション向けに、以下に示すコミュニティリポジトリが利用可能である。<br>
* Packman
*: マルチメディアコーデック等の追加パッケージを提供する。
* openh264
*: H.264コーデックを提供する。
* libdvdcss
*: DVD再生に必要なライブラリを提供する。
* NVIDIA
*: NVIDIAグラフィックスドライバを提供する。
<br>
==== カスタムリポジトリの追加 ====
GUIからカスタムリポジトリを追加する場合、libzypp変数を使用したURLを指定できる。<br>
例として、<code>$releasever</code> 等の変数が利用可能である。<br>
<br>
==== リポジトリの優先度設定 ====
各リポジトリの優先度をGUIから調整できる。<br>
優先度の設定により、同一パッケージが複数のリポジトリに存在する場合の選択順序を制御できる。<br>
<br>
==== 自動リフレッシュ設定 ====
各リポジトリごとに自動リフレッシュをenable/disableの切り替えが可能である。<br>
<br><br>
== 設定ファイル ==
Myrlynの設定ファイルは <u>~/.config/openSUSE/</u> ディレクトリに格納される。<br>
<br>
==== myrlyn-sudo.conf ====
<u>~/.config/openSUSE/myrlyn-sudo.conf</u> は、特権操作時の環境変数を設定するファイルである。<br>
proxy設定等、特権昇格 (sudo) を行う時に引き継ぎたい環境変数をこのファイルで定義する。<br>
<br>
設定例を以下に示す。<br>
<br>
# プロキシ設定
http_proxy=http://proxy.example.com:8080
https_proxy=http://proxy.example.com:8080
no_proxy=localhost,127.0.0.1
<br><br>
<br><br>


== 注意事項 ==
== 注意事項 ==
Myrlynを使用する際の注意事項を、以下に示す。<br>
* Leap 15.x / SLE 15環境では、GCC 10以上が必須となる。
<br>
*: 古いGCCバージョンでのビルドは失敗する。
* Myrlyn 1.0では、GCC 11以降、Qt 6.5以降が必須となる。
*: ビルド時に、これらのバージョンを満たすコンパイラとライブラリが必要。
* 非rootユーザは、読み取り専用モードで実行可能。
* 非rootユーザは、読み取り専用モードで実行可能。
*: 変更操作は実行できない。
*: 変更操作は実行できない。
* Zypp履歴ブラウザのフィルタリング機能は、正規表現ワイルドカードに対応。
* Zypp履歴ブラウザのフィルタリング機能は、正規表現ワイルドカードに対応。
*: 高度な検索条件を指定できる。
*: 高度な検索条件を指定できる。
<br>
以下はMyrlynの既知の制限事項である。<br>
* オフライン参照不可
*: インターネット接続がない環境では、パッケージリストが利用できない。
* リポジトリ追加時の自動リロード未対応
*: リポジトリの追加または変更後は、Myrlynを終了して再起動する必要がある。
* GPGキー管理
*: GPGキーの管理は <code>zypper</code> コマンドで実施する。
* ソフトウェアサービス設定
*: ソフトウェアサービスの設定は SUSE Manager または <code>zypper</code> コマンドで実施する。
* 高度なリポジトリ設定
*: 高度なリポジトリ設定が必要な場合は、zypperリファレンスドキュメントを参照する。
<br><br>
== 関連リンク ==
* [https://github.com/shundhammer/myrlyn Myrlyn GitHubリポジトリ]
* [https://news.opensuse.org/2025/02/10/myrlyn-now-handles-community-repos/ Myrlyn Now Handles Community Repos]
* [https://linuxiac.com/opensuse-myrlyn-package-manager-reaches-version-1-0/ Myrlyn 1.0 Released - LinuxIAC]
<br><br>
<br><br>