리눅스에서 소프트웨어 업그레이드

리눅스에서 소프트웨어 업그레이드

업그레이드해야 하는 zlib라는 프로그램이 있습니다. 나는 그것을 다운로드한 적이 없기 때문에 Ubuntu와 함께 제공되는 것으로 의심됩니다.

일반적으로는 다운로드하여 컴파일하지만 다른 도구(vcftools)를 사용하므로 로컬에 설치할 수는 없습니다. 나는 다음 중 하나를 해야 한다고 생각한다.

  1. 새 버전의 zlib를 어딘가에 설치하고 시스템에 내가 설치한 폴더에서 zlib를 찾도록 지시합니다. zlib가 이전 버전과 호환된다면 괜찮을 것입니다.

  2. 현재 버전을 업그레이드하세요(그러나 sudo apt-get install을 실행하면 최신 버전이 있다고 알려줍니다).

어떻게 해야 하나요? 감사해요.

답변1

내 생각엔 당신이 상황을 좀 혼란스럽게 하고 있는 것 같아요. zlibUbuntu 상자에 로컬로 설치된 또 다른 패키지입니다. 먼저 zlibUbuntu/Debian 및 해당 두 배포판 중 하나에서 파생된 기타 OS에 대해 설치할 수 있는(사전 빌드된) 모든 소프트웨어가 포함된 Ubuntu/Debian 저장소 중 하나에 최신 버전이 있는지 확인합니다 .

$ apt-get install zlib

하지만 해당 명령을 실행하기 전에 패키지가 실제로 호출되는지 다시 확인해 보겠습니다 zlib.

$ dpkg -l |grep zlib
ii  zlib1g:amd64                              1:1.2.7.dfsg-13                           amd64        compression library - runtime

따라서 패키지가 실제로 호출되는 것처럼 보입니다 zlib1g. 업데이트하려면:

$ apt-get install zlib1g
Reading package lists... Done
Building dependency tree       
Reading state information... Done
zlib1g is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 15 not upgraded.

그래서 해당 특정 버전에서 멈춰 있거나 사용 가능한 최신 버전이 없습니다.

또 다른 접근법

최신 버전인 zlib1.2.8을 아주 쉽게 다운로드하고 컴파일한 다음 LD_LIBRARY_PATH일시적으로 이 라이브러리의 컴파일된 버전을 가리키도록 설정할 수 있습니다. 이렇게 하면 아직 시스템에 설치하지 않고도 시험해 볼 수 있습니다.

을 설정한 후에는 LD_LIBRARY_PATH호출하여 VCFtools시험해 볼 수 있습니다.

다음 단계

다음 옵션은 최신 버전의 zlib1g가 포함된 타사 저장소를 찾거나 소스 패키지를 다운로드하고 이를 사용하여 자신만의 .deb 파일을 만드는 것입니다. 자신만의 패키지 구축 환경을 설정하고 첫 번째 .deb 파일을 구축하는 방법에 대한 수많은 튜토리얼이 있습니다. 실제보다 더 복잡하게 들립니다.

답변2

특정 배포판 릴리스에는 각 프로그램의 특정 버전이 함께 제공됩니다. 이것이 바로 릴리스에 관한 것입니다. (모든 소프트웨어의 다음 버전으로 업그레이드하는 데 모든 시간을 할애하는 "롤링 릴리스" 배포판이 있습니다. 시간을 들여 더 좋은 일이 있다면 릴리스된 배포판을 고수하십시오.)

그만큼zlib1g 패키지 버전Ubuntu 12.04(정밀)의 버전은 1.2.3.4이고 Ubuntu 12.10(양적)의 버전은 1.2.7입니다. Ubuntu 웹사이트에서 소스 패키지(세 가지 파일 모두: 및 또는 )를 다운로드한 .dsc다음 .diff.gz해당 .orig.tar.gz버전 .debian.tar.gz을 패키지로 컴파일할 수 있습니다.

sudo apt-get install build-essential fakeroot
sudo apt-get build-dep zlib
dpkg-source zlib_1.2.7.dfsg-13.dsc
cd zlib-1.2.7.dfsg
dpkg-buildpackage -rfakeroot -us -uc -b -nc
sudo apt-get install ../zlib1g-1.2.7.*.deb

최신 버전의 라이브러리를 설치하면 잠재적으로 비호환성이 발생할 수 있습니다. zlib의 경우 문제가 발생할지는 의문이지만 이는 가볍게 수행해야 할 작업이 아닙니다.

또는 홈 디렉토리 어딘가에 최신 버전의 라이브러리를 설치하고 필요한 특정 프로그램에만 사용하십시오. 에서 zlib를 컴파일하고 설치하는 경우 ~/lib/zlib1.2.8/lib적합한 래퍼 스크립트는 다음과 같습니다.

#!/bin/sh
export LD_LIBRARY_PATH=~/lib/zlib1.2.8/lib
exec vcftools "$@"

관련 정보