미리 컴파일된 바이너리는 이식 가능한 파일이므로 시스템을 복잡하게 하지 않고 수동으로 저장할 수 있는 올바른 위치는 무엇입니까?
답변1
일반적인 장소는 /usr/local
또는 /opt
더 큰 전체 응용 프로그램의 경우입니다.
전체 계층 구조를 복사하기 위해 자체 컴파일된 앱을 모두 에 넣거나 유사한 명령을 /usr/local/stow/application_name
사용 했습니다.make install
그런 다음 이를 사용 stow
하여 기호 링크를 관리합니다. 장점은 모든 경로(바이너리, 라이브러리)가 즉시 작동하고 애플리케이션이 잘 분리되어 있어 쉽게 다시 삭제할 수 있다는 것입니다.
bin
이는 또한 미리 컴파일된 바이너리를 application_name
.
미리 컴파일된 바이너리는 이식 가능한 파일이므로
난 당신이 무슨 뜻인지 모르겠어요. 미리 컴파일된 바이너리가 많이 있습니다.아니요컴파일된 아키텍처에 따라 이식 가능합니다. 또한 어떤 라이브러리 버전에 대해 컴파일되었는지 알 수 없습니다. 이번 릴리스에서는 이러한 라이브러리가 시스템에 없을 수도 있습니다.
Pomotroid 예를 들어, 내 컴퓨터에서 사용하려면 다음과 같이 하십시오.
패키지 가 있고
.deb
저는 Debian 기반 배포판을 사용하고 있으므로 다운로드하여 시스템에 설치하기만 하면 됩니다.다음 변형은 에서 저장소를 복제하고
/usr/local/src/pomotroid
, 그 안에서 빌드를 실행하고, 를 사용하도록 설치 프로세스를 수정하고/usr/local/stow/pomotroid
, 설치 프로세스를 실행한 다음 을 사용하는 것입니다stow
. 이것이 내 시스템에서 대부분의 자체 컴파일된 소프트웨어를 처리하는 방법입니다.세 번째 변형은
rpm
저장소에 패키지 빌드 프로세스를 추가하고, 끌어오기 요청을 발행하고, 나중에rpm
나(및 패키지가 필요한 다른 사람rpm
)에게 릴리스 패키지를 제공하는 것입니다.네 번째 변형은 배포된 tar 파일을 가져와서 비슷한 파일로 압축을 풀고
/usr/local/app/pomotroid
(/opt/app/pomotroid
이것도 작동함) 기본 프로그램을 실행하기 전에 이를 설정하는 스크립트를 작성하는 것입니다LD_LIBRARY_PATH
(이전에는 전자 앱을 설치해 본 적이 없습니다).
tar 파일에는 상당히 많은 동적 라이브러리가 포함되어 있으며 내 시스템에도 아마도 다른 버전이 있을 수 있으므로 다른 프로그램이 선택할 수 있도록 해당 라이브러리가 기본 라이브러리 경로에 존재하는 것을 실제로 원하지는 않습니다. 내 시스템을 엉망으로 만들었어요.
정기적으로 최신 버전으로 업데이트하고 싶다면 설치 프로세스 스크립트를 작성하거나 rpm
패키지를 만드는 데 시간을 투자해야 합니다.