일상 업무에 필요한 일부 프로그램이 누락되어 작업 개발 서버에 일부 프로그램을 설치하고 싶습니다. 루트 액세스 권한이 없습니다.
지금까지 내가 한 일은 옵션을 사용하여 필요한 소프트웨어를 컴파일하는 것뿐이었습니다 --prefix=/path/to/local/root
. 그런 다음 다음과 같은 스크립트를 만들었습니다.
#!/bin/sh
export LOCAL_PATH="/path/to/local/root"
export LD_LIBRARY_PATH="$LOCAL_PATH/lib:$LOCAL_PATH/lib64:$LOCAL_PATH/lib64:$LD_LIBRARY_PATH"
binary=$(basename $0)
$LOCAL_PATH/bin/$binary "$@"
그런 다음 올바른 이름으로 프로그램에 대한 심볼릭 링크를 생성하면 로컬 버전이 실행됩니다. 그러나 몇 가지 질문이 있습니다.
- 설치폴더는 수시로 이동될 수 있습니다. 최근에 이런 일이 발생하여 모든 것을 다시 설치해야 했습니다.
- 일부 프로그램은 를 사용하고
libtool
그LD_LIBRARY_PATH
안에 라이브러리가 있으면 무시합니다/usr/lib
(제 경우에는 구식입니다). - 이러한 프로그램은 유지 관리나 업데이트가 어렵습니다.
chroot
처음 두 질문에 대해서는 하나를 만드는 것이 효과가 있을 것 같습니다 . fakechroot
이런 상황에서 도움이 될까요? 내 스크립트가 계속 작동하나요?
또한 마지막 질문으로 인해 패키지 관리자로 전환하는 것을 고려하게 되었습니다. 나는 (집에서 사용하는 Gentoo의) 포티지를 고려하고 있지만 아마도 내 필요에 더 적합한 것이 있을 수도 있습니다. 어떤 제안이 있으십니까? 어쩌면 가벼운 Linux 배포판일까요?
/local/lib
마지막으로 및 기호를 /local/lib64
함께 연결 해야 합니까 ?
답변1
귀하의 경우에는 작동하는지 잘 모르겠습니다. 하지만 저는부정 이득.
기본적으로 내가 원하는 곳에(예를 들어) 설치된 패키지 트리를 가질 수 있고 $HOME/packages
내가 원하는 계층 구조(예를 들어 루트 액세스 권한이 있는 디렉터리 $HOME/local
또는 /usr/local
루트 액세스 권한이 있는 디렉터리)의 파일에 대한 심볼릭 링크를 설치할 수 있습니다. 실제로 이는 많은 사용자 정의 컴파일 패키지를 유지하는 데 도움이 됩니다(원하는 것처럼 컴파일되지만 결국 --prefix= /path/to/packages/foo-1.2.3
공통 위치에 위치함). 동일한 패키지의 여러 버전을 가질 수도 있습니다. 언제든지 활성화할 버전을 선택할 수 있으므로 일반적인 혼란을 일으키지 않습니다.
$ cd $HOME/packages
$ ls
mpv-git
texinfo-4.13
texinfo-git
$ graft -i texinfo-4.13
$ # symlinks now installed in my $HOME/local/bin, $HOME/local/lib, etc
$ # and since $HOME/local/bin is in my PATH, I now have texinfo-4.13
$
$ graft -d texinfo-4.13
$ # removed texinfo 4.13 symlinks - let's install bleeding edge version
$
$ graft -i texinfo-git
/usr/local
이는 루트인 경우에도 발생할 수 있는 혼란을 유지하는 데에도 사용할 수 있습니다.
패키지 관리를 위해 심볼릭 링크를 사용한다는 아이디어는 일부 Linux 배포판에서 다시 현대화되었지만 graft
대부분의 사용 사례에 적용할 수 있다고 생각합니다. 아는 사람이 소수인게 아쉽네요...
답변2
스스로 만든오랫동안 MacOS에서 사용되어 왔지만 최근에는 Linux로 확장된 소프트웨어 설치 유틸리티입니다. 항상 공용 서버 디렉토리에 소프트웨어 설치를 지원했습니다(루트 권한 필요).또는 사용자가 지정한 디렉토리를 입력하세요.(루트 권한이 필요하지 않습니다). 사용자가 지정한 디렉토리는 일반적으로 사용자의 홈 디렉토리 아래에 위치하지만 반드시 그럴 필요는 없습니다.
Homebrew는 MacOS만큼 많은 Linux용 소프트웨어 패키지를 제공하지 않지만 꽤 많습니다. 소프트웨어 위치 및 업그레이드 패키지 관리 기능을 사용하면 유용할 수 있습니다.
홈브루 홈페이지는 다음과 같습니다. https://brew.sh/
설치 옵션은 아래에 설명되어 있습니다. https://docs.brew.sh/installation
Linux 관련 문서는 다음과 같습니다. https://docs.brew.sh/Homebrew-on-Linux