소스 코드에서 직접 설치된 소프트웨어를 업데이트 할 수 있습니까


14

우분투를 사용하기 시작한 지 거의 1 년이되었지만 소스에서 소프트웨어 설치를 시도하지 않았습니다. 실제로 그렇게 할 필요성을 찾지 못했습니다. 그러나 지금은 리포지토리의 릴리스 후보 단계에있는 소프트웨어를 개발하고 있지만 최신 안정 버전의 소스 코드는 소프트웨어 홈 페이지에서 사용할 수 있습니다.

소프트웨어에 많은 종속성이있는 경우 소스 코드에서 설치하는 것이 어려울 수 있다는 것을 알게되었습니다. 그러나 그것을 해결하면 최신 버전에 만족할 수 있습니다. 그러나 그러한 소프트웨어가 자동으로 업데이트 될 수 있는지 또는 패키지를 업데이트하기 위해 스크립트를 실행 해야하는지 궁금합니다. 아니면 각 업데이트를 처음부터 다시 설치해야합니까?

또한 위의 소스 이외의 소스에서 설치하면 특별한 이점이 있는지 알고 싶습니다.


답변:


10

소프트웨어의 종속성은 거의 변하지 않습니다. 소프트웨어를 한 번 성공적으로 컴파일 한 경우 후속 버전 쉽게 컴파일 있어야 합니다. 모든 종속성 이미 충족되어 있어야 합니다.

소스에서 컴파일 한 경우 배포에 해당 소프트웨어가 저장소에 포함될 때까지 기다리거나 개발자의 PPA가 업데이트 될 때까지 기다리지 않는 한.deb 업데이트에 사용할 수있는 유사한 패키지 가 없습니다 .

간단히 말해서 누군가가 그것을 컴파일하여 deb로 만들어야합니다. 이전 버전을 컴파일해도 자동으로 업데이트 할 수는 없지만 여전히 전체 "download-configure-compile-install"프로세스를 거쳐야합니다.

그러나 여러 컴퓨터에 동일한 버전을 설치하려면 컴파일 된 버전을 .deb유사한 패키지로 패키징하여 해당 컴퓨터에 배포하는 것이 좋습니다. 올바르게 수행하면 종속성이 자동으로 가져옵니다.

소스에서 설치하면 얻을 수있는 장점은 다음 두 가지뿐입니다.

  • 최신 코드 버전에 액세스 할 수 있으며 안정적인 버전 또는 최신 버전 (일반적으로 야간 빌드, 최신 버전 등)을 선택할 수 있습니다.
  • 우분투 / 기타 배포판은 소프트웨어를 그들의 저장소에 포함시키고 싶지 않을 수 있습니다. 이 경우 개발자 또는 커뮤니티가 제공 한 소스 코드 또는 패키지가 붙어 있습니다. 즉, 소스를 사용하는 것 외에는 선택의 여지가 없습니다.

4
한 대의 컴퓨터에서 사용하기 위해 직접 컴파일해도 .deb 패키지를 직접 만드는 것이 좋습니다. 설치된 소프트웨어의 개요를 한 곳에 유지하고 제거 또는 업그레이드도 더 쉬워집니다.
JanC

4

게시물 에 따르면 소스를 컴파일 한 후 .deb 패키지를 생성 할 수 있습니다. 그런 다음 "make install"대신 .deb 패키지에서 설치할 수 있습니다. 업데이트를 추적하는 패키지 관리자가 패키지를 관리하기 때문에 업데이트가 쉬워집니다 (일부 리포지토리에있는 경우).

소스에서 패키지 "some-package"를 빌드하고 종속성이있는 경우 "apt-get build-dep some-package"를 시도하여 각 패키지를 수동으로 추적하지 않고도 패키지를 컴파일하는 데 필요한 모든 종속성을 자동으로 설치할 수 있습니다 의존성. 이렇게하면 종속성도 패키지 관리자가 관리하며 자동으로 업데이트해야합니다.


3

git사용자를 위한 또 다른 대안 은 언급 할 가치가 있습니다.

git pull이전 버전 git clone을 사용하여 소스 코드를 업데이트 한 다음 원하는 경우 프로그램을 다시 컴파일 할 수도 있습니다 . ( git파일을 계속 추적 하는 데 사용할 수도 있습니다 . 여기에서 답변을 참조 하십시오 .)

git clone예를 들어 원래 소스 코드를 얻는 데 사용한 경우

git clone git://github.com/person/programname.git

컴파일 및 설치 후 폴더를 유지 한 경우 폴더로 cd하고 실행 git pull하여 최신 커밋을 얻을 수 있습니다. 그런 다음 작성 및 / 또는 실행 한 make clean(필요한 경우) 빌드 디렉토리를 제거한 다음 소프트웨어를 다시 컴파일하고로 설치하십시오 checkinstall(배포에 적합하지는 않지만).

그러나 프로그램 개발을 돕고 매일 매일 다시 컴파일 git pull해야 할 경우 /usr/local/매번 계층 구조 에 설치할 필요가 없으므로 홈 폴더에 설치해야합니다 .

예를 들어, 프로그램을 테스트하고 정기적으로 다시 컴파일하는 경우 최신 커밋을 얻은 후 git pull(이 특정 프로그램의 경우) 빌드 폴더로 cd합니다 .

cmake .. -DCMAKE_BUILD_TYPE=Debug -DLAYOUT=home -DPREFIX=home

그런 다음 디버그 버전을 컴파일하여 테스트하십시오.

그러나 매월 새로운 버전의 git cloned 프로그램을 컴파일하고 싶거나 테스트하거나 디버깅하지 않은 경우 일반적으로을 사용하여 /usr/local/계층 구조에 설치합니다 checkinstall.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.