나는 어디에서나 사용할 수 있는 몇 가지 프로그램(python, bash 등, 일부는 내 프로그램, 일부는 타사 프로그램)이 있습니다. 그래서 $PATH 어딘가에 두는 것을 고려했습니다. 최근 우분투에서 전환했는데,이것은 일종의 표준 관행입니다.이런 것들을 넣어보세요 /usr/local/bin
. 그러나 이제 Manjaro에서는 다음과 같은 오류 메시지가 나타납니다 Permission denied
. . 제가 이해한 바로는 문제는 Arch 기반 운영 체제에서 이 디렉토리가 /usr/local/bin
패키지 관리자 pacman에서도 사용된다는 것입니다. (어딘가에서 읽었지만 소스 코드는 더 이상 설립하다).
요약하자면, 나에게 필요한 것은 다음과 같습니다.
이 모든 스크립트를 보관할 수 있는 $PATH의 디렉토리
이 디렉토리의 버전 제어 가능성
하드 드라이브 어딘가에 일부 디렉토리를 생성하고 이를 $PATH에 추가할 수 있다는 것을 알고 있지만 이를 수행하는 일반적인 방법이 있는지 궁금합니다.
편집: 이것은 내 $PATH 변수입니다.
/home/douglas/bin:/home/douglas/bin:/home/douglas/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/var/lib/snapd/snap/bin
/home/douglas/bin
왜 두 번 나타나는지 아는 사람이 있습니까 ?
답변1
이
/usr/local
계층 구조는 시스템 관리자가 소프트웨어를 로컬로 설치할 때 사용됩니다. 시스템 소프트웨어가 업데이트되면 덮어쓰지 않도록 해야 합니다. 호스트 그룹 간에 공유할 수 있지만 /usr에는 없는 프로그램 및 데이터에 사용할 수 있습니다.
https://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch04s09.html#Purpose24
시스템의 모든 사용자가 스크립트를 사용할 수 있도록 하려면 해당 스크립트를 해당 위치에 두십시오.
pacman
충돌이 발생하면 기존 파일을 덮어쓰지 않으며 설치가 종료됩니다.
주요 질문은 다음과 같습니다. 스크립트/프로그램이 특정 사용자에게만 작동하도록 하시겠습니까, 아니면 시스템의 모든 사용자에게만 작동하도록 하시겠습니까?
버전 제어 기능 이 있는 모든 사용자 및 소프트웨어(각각 .git 또는 .svn 디렉토리 포함)에 대한 올바른 시스템 전체 구현을 에 넣을 수 있습니다 /opt/<packagename>
./etc/profile.d/jre.sh
쉘 환경은 로그인 쉘이 시작될 때마다 /etc/profile.d/<packagename>.sh
실행되는 파일에 의해 확장됩니다. 다음과 같은 환경 데이터가 포함됩니다. /etc/profile
<packagename>.sh
PATH=${PATH}:/opt/<packagename>/bin/
단일 사용자의 경우 복제 경로를 입력 ~/.profile
하고 디렉토리 내 원하는 위치에 복제하면 됩니다 /home/<username>
.