升級Linux下的軟體

升級Linux下的軟體

我有一個名為 zlib 的程式需要升級。因為我以前從未下載過它,所以我懷疑它是 Ubuntu 附帶的。

通常我只是下載並編譯它,但是一個不同的工具(vcftools)將使用它,所以我不能只在本地安裝它。我懷疑我要么需要

  1. 在某處安裝新版本的 zlib 並告訴系統在我安裝它的資料夾中尋找 zlib。如果 zlib 向後相容,我希望這應該沒問題。

  2. 升級目前版本(但 sudo apt-get install 告訴我我有最新版本)

我該怎麼做呢?謝謝。

答案1

我認為你有點把事情搞混了。zlib只是您的 Ubuntu 機器上另一個本地安裝的軟體包。我首先會查看 Ubuntu/Debian 儲存庫之一中是否有更新版本,zlib其中包含您可以為 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 的第 3 方儲存庫,或下載來源套件並使用它來建立您自己的 .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 "$@"

相關內容