Bagaimana saya bisa menginstal versi hulu terbaru dari ImageMagick tanpa kompilasi?

15

Saya memiliki beberapa masalah dengan ImageMagick dan saya diberi tahu paket ImageMagick default Ubuntu adalah versi kuno dan saya harus memutakhirkan untuk menyelesaikan masalah saya.

Bagaimana saya bisa melakukan itu? Saya memiliki versi Ubuntu terbaru (12.10). Synaptic menunjukkan kepada saya 8:6.7.7.10-2ubuntu4sebagai versi terbaru dari IM. Itu berarti versi IM saya 6.7.7.10( convert --versionoutputs sama). IM tidak menyediakan deb binary itu sendiri. Debian memiliki sesuatu yang lebih baru , tetapi dalam beberapa cabang pengujian / eksperimental jika saya memahaminya dengan baik. Saya menemukan IM di Launchpad , tetapi tidak ada instruksi bagaimana menambahkan ini ke sumber saya, sepertinya itu bukan salah satu PPA yang biasa saya temui ketika mencari perangkat lunak terbaru / beta. Saya tidak tahu bagaimana bekerja dengan ini.

Apakah ada cara bagaimana menandai paket yang akan diambil dari beberapa sumber tepi pendarahan dan meninggalkan sisa sistem saya untuk diambil dari sumber standar? Mungkin akan menjadi yang terbaik untuk memutakhirkan ke versi stabil terakhir IM ( 6.8), tetapi itu mungkin sci-fi karena bahkan tidak di Debian. Namun, setidaknya saya perlu 6.7.9.


Catatan: Saya ingin menghindari kompilasi dari sumber. Saya benci menginstal sesuatu dan tidak dapat memanipulasi dengan mudah dengan apt-getatau Synaptic. Selain itu, tidak ada pembaruan untuk program yang dikompilasi. Selalu saya kompilasi, saya merasa seperti melawan sistem, seperti menggunakan lem, kabel, dan selotip. Tidak, saya tidak ingin mengkompilasinya dengan pasti.

Honza Javorek
sumber
Cara termudah untuk mendapatkan versi baru adalah dengan benar-benar membantu mengemas versi baru dan mengunggahnya ke pengelola. Sarankan bergabung dengan tim launchpad.net/imagemagick atau lebih baik bekerja di hulu.
fossfreedom
Itu akan menyenangkan, tetapi saya adalah pengembang Python yang sama sekali tidak memiliki pengetahuan yang lebih dalam tentang Ubuntu / Debian packaging, jadi itu lebih merupakan tugas bagi orang-orang yang lebih dekat dengan manajemen DevOps / packaging / UNIX. Saya akan membantu dunia dengan menulis open source Python libraries :)
Honza Javorek
Sebenarnya tidak ada jawaban sejauh yang saya bisa lihat selain dari kompilasi & pengemasan maka sarannya.
fossfreedom
Saya tahu Anda mengatakan Anda tidak ingin mengkompilasi, tetapi ini mungkin menarik: Anda dapat menyimpan imagemagickpaket yang ada dan dependensinya dengan metode ini. Anda dapat menjalankan configure with --prefix=/opt, kompilasi program, dan kemudian instal /optdengan checkinstall, sehingga Anda dapat mengelola versi yang dikompilasi sebagai sebuah paket melalui apt-get. Jika Anda ingin menggunakan versi baru, Anda harus menentukan /opt/bin/convertkapan Anda menjalankannya convert, kecuali jika Anda membuat beberapa symlink. Apa pun itu, Anda dapat menyimpan versi paket standar dan versi kompilasi Anda
1
Yah, saya tidak tahu checkinstall. Jika saya memahaminya dengan benar, itu harus menginstal versi program yang dikompilasi ke dalam sistem saya dan kemudian menyatakannya sebagai paket dalam Synaptic atau lebih, yang berarti saya dapat dengan aman dan mudah menghapusnya nanti. Itu akan luar biasa!
Honza Javorek

