Wie kann ich die neueste Upstream-Version von ImageMagick installieren, ohne sie zu kompilieren?

14

Ich hatte einige Probleme mit ImageMagick und es wurde mir mitgeteilt, dass Ubuntus Standard-ImageMagick-Paket eine alte Version ist und ich ein Upgrade durchführen sollte, um meine Probleme zu beheben.

Wie kann ich das machen? Ich habe die neueste Ubuntu-Version (12.10). Synaptic zeigt mich 8:6.7.7.10-2ubuntu4als die neueste Version von IM. Das heißt, meine IM-Version ist 6.7.7.10( convert --versiongibt dasselbe aus). IM bietet selbst keine Deb-Binärdateien an . Debian hat etwas Neues , aber in einigen Test- / Experimentierzweigen, wenn ich es gut verstehe. Ich habe IM auf Launchpad gefunden , aber es gibt keine Anweisungen, wie ich dies zu meinen Quellen hinzufügen kann. Es scheint, dass dies keine der üblichen PPAs ist, die ich bei der Suche nach der neuesten / Beta-Software erreiche. Ich weiß nicht, wie ich damit umgehen soll.

Gibt es eine Möglichkeit, ein Paket zu kennzeichnen, das aus einigen Spitzenquellen entnommen werden soll, und den Rest meines Systems aus Standardquellen zu entnehmen? Es wäre wahrscheinlich das Beste, auf die letzte stabile Version von IM ( 6.8) zu aktualisieren , aber das ist wahrscheinlich Sci-Fi, da es nicht einmal in Debian ist. Allerdings brauche ich zumindest 6.7.9.


Hinweis: Ich möchte die Kompilierung aus dem Quellcode vermeiden. Ich hasse es, etwas installiert zu haben und nicht in der Lage zu sein, es einfach mit apt-getoder Synaptic zu manipulieren . Darüber hinaus gibt es keine Updates für kompilierte Programme. Immer wenn ich kompiliere, habe ich das Gefühl, dass ich gegen das System verstoße, indem ich Klebstoff, Drähte und Klebeband benutze. Nein, ich möchte es nicht sicher kompilieren.

Honza Javorek
quelle
Der einfachste Weg, um neue Versionen zu erhalten, besteht darin, die neue Version zu packen und für die Betreuer hochzuladen. Schlagen Sie vor, dem launchpad.net/imagemagick-Team beizutreten, oder arbeiten Sie vorzugsweise im Upstream.
fossfreedom
Das wäre schön, aber ich bin Python-Entwickler mit absolut keinen tieferen Kenntnissen über Ubuntu / Debian-Paketierung, daher ist es eher eine Aufgabe für Leute, die näher an DevOps / packaging / UNIX-Management sind. Ich werde der Welt helfen, indem ich Open-Source-Python-Bibliotheken schreibe :)
Honza Javorek
Soweit ich das beurteilen kann, gibt es keine wirkliche Antwort, als den Vorschlag zu kompilieren und zu verpacken.
fossfreedom
Ich weiß, dass Sie gesagt haben, dass Sie nicht kompilieren möchten, aber dies könnte von Interesse sein: imagemagickMit dieser Methode können Sie Ihr vorhandenes Paket und seine Abhängigkeiten beibehalten. Sie können mit configure ausführen --prefix=/opt, kompilieren Sie das Programm, und installieren Sie dann zu /optmit checkinstall, so können Sie die kompilierte Version als Paket über verwalten apt-get. Wenn Sie die neue Version verwenden möchten, müssen Sie angeben, /opt/bin/convertwann Sie ausgeführt werden convert, es sei denn, Sie erstellen einige Symlinks. In beiden
1
Nun, ich wusste es nicht checkinstall. Wenn ich es richtig verstehe, sollte es eine kompilierte Version des Programms auf meinem System installieren und es dann als Paket in Synaptic oder so darstellen, was bedeutet, dass ich es später sicher und einfach entfernen kann. Das wäre toll!
Honza Javorek

Antworten:

17

