
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
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.
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. zlib
ist nur ein weiteres lokal installiertes Paket auf Ihrer Ubuntu-Box. Ich würde zuerst nachsehen, ob es zlib
in 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_PATH
vorü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 VCFtools
sie 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.gz
und .orig.tar.gz
oder .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 "$@"