간단한 프로그램을 설치하면 자주 사용되지 make && make install
도 않고 자주 사용되지도 않습니다.제거표적.
이전 프로그램을 원활하게 다시 작성한다고 가정하여 프로그램을 업그레이드하려는 경우 이것이 표준 프로토콜입니까?
이러한 프로그램을 어떻게 추적합니까? 대부분의 사람들은 그냥 "설정하고 잊어버리나요"? 그렇지 않다면제거대상이 지정된 모든 항목을 수동으로 삭제해야 합니까?
답변1
전용 디렉토리 트리에 각 프로그램을 설치하고 사용집어 챙겨 넣다또는X스토우모든 프로그램이 공통 계층 구조에 나타나도록 합니다. Stow는 프로그램별 디렉터리에서 공개 트리로의 심볼릭 링크를 만듭니다.
더 자세한 내용은 최상위 디렉터리를 선택하세요. 예를 들어 /usr/local/stow
그 아래에 각 프로그램을 설치하세요 /usr/local/stow/PROGRAM_NAME
. 예를 들어 실행 파일을 에 설치하고 /usr/local/stow/PROGRAM_NAME/bin
매뉴얼 페이지를 에 설치하는 /usr/local/stow/man/man1
등의 작업을 수행합니다. 프로그램이 autoconf를 사용하는 경우 를 ./configure --prefix /usr/local/stow/PROGRAM_NAME
실행한 후 다음 make install
을 실행합니다 stow
.
./configure --prefix /usr/local/stow/PROGRAM_NAME
make
sudo make install
cd /usr/local/stow
sudo stow PROGRAM_NAME
이제 다음과 같은 심볼릭 링크가 생성됩니다.
/usr/local/bin/foo -> ../stow/PROGRAM_NAME/bin/foo
/usr/local/man/man1/foo.1 -> ../../stow/PROGRAM_NAME/man/man1/foo.1
/usr/local/lib/foo -> ../stow/PROGRAM_NAME/lib/foo
디렉토리의 내용을 나열하여 설치된 프로그램을 쉽게 추적할 수 stow
있으며 해당 파일이 해당 프로그램 디렉토리 아래 위치에 대한 심볼릭 링크이기 때문에 파일이 속한 프로그램을 항상 알 수 있습니다. stow -D PROGRAM_NAME
프로그램 디렉터리를 실행한 후 삭제하여 프로그램을 제거합니다. 실행하여 프로그램을 일시적으로 사용할 수 없게 만들 수 있습니다 stow -D PROGRAM_NAME
( stow PROGRAM_NAME
다시 사용 가능하게 하려면 실행).
동일한 프로그램의 다른 버전 간에 빠르게 전환하려면 /usr/local/stow/PROGRAM_NAME-VERSION
프로그램 디렉터리로 사용하세요. 버전 3에서 버전 4로 업그레이드하려면 버전 4를 설치하고 stow -D PROGRAM_NAME-3; stow PROGRAM_NAME-4
.
Stow의 이전 버전은 이 답변에서 설명한 기본 사항을 넘어서지 않았습니다. 최신 버전과 XStow(최근에 유지 관리되지 않음)에는 특정 파일을 무시하는 기능, stow 디렉터리 외부의 기존 심볼릭 링크에 대한 향상된 처리(예: man -> share/man
), 일부 충돌의 자동 처리(두 개가 있을 때) 와 같은 고급 기능이 있습니다. 프로그램은 동일한 파일을 제공합니다) 등
루트 액세스 권한 이 없거나 사용하고 싶지 않은 경우 홈 디렉토리 아래에서 디렉토리를 선택할 수 있습니다. 예를 들어 맨 ~/software/stow
페이지 가 자동으로 발견되지 않으면 . yours , yours 등에 추가하세요(해당되는 경우).~/software/bin
PATH
man
~/software/man
MANPATH
~/software/info
INFOPATH
~/software/lib/python
PYTHONPATH
답변2
당신은 그것을 사용할 수 있습니다설치 확인배포 패키지 관리자를 사용하여 애플리케이션을 추가/제거할 수 있도록 패키지(RPM, Deb 또는 Slackware 호환성 패키지)를 생성합니다(업데이트는 제외).
checkinstall
대신 다음 명령을 사용할 수 있습니다 make install
(Deb의 경우 -D 매개변수 사용, RPM의 경우 -R, Slackware의 경우 -S 사용).
root@nowhere# ./configure
root@nowhere# make
root@nowhere# checkinstall -D
checkinstall은 기본적으로 패키지를 빌드하고 설치하거나 패키지를 설치하지 않고 빌드만 수행하도록 할 수 있습니다.
checkinstall은 대부분의 배포 저장소에서 사용할 수 있습니다.
답변3
대체로 이것이 이러한 종류의 일이 발생하지 않도록 방지하는 패키지, 포트 및 기타 유형의 관리자 뒤에 있는 것입니다.
다른 사람이 이에 대해 더 나은 답변을 제공하지 않는 한 수동 제거가 수동으로 설치하는 유일한 방법이라고 말하고 싶습니다.
답변4
- 알림으로 빈 RPM을 만들 수 있습니다.
- 소프트웨어를 RPM으로 적절하게 패키징하는 것을 고려할 수 있습니다.
tar
알림으로 설치 파일의 복사본을 보관할 수 있습니다/usr/src/non-rpms
(저는 일반적으로 그렇게 합니다).