SDB:Zypper のトラブルシューティング
冗長な出力
--verbose グローバルオプションを指定することで、 zypper がより詳しい出力を行なうようになります。これを複数回指定すると (最大で 2 レベルまで) 、さらに詳しい出力を行なうことができます。たとえば zypper -vv up のようにして実行します。
ログ
バージョン 0.8.0 およびそれ以降では、 zypper のログは既定で /var/log/zypper.log に出力されます。ログファイルの出力先は ZYPP_LOGFILE 環境変数で設定することができます。たとえば下記のように実行します:
$ ZYPP_LOGFILE=zypper-refresh-updates.log zypper refresh updates
なお、デバッグログをできるだけ多く出力したい場合は、実行時に ZYPP_FULLLOG=1
を指定してください。
また、解決器をデバッグしたい場合は ZYPP_LIBSAT_FULLLOG=1
を指定します。
解決器のテストケース
バージョン 0.8.7 およびそれ以降では、パッケージの依存関係や libzypp の依存関係解決器に関連する問題をデバッグする目的で、解決器のテストケースを生成することができます。解決器のテストケースを作成するには、 install, remove, update, dist-upgrade, verify, source-install の各コマンドに対して、 --debug-solver コマンドオプションを指定します。たとえば下記のようになります:
$ zypper install --debug-solver MozillaFirefox
テストケースのファイルは /var/log/zypper.solverTestCase ディレクトリ以下に出力されます。バグを報告する際は、バグレポート内にこのファイルを圧縮して添付してください。
バグの報告方法
バグ を報告する際には、コンポーネントを libzypp に設定して、ログファイルと zypper の出力をそれぞれ添付してください。もしもバグを簡単に再現できるようであれば、前回の実行からのログ全体をお送りいただく必要はありません。また、バグを再現させる場合には、 zypper のコマンドの前に ZYPP_LOGFILE=ログファイル名 を指定して実行し、記録されたログファイルをお送りください。たとえば下記のようになります:
$ ZYPP_LOGFILE=zypper.log zypper -vv install MozillaFirefox
動作中の zypper を無視する方法
アプリケーションを開発する際は、 zypper のロック (施錠) 機構を無視したほうが便利な場合があります (ただし、本番環境のマシンでは実行してはなりません!):
$ export ZYPP_READONLY_HACK=1 $ zypper ...