jhbuild をインストールし、PATH 変数を $PATH:~/.local/bin に設定しました。 jhbuildコマンドを実行するとエラーが発生します。jhbuildをrootとして使用しないでください。ユーザーを root 以外のユーザーに変更し、PATH 値を上の値に変更して ~ を /root に置き換えると、エラーが発生します。jhbuild コマンドが見つかりません。 私はkali linuxを使用しているので、デフォルトのユーザーはrootです。
答え1
あなたが経験しているアクションは、権限やバイナリの場所には関係なく、むしろそれを実行しているユーザーに関連しています。たとえば、rootとして実行できるように、JHBUILD_RUN_AS_ROOT
任意の値で環境変数を指定します。env JHBUILD_RUN_AS_ROOT= jhbuild ...
jhbuild
これはかなり文書化されていない機能であり、アプリの改善を提案しましたが、そのフィードバックは無視されました。https://github.com/GNOME/jhbuild/blob/master/jhbuild/main.py#L97これがなぜ機能するのか理解してください。
答え2
だから解決策を見つけました。命令が見つかりませんシェルがコマンドを探すディレクトリ(/root/.local/bin)とjhbuildは、コマンドで生成したいすべてのファイル(/jhbuild、/jhbuild/.cacheなど)の権限を変更しました。手動で作成し、同様の方法で権限を変更します。
答え3
env JHBUILD_RUN_AS_ROOT= jhbuild ...
Karl Richterが述べたように、rootとして実行するにはを使用する必要がありますjhbuild
。
ルートチェックしたのでhttps://github.com/GNOME/jhbuild/blob/master/jhbuild/main.py#L59、このエラーは、それを実行しているユーザーがrootの場合に発生します。
このソリューションは、モジュールを更新またはビルドするときに効果的です。
ただし、作成したバージョンのgnomeを実行しようとすると、そのエラーは再発生しません。
ログで見ました。
jhbuild
したがって、ファイルからルートチェックを削除する必要があります。
その後は設定する必要はなく、env
直接使用できますjhbuild ...
。
jhbuild
ルートチェックを削除するパッケージをビルドする方法:
- KaliはDebianベースなので
apt source jhbuild
。 - それからルートチェックを削除してください
jhbuild-<version>/jhbuild/main-py
。
削除(またはコメント)する行:
if 'JHBUILD_RUN_AS_ROOT' not in os.environ and hasattr(os, 'getuid') and os.getuid() == 0: uprint(_('You should not run jhbuild as root.\n'), file=sys.stderr) sys.exit(1)
- ビルドに必要なパッケージをインストールしてください
apt build-dep jhbuild
。 - 生成された
.deb
ファイルを親ディレクトリにインストールしますdpkg -i *.deb
。
command not found
インストールできるため、システム全体で使用できますjhbuild
。各ユーザーに対して再構築するか、言うように権限を変更します。apt