/usr/local에 애플리케이션 설치

/usr/local에 애플리케이션 설치

Netbean, JDK와 같이 자동으로 설치되는 일부 응용 프로그램은 /usr/local루트가 아닌 일반 사용자가 설치하고 실행하는 경우가 많습니다.

하지만 다른 응용 프로그램은 tar.gz파일을 추출하고 실행하면 됩니다. 일반 사용자에서는 명령을 사용하여 디렉터리 cp에서 디렉터리로 복사 할 수 없으며 루트 사용자(명령)를 사용해야 합니다 .Download/usr/localsu

하지만 루트 사용자로 복사하기 때문에 이 디렉토리는 루트에 속하므로 일반 사용자로는 실행할 수 없습니다. 그것은 내 두통을 만든다. 위에 나열된 다른 응용 프로그램과 같이 일반 사용자로 어떻게 실행할 수 있습니까? 아니면 설치하는 다른 방법이 있나요?

답변1

/usr/local그리고 그 하위 디렉터리( bin, lib, share등)는 누구나 소유한 루트에 있어야 하며 누구나 그곳에서 작업을 실행할 수 있도록 755를 설정해야 합니다.

압축을 풀고 복사한 경우 개별 바이너리에 대한 권한이 될 수 있으며 일반적인 사용을 허용하려면 이 권한도 755여야 합니다.

작동 방식을 명심하세요 $PATH. JDK의 예는 이와 관련하여 혼란스러울 수 있지만 실행 파일을 에 , 라이브러리를 에 , 문서와 같은 기타 항목을 에 ./configure넣을 일반 타르볼입니다 . 이는 적절한 경로이며 동일한 패턴을 따라야 합니다. 즉, bin/의 하위 디렉터리나 패키지의 개별 디렉터리 등 아무 곳에나 항목을 넣는 것만으로는 작동하지 않습니다.make install/usr/local/bin/usr/local/lib/usr/local/share/usr/local

답변2

당신이 걸려 넘어질 수 있는 두 가지 잠재적인 문제가 있습니다.

첫 번째 문제 - 디렉터리에 대한 실행 권한

/usr/local에 복사한 디렉터리 중 하나에 대한 권한이 올바르게 설정되지 않았을 수 있습니다. 디렉토리에 대한 권한은 루트가 아닌 사용자가 이 디렉토리에서 프로그램/스크립트를 실행할 수 있어야 합니다.

"다른" 사용자가 이 디렉터리에서 응용 프로그램을 실행할 수 있도록 디렉터리에 대한 권한을 설정해야 할 수도 있습니다.

예를 들어

# don't have permissions on directory
root$ cd /usr/local
$ ls -ld somedir
drwxr-x--- 2 root root 4096 Apr 25 13:27 somedir

# have permissions on the script
root$ ls -l somedir/testscript.bash 
-rwxr-xr-x 1 root root 23 Apr 25 13:27 somedir/testscript.bash

이 시나리오에서는 다른 사용자가 스크립트에 대한 읽기 및 실행 권한을 가지고 있더라도 스크립트가 있는 디렉터리에 대한 읽기 및 실행 권한이 없기 때문에 허용되지 않습니다.

디렉터리에 대한 권한을 변경하면 다음 항목에 액세스할 수 있습니다.

 user$ ls -ld somedir/
 drwxr-xr-x 2 root root 4096 Apr 25 13:27 somedir/

 user$ somedir/testscript.bash 
 hi

이 전체 문제는 스크립트가 있는 모든 디렉터리를 찾고 해당 디렉터리에 대해 명령을 실행하여 tar.gz 파일에서 압축을 풀고 있는 디렉터리의 권한을 변경하면 해결될 수 있습니다 chmod +rx <dir>.

두 번째 문제 - 파일에 대한 실행 권한

.tar.gz 파일의 파일에 대한 권한이 이전에 설정되지 않았을 수 있으므로 아카이브에 있는 애플리케이션이나 스크립트의 압축이 풀렸을 수 있습니다. chmod +x <script>이 특정 문제가 있는 파일에서 이 문제를 해결하기 만 하면 됩니다.

### For example
user$ ls -ld somedir
drwxr-xr-x 2 root root 4096 Apr 25 13:27 somedir/

user$ ls -l somedir/testscript.bash 
-rw-r--r-- 1 root root 23 Apr 25 13:27 somedir/testscript.bash

user$ somedir/testscript.bash
bash: somedir/testscript.bash: Permission denied

관련 정보