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
루트 검사를 제거하는 패키지를 빌드하는 방법 :
- 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