問題:
このプログラムを実行しようとしています。システム上の依存関係とパッケージのトポロジマップ/グラフを作成したいと考えていますrpm
。
rpm-devel-4.14.2-1.fc29.x86_64.rpm Fedora 29 ダウンロード とりわけ次のことが分かります:
rpm グラフ。 rpm の argv.h を参照してください。 ./rpm/header.h を参照してください。 rpmarchive.h を参照してください。 rpmbase64.h に以下を追加します。 rpmbuild.h を参照してください。
https://linux.die.net/man/8/rpmgraph
rpmgraph PACKAGE_FILE
私はこれを試しました:
rpm -qa > INSTALLED_PACKAGES
rpmgraph INSTALLED_PACKAGES
そして、これは入力用ですPACKAGE_FILE
:
rpm -qa | sort | sed -e 's/\([^.]*\).*/\1/' -e 's/\(.*\)-.*/\1/' > PACKAGE_FILE
これは、バージョン番号やアーキテクチャ番号を除いたファイル名のみを対象とします。
ファイル名のみの場合、次のエラーが発生します:
error: open of xfce4-screenshooter failed: No such file or directory
error: open of xfce4-screenshooter-plugin failed: No such file or directory
error: open of xfce4-session failed: No such file or directory
error: open of xfce4-session-engines failed: No such file or directory
error: open of xfce4-settings failed: No such file or directory
error: open of xfce4-taskmanager failed: No such file or directory
error: open of xfce4-terminal failed: No such file or directory
error: open of xfce-polkit failed: No such file or directory
error: open of xfconf failed: No such file or directory
error: open of xfdesktop failed: No such file or directory
error: open of xfsprogs failed: No such file or directory
error: open of xfwm4 failed: No such file or directory
前者の場合、次のエラーが発生します:
# rpmgraph INSTALLED_PACKAGES
(null): read manifest failed:
.rpm
そのため、ほとんどのツールがパッケージを操作するために使用するように、パッケージ + 拡張子のリストが必要だと想定していましたrpm
が、うまくいきませんでした。
質問:
このプログラム ( ) を使用して、インストールされているすべてのパッケージのこのようなマップ/グラフを作成できるかどうrpmgraph
か、またその方法をご存知の方はいらっしゃいますか?
また、別の方法があった場合は、回答をお願いします。
Fedora 30 でテストしています。
この質問はこれに関連しています:インストールされた rpm パッケージをトポロジ的にソートする方法/523075#523075
編集:
私は答えからこれを試しました:
rpmgraph | rpm --queryformat "%{name}-%{version}-%{release}.%{arch}.rpm\n" -qa > rpmgraph.dot
その後:
dot -Tps rpmgraph.dot -o rpmgraph.ps
しかし、次のようなエラーが発生します:
Warning: syntax ambiguity - badly delimited number '-20.f' in line 1794 of rpmgraph.dot splits into two tokens
Warning: syntax ambiguity - badly delimited number '-9.11.' in line 1795 of rpmgraph.dot splits into two tokens
Warning: syntax ambiguity - badly delimited number '-5.P' in line 1795 of rpmgraph.dot splits into two tokens
Warning: syntax ambiguity - badly delimited number '-2.12.' in line 1796 of rpmgraph.dot splits into two tokens
Warning: syntax ambiguity - badly delimited number '-2.f' in line 1796 of rpmgraph.dot splits into two tokens
Warning: syntax ambiguity - badly delimited number '-1.1.' in line 1797 of rpmgraph.dot splits into two tokens
Warning: syntax ambiguity - badly delimited number '-5.f' in line 1797 of rpmgraph.dot splits into two tokens
Warning: syntax ambiguity - badly delimited number '-0.8.' in line 1798 of rpmgraph.dot splits into two tokens
そして:
# dotty rpmgraph.dot
graph parser: syntax error near line 1
context: >>> giflib <<< -5.1.9-1.fc30.x86_64.rpm
dotty.lefty: cannot load graph
答え1
グラフを生成するには、dot ユーティリティを試してください。
$ rpmgraph *.rpm > rpmgraph.dot
$ dot -Tps rpmgraph.dot -o rpmgraph.ps