Jawaban:

18

Harap Dicatat: Meskipun Honza awalnya mengatakan bahwa dia tidak ingin mengkompilasi, kami membahas bagaimana checkinstallmenginstal paket yang dikompilasi dalam komentar di atas. Itulah yang diinginkan Honza , karena program yang diinstal checkinstalldapat dihapus seperti paket lain dengan manajer paket.


Karena kami menginstal untuk /optmenggunakan checkinstallsetelah membangun, kami dapat meninggalkan imagemagickpaket asli di tempat. (Infact, instal versi repositori jika belum diinstal.) Ketergantungan dapat dibiarkan diinstal, dan mereka tidak berbeda untuk versi terbaru imagemagick. Yang perlu kita lakukan adalah menginstal dependensi build dan beberapa alat lain pertama-tama:

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

Unduh kode sumber dari situs resmi dan, menggunakan terminal, cdke tempat paket sumbernya dan ekstrak:

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

Sekarang pindah ke folder itu dengan

cd Imagemagick-6.8.3-9

Sekarang, jika Anda ingin mengetahui opsi yang tersedia untuk build, jalankan

./configure --help

Namun, sebagian besar semuanya sudah diatur enabled, jadi ada sedikit kebutuhan untuk menentukan apa pun lebih lanjut, terlepas dari yang diperlukan --prefix. Anda dapat menggunakan lokasi lain, tetapi kami akan gunakan di /optsini. Sekarang jalankan configuredan make:

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

Sekarang, hal terakhir yang harus dilakukan adalah menggunakan checkinstalluntuk menginstal paket. Pastikan Anda berada di Imagemagick-6.8.3-9folder dan jalankan

sudo checkinstall

Tentu saja Anda dapat menjalankan checkinstalldengan parameter seperti --pkgversion=atau memilihnya setelah Anda menjalankannya sudo checkinstall, tetapi semua standarnya baik-baik saja di sini. Nama paket yang akan dibuat akan dipanggil imagemagick-6.8.3-9dan akan diinstal pada /opt/imagemagick-6.8.

Anda sekarang juga dapat melihat paket di Synapticdan mengelolanya sama seperti paket lainnya, dan menghapusnya tidak akan menyebabkan masalah dengan paket lain.

Jika Anda ingin menjalankan versi baru Anda, Anda harus menggunakan /opt/imagemagick-6.8/convert, misalnya, karena /opttidak ada $PATH, dan hanya menjalankanconvert akan memanggil versi repo. Anda dapat membuat beberapa symlink jika Anda ingin selalu menjalankan /optversi program.

Harap dicatat bahwa ini adalah apa yang diinginkan Honza , meskipun ia awalnya menolak untuk mengkompilasi, sampai checkinstalldibahas.

Masyarakat
sumber
Terima kasih! Sebenarnya, pertanyaan saya awalnya hanya "Bagaimana saya bisa menginstal versi hulu terbaru dari ImageMagick", bagian "tanpa kompilasi" ditambahkan oleh moderator fossfreedom , mungkin setelah membaca catatan saya di akhir pertanyaan saya.
Honza Javorek
1
Jalan yang benar convertadalah /opt/imagemagick-6.x/bin/convert. Setidaknya begitulah untuk versi 6.9.1 yang saya instal sekarang. Jalanmu hilang /bin/.
Rafal
Saya mendapat error berikut ketika mencoba untuk menginstal membangun dependensi: Unable to find a source package for imagemagick. Saya dapat menginstal dependensi dengan cara ini: sudo apt-get install imagemagick libmagick++-devseperti yang dijelaskan di sini .
bwroga
Alasan lain yang mungkin Anda lihat Unable to find a source package for imagemagickadalah Anda perlu menghapus komentar sumber deb-src di /etc/apt/source.list agar paket ditemukan.
Michael
Catatan, saya harus lakukan ldconfigsetelah checkinstallmendapatkan bindings diperbarui.
Joshua Pinter