Aktualisieren von Software unter Linux

Aktualisieren von Software unter Linux

Ich muss ein Programm namens zlib aktualisieren. Da ich es noch nie heruntergeladen habe, gehe ich davon aus, dass es mit Ubuntu mitgeliefert wird.

Normalerweise würde ich es einfach herunterladen und kompilieren, aber ein anderes Tool (vcftools) wird es verwenden, also kann ich es nicht einfach lokal installieren. Ich vermute, ich muss entweder

  1. Installieren Sie die neue Version von zlib irgendwo und sagen Sie dem System, dass es in dem Ordner, in dem ich es installiert habe, nach zlib suchen soll. Wenn zlib abwärtskompatibel ist, sollte das hoffentlich kein Problem sein.

  2. Aktualisieren Sie die aktuelle Version (aber sudo apt-get install sagt mir, dass ich die aktuellste Version habe)

Wie mache ich das? Danke.

Antwort1

Ich glaube, Sie bringen das ein wenig durcheinander. zlibist nur ein weiteres lokal installiertes Paket auf Ihrer Ubuntu-Box. Ich würde zuerst nachsehen, ob es zlibin einem der Ubuntu/Debian-Repositorys eine neuere Version gibt, die alle Software enthält, die Sie für Ubuntu/Debian und andere Betriebssysteme installieren können (vorgefertigt), die von einer dieser beiden Distributionen abgeleitet sind.

$ apt-get install zlib

Aber bevor wir diesen Befehl ausführen, überprüfen wir noch einmal, ob das Paket tatsächlich heißt zlib:

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

Es scheint also, dass das Paket tatsächlich heißt zlib1g. So aktualisieren Sie es:

$ 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.

Entweder hänge ich bei dieser bestimmten Version fest, oder es ist keine neuere verfügbar.

Ein anderer Ansatz

Sie können ganz einfach die neueste Version von herunterladen zlib, 1.2.8, und sie kompilieren und dann Ihre LD_LIBRARY_PATHvorübergehend so einrichten, dass sie auf Ihre kompilierten Versionen dieser Bibliotheken verweist. Auf diese Weise können Sie sie ausprobieren, ohne sie gleich auf Ihrem System installieren zu müssen.

Nachdem Sie die festgelegt haben LD_LIBRARY_PATH, können Sie VCFtoolssie aufrufen und ausprobieren.

Nächste Schritte

Ihre nächste Option wäre, entweder ein Drittanbieter-Repository mit einer neueren Version von zlib1g zu finden oder das Quellpaket herunterzuladen und damit Ihre eigene .deb-Datei zu erstellen. Es gibt zahlreiche Tutorials zum Einrichten Ihrer eigenen Paketerstellungsumgebung und zum Erstellen Ihrer ersten .deb-Datei. Das klingt komplizierter, als es tatsächlich ist.

Antwort2

Eine bestimmte Version einer Distribution wird mit einer bestimmten Version jedes Programms ausgeliefert. Darum geht es bei einer Version. (Es gibt „Rolling Release“-Distributionen, bei denen Sie Ihre ganze Zeit damit verbringen, jedes Softwareteil auf die nächste Version zu aktualisieren. Wenn Sie Besseres mit Ihrer Zeit anfangen können, bleiben Sie bei einer veröffentlichten Distribution.)

DerVersion des zlib1g-Paketsin Ubuntu 12.04 (genau) ist 1.2.3.4 und die Version in Ubuntu 12.10 (quantal) ist 1.2.7. Sie können das Quellpaket (alle drei Dateien: .dsc, .diff.gzund .orig.tar.gzoder .debian.tar.gz) von der Ubuntu-Website herunterladen und diese Version dann als Paket kompilieren.

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

Beachten Sie, dass die Installation neuerer Versionen einer Bibliothek möglicherweise zu Inkompatibilitäten führen kann. Bei zlib bezweifle ich, dass Sie Probleme haben werden, aber dies ist nichts, was Sie leichtfertig tun sollten.

Alternativ können Sie eine neuere Version der Bibliothek irgendwo in Ihrem Home-Verzeichnis installieren und sie nur für das jeweilige Programm verwenden, das sie benötigt. Wenn Sie zlib in kompilieren und installieren ~/lib/zlib1.2.8/lib, finden Sie hier ein geeignetes Wrapper-Skript:

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

verwandte Informationen