jhbuildをrootとして実行する方法

jhbuildをrootとして実行する方法

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ルートチェックを削除するパッケージをビルドする方法:

  1. KaliはDebianベースなのでapt source jhbuild
  2. それからルートチェックを削除してください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)
  1. ビルドに必要なパッケージをインストールしてくださいapt build-dep jhbuild
  2. 生成された.debファイルを親ディレクトリにインストールしますdpkg -i *.deb

command not foundインストールできるため、システム全体で使用できますjhbuild。各ユーザーに対して再構築するか、言うように権限を変更します。apt

関連情報