jhbuild를 루트로 실행하는 방법

jhbuild를 루트로 실행하는 방법

jhbuild를 설치하고 PATH 변수를 $PATH:~/.local/bin으로 설정했습니다. 이제 jhbuild 명령을 실행하면 오류가 발생합니다.jhbuild를 루트로 사용하면 안 됩니다.사용자를 루트가 아닌 사용자로 변경하고 다시 PATH 값을 위의 값으로 변경하고 ~를 /root로 바꾸면 오류가 발생합니다.jhbuild 명령을 찾을 수 없습니다. 저는 kali linux를 사용하고 있으므로 기본 사용자는 root입니다.

답변1

귀하가 경험하고 있는 동작은 권한이나 바이너리 위치와 관련이 없고 오히려 이를 실행하는 사용자와 관련이 있습니다. 예를 들어 루트로 실행할 수 있도록 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가 말했듯이 루트로 실행 하려면 를 사용해야 합니다 jhbuild.

루트체크를 했기 때문에https://github.com/GNOME/jhbuild/blob/master/jhbuild/main.py#L59, 이 오류는 이를 실행하는 사용자가 루트인 경우 발생합니다.

이 솔루션은 모듈을 업데이트하거나 빌드할 때 효과적입니다.
그러나 여러분이 만든 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

관련 정보