소프트웨어의 경우에만 당신이 필요 대신 홈 디렉토리를 사용합니다 /usr/local
.
/usr/local
원하지 않는 경우 명령 소유권을 변경 하거나 루트로 명령을 실행 하는 대신 빌드가 대신 홈 디렉토리에 설치되도록 구성해야합니다 /usr/local
. 이것은 디렉토리 와 서브 디렉토리 의 경로를 /usr/local
포함하여 의 소유권 변경과 관련된 모든 잠재적 인 문제를 해결 합니다.bin
sbin
root
다른 사용자가 소프트웨어를 실행하도록 허용해야하는 경우 액세스 권한을 부여 할 수 있습니다. 사실, 기본적으로 홈 디렉토리에는 읽기 및 실행 액세스 권한 이 있기 때문에 아마도 이미 가능할 것입니다 . (필요하지 않은 경우 chmod
비공개로 만들려는 파일이나 디렉토리를 사용하고을 변경하여 쉽게 변경할 수 있습니다 umask
.)
홈 디렉토리에 소프트웨어가 설치되어 있으면 바이너리 /usr/local/bin
가 대신 들어갑니다 . 설치 한 소프트웨어 의 서브 디렉토리에 해당하는 홈 디렉토리의 다른 서브 디렉토리 가 제공됩니다. 일반적으로 소스 코드에서 소프트웨어를 설치할 때 자동으로 발생합니다./home/username/bin
/usr/local
빌드 구성
소스 코드에서 빌드하는 대부분의 소프트웨어에는 다음 단계가 실행됩니다.
./configure
configure
이와 같이 실행될 수 있는 스크립트 와 함께 제공되는 대부분의 소프트웨어는 기본적으로 설치를 위해 /usr/local
실행할 때 설치를위한 빌드 구성으로 기본 설정 sudo make install
됩니다. 그 이유는 다음과 같이 암시 적으로 실행하기 때문입니다.
./configure --prefix=/usr/local
홈 디렉토리에 설치할 빌드를 구성하려면 다음을 대신 사용하십시오.
./configure --prefix="$HOME"
실제로 우분투에서 홈 디렉토리 경로에는 공백, 다른 공백 또는 쉘과 같이 특수하게 처리되는 다른 문자가 포함 *
되어 있지 않으므로 사용자 계정을 매우 이상하게 설정하지 않으면 다음 과 같이 입력하면됩니다.
./configure --prefix=$HOME
( 하지만 스크립트 작성을 습관화하는 것은 좋지 않습니다 . 또한 macOS와 같은 일부 다른 OS에서는 사용자의 홈 디렉토리 경로에 공백이 포함되는 경우가 드물지 않습니다.)
또는 원하는 경우 전체 홈 디렉토리 경로를 입력 할 수 있습니다.
./configure --prefix=/home/username
( username
물론 실제 사용자 이름으로 바꾸십시오. 어떤 이유로 홈 디렉토리가 없으면 /home
그에 따라 조정해야합니다.)
빌드 설치
을 실행 한 후에 make
는 running에 익숙 할 수 sudo make install
있지만, 자신의 홈 디렉토리에 설치할 때 루트로 실행할 필요가 없으므로 루트 를 생략 할 수 있습니다 sudo
. 그냥 실행 :
make install
마찬가지로 uninstall
대상 을 지원하는 소프트웨어의 경우 :
make uninstall
이것은 정확히 당신이 요구 한 것입니다 ... 홈 디렉토리가 아닌 /usr/local
.
프로그램 실행
아마도bin
홈 디렉토리 의 서브 디렉토리는 다음 중 하나입니다.
- 이미 귀하
$PATH
의 또는
- 당신에있을 것입니다
$PATH
방금 로그 아웃 한 후 다시 로그인합니다.
그 이유는 .profile
로그인 할 때 실행되는 명령이 들어있는 홈 디렉토리 의 파일에 대부분 의 우분투 버전 에서 생성 된 사용자 계정 (OS를 설치할 때 생성 된 초기 관리자 계정 포함) 에 대해 기본적으로이 파일이 포함되어 있기 때문입니다 .
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
해당 코드는 로그인 할 때 실행되므로 (로그인했기 때문에 .profile
) 개인 bin
디렉토리 $PATH
가 해당 시점에만 존재합니다. 따라서 로그 아웃했다가 다시 로그인해야 할 수도 있습니다.
Ubuntu 14.04와 같은 이전 릴리스 와 Ubuntu 17.10과 같은 최신 릴리스 가 함께 제공됩니다. 그러나이 글을 쓰는 시점에서 가장 인기있는 Ubuntu 16.04는 다음과 같습니다.
# set PATH so it includes user's private bin directories
PATH="$HOME/bin:$HOME/.local/bin:$PATH"
즉 단순히 추가 bin
홈 디렉토리의 하위 디렉토리 ---뿐만 아니라 .local/bin
하위 디렉토리를 - 당신에게 $PATH
, 그 디렉토리가 실제로 존재하는지 확인하지 않고. 따라서 16.04를 사용하거나 사용자 계정을 만들 때 16.04 인 시스템 에서 업그레이드 한 경우 bin
홈 디렉토리 의 하위 디렉토리는 이미에 있습니다 $PATH
.
귀하의 .profile
파일이 복사되는 /etc/skel
사용자 계정을 만들 때 디렉토리. 이전 Ubuntu 릴리스에서 사용자 계정을 만든 경우 해당 버전의을 (를) 얻었으며 .profile
사용자 계정에 대해 최신 릴리스로 업그레이드하여 변경되지 않았습니다.
bin
홈 디렉토리 의 하위 디렉토리가에 있으면 $PATH
우분투 패키지 관리자가 설치하거나 내부에 설치된 프로그램과 마찬가지로 이름을 입력하여 실행 파일이 설치된 프로그램을 실행할 수 있습니다 /usr/local
.
.local
옵션
.profile
위에서 설명한 16.04를 포함하여 일부 Ubuntu 릴리스에서 생성 된 사용자 계정 의 기본 파일이 $HOME/bin
경로뿐만 아니라에 추가됨 을 알 수 있습니다 $HOME/.local/bin
. 당신이 경우 .profile
그 추가하지 않습니다,하지만 당신이 원하는 , 그것은에 당신은 단순히 편집이 가능합니다.
설정 및 캐시 된 데이터를 저장하는 데 자주 사용 되지만 .local
홈 디렉토리 의 하위 디렉토리에 소프트웨어를 설치할 수도 있습니다 . 사용성 및 보안 관점에서 --prefix="$HOME/.local"
와 비슷 하므로 사용에 방해가되지 않아야 합니다 --prefix="$HOME"
.
로 시작하는 파일과 디렉토리 .
는 그래픽 파일 브라우저 (기본적으로 Ctrl+ H를 사용 하여 숨기기 해제 및 다시 표시) 또는 ls
명령 ( -A
또는 -a
플래그를 전달하여 표시)에 표시되지 않습니다. 이것은 원하는 것이 아니거나 정확히 원하는 것일 수 있습니다. 이것은 개인적인 취향의 문제입니다.
그러나 홈 디렉토리에 소프트웨어를 빌드하고 설치하는 일부 자동화 된 소스 기반 패키지 관리자가 사용되는 것으로 나타났습니다 $HOME/.local
. 실제로 이것이 얼마나 일반적인지 알지 못합니다. 더 자세히 조사 하고이 답변을 업데이트하기를 희망하지만 $HOME
수동으로 컴파일하는 작업 에만 사용 하는 것이 좋습니다. 그렇게하면 어디에서 왔는지 분명해질 것입니다. 충돌이 발생해도 소프트웨어는 여전히 공존 할 가능성이 높습니다.
에서 일부 소프트웨어 $HOME/.local
와 다른 소프트웨어를 일부러 설치할 수도 있습니다 $HOME
. 그것은 당신에게 달려 있습니다. 어느 bin
디렉토리 처음에 나타납니다 $PATH
명령이시에서 실행하는 일을 환경 변수입니다 모두에서 같은 이름의 존재의 명령.
신용이가는 ZANNA 및 Videonauth 에 대한 오류를 지적 A의 이전 버전의 우분투 출시에있는 기본 코드를 가지고있는 대한이 답변 .profile
하고 해결하는 저를 도와 해야합니다 (참조 여기에 ).