Bitte beachten Sie: Obwohl Honza anfangs sagte, dass er nicht kompilieren möchte, haben wir checkinstallin den obigen Kommentaren die Installation des kompilierten Pakets mit beschrieben. Das war genau das, was Honza wollte, da mit installierte Programme checkinstallwie jedes andere Paket mit dem Paketmanager entfernt werden können.


Da wir die Installation für die /optVerwendung checkinstallnach dem Build durchführen, können wir das Originalpaket imagemagickan Ort und Stelle belassen. (Installieren Sie die Repository-Version, falls diese noch nicht installiert ist.) Die Abhängigkeiten können installiert bleiben und unterscheiden sich in der neuesten Version von nicht imagemagick. Als erstes müssen wir die Build-Abhängigkeiten und einige andere Tools installieren:

sudo apt-get install build-essential checkinstall && sudo apt-get build-dep imagemagick

Laden Sie den Quellcode von der offiziellen Website herunter cdund extrahieren Sie ihn mithilfe des Terminals in das Quellpaket:

tar -xzvf ImageMagick-6.8.3-9.tar.gz

Wechseln Sie nun mit in diesen Ordner

cd Imagemagick-6.8.3-9

Wenn Sie nun die verfügbaren Optionen für den Build herausfinden möchten, führen Sie aus

./configure --help

Meist ist jedoch bereits alles eingestellt enabled, sodass außer dem Notwendigen kaum etwas weiter spezifiziert werden muss --prefix. Sie könnten andere Standorte verwenden, aber wir werden /opthier verwenden. Führen Sie nun configureund make:

./configure --prefix=/opt/imagemagick-6.8 && make

Als letztes müssen Sie checkinstalldas Paket installieren. Stellen Sie sicher, dass Sie sich in dem Imagemagick-6.8.3-9Ordner befinden und führen Sie aus

sudo checkinstall

Sie können natürlich checkinstallmit Parametern wie ausführen --pkgversion=oder sie nach dem Ausführen auswählen sudo checkinstall, aber alle Standardeinstellungen sind hier in Ordnung. Der zu erstellende Paketname wird aufgerufen imagemagick-6.8.3-9und in installiert /opt/imagemagick-6.8.

Sie können das Paket nun auch Synapticwie jedes andere Paket anzeigen und verwalten. Das Entfernen des Pakets führt nicht zu Problemen mit anderen Paketen.

Wenn Sie Ihre neuen Versionen ausführen möchten, müssen Sie /opt/imagemagick-6.8/convertbeispielsweise verwenden, wie /optes nicht in ist $PATH, und wenn Sie nur ausführen , convertwird die Repoversion aufgerufen. Sie könnten einige Symlinks erstellen, wenn Sie immer die /optVersion der Programme ausführen möchten.

Bitte beachten Sie, dass Honza dies wollte, obwohl er anfangs nicht bereit war zu kompilieren, bis darüber gesprochen checkinstallwurde.

Gemeinschaft
quelle
Vielen Dank! Eigentlich meine Frage war ursprünglich nur : „Wie kann ich die neueste Upstream - Version von ImageMagick aktueller installieren“, die „ohne Kompilierung“ Teil von hinzugefügt wurde fossfreedom Moderator, wahrscheinlich nach meinem Hinweis am Ende meiner Frage zu lesen.
Honza Javorek
1
Richtiger Weg convertist /opt/imagemagick-6.x/bin/convert. Zumindest ist es so für die 6.9.1 Version, die ich jetzt installiert habe. Dein Weg fehlt /bin/.
Rafal,
Ich habe die folgende Fehlermeldung beim Versuch , die Build - Abhängigkeiten zu installieren: Unable to find a source package for imagemagick. Ich konnte Abhängigkeiten so installieren: sudo apt-get install imagemagick libmagick++-devwie hier beschrieben .
bwroga
Ein weiterer Grund, den Sie möglicherweise sehen, Unable to find a source package for imagemagickbesteht darin, dass Sie deb-src-Quellen in /etc/apt/source.list auskommentieren müssen, damit das Paket gefunden wird.
Michael
Beachten Sie, dass ich ldconfignachher tun musste checkinstall, um die Bindungen zu aktualisieren.
Joshua Pinter