Làm cách nào tôi có thể cài đặt phiên bản ngược dòng mới nhất của ImageMagick mà không cần biên dịch?


15

Tôi đã gặp một số vấn đề với ImageMagick và tôi được cho biết gói ImageMagick mặc định của Ubuntu là một phiên bản cổ và tôi nên nâng cấp để giải quyết các vấn đề của mình.

Làm thế nào tôi có thể làm điều đó? Tôi có phiên bản Ubuntu mới nhất (12.10). Synaptic cho tôi thấy 8:6.7.7.10-2ubuntu4là phiên bản mới nhất của IM. Nó có nghĩa là phiên bản IM của tôi là 6.7.7.10( convert --versionđầu ra giống nhau). IM không cung cấp nhị phân deb . Debian có cái gì đó mới hơn , nhưng trong một số nhánh thử nghiệm / thử nghiệm nếu tôi hiểu rõ về nó. Tôi đã tìm thấy IM trên Launchpad , nhưng không có hướng dẫn nào để thêm phần này vào nguồn của tôi, có vẻ như đó không phải là một trong những PPA thông thường tôi gặp khi tìm kiếm phần mềm / beta mới nhất. Tôi không biết làm thế nào để làm việc với cái này.

Có cách nào để đánh dấu một gói được lấy từ một số nguồn cạnh chảy máu và để phần còn lại của hệ thống của tôi được lấy từ các nguồn tiêu chuẩn không? Có lẽ là tốt nhất để nâng cấp lên phiên bản IM ( 6.8) ổn định cuối cùng , nhưng đó có lẽ là khoa học viễn tưởng vì nó thậm chí không có trong Debian. Tuy nhiên, tôi cần ít nhất 6.7.9.


Lưu ý: Tôi muốn tránh biên dịch từ nguồn. Tôi ghét phải cài đặt một cái gì đó và không thể thao tác với nó dễ dàng bằng apt-gethoặc Synaptic. Hơn nữa, không có bản cập nhật cho các chương trình biên dịch. Luôn luôn tôi biên dịch tôi cảm thấy như đi ngược lại hệ thống, như sử dụng keo, dây và băng vịt. Không, tôi không muốn biên dịch nó cho chắc chắn.


Cách dễ nhất để có được các phiên bản mới là thực sự giúp đỡ trong việc đóng gói phiên bản mới và tải nó lên cho các nhà bảo trì. Đề nghị tham gia nhóm launchpad.net/imagemagick hoặc tốt nhất là làm việc ngược dòng.
fossfreedom

Điều đó thật tuyệt, nhưng tôi là nhà phát triển Python hoàn toàn không có kiến ​​thức sâu hơn về bao bì Ubuntu / Debian, vì vậy đây là nhiệm vụ thay cho những người gần gũi hơn với DevOps / bao bì / quản lý UNIX. Tôi sẽ giúp đỡ thế giới bằng cách viết các thư viện Python nguồn mở :)
Honza Javorek

Thực sự không có câu trả lời nào xa như tôi có thể thấy ngoài việc biên dịch & đóng gói do đó gợi ý.
fossfreedom

Tôi biết bạn nói rằng bạn không muốn biên dịch, nhưng điều này có thể được quan tâm: Bạn có thể giữ imagemagickgói hiện tại của mình và các phụ thuộc của nó với phương thức này. Bạn có thể chạy cấu hình với --prefix=/opt, biên dịch chương trình, sau đó cài đặt /optvới checkinstall, để bạn có thể quản lý phiên bản đã biên dịch dưới dạng gói thông qua apt-get. Nếu bạn muốn sử dụng phiên bản mới, bạn phải chỉ định /opt/bin/convertkhi nói bạn chạy convert, trừ khi bạn tạo một số liên kết tượng trưng. Dù bằng cách nào, bạn có thể giữ cả phiên bản gói tiêu chuẩn và phiên bản đã biên dịch của mình

1
Chà, tôi không biết checkinstallnữa. Nếu tôi hiểu đúng, nó nên cài đặt phiên bản chương trình đã biên dịch vào hệ thống của tôi và sau đó biểu diễn nó dưới dạng một gói trong Synaptic hoặc như vậy, điều đó có nghĩa là tôi có thể gỡ bỏ nó một cách an toàn và dễ dàng sau này. Điều đó sẽ rất tuyệt!
Honza Javorek

Câu trả lời:


18

Xin lưu ý: Mặc dù ban đầu Honza nói rằng anh ấy không muốn biên dịch, chúng tôi đã thảo luận về việc sử dụng checkinstallđể cài đặt gói đã biên dịch trong các nhận xét ở trên. Đó chỉ là những gì Honza muốn, vì các chương trình được cài đặt có checkinstallthể được gỡ bỏ như bất kỳ gói nào khác với trình quản lý gói.


Khi chúng tôi đang cài đặt để /optsử dụng checkinstallsau khi xây dựng, chúng tôi có thể để imagemagickgói ban đầu tại chỗ. (Nguyên vẹn, cài đặt phiên bản kho lưu trữ nếu nó chưa được cài đặt.) Các phụ thuộc có thể được cài đặt và chúng không khác nhau cho phiên bản gần đây nhất imagemagick. Những gì chúng ta cần làm là cài đặt các phụ thuộc xây dựng và một số công cụ khác trước hết:

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

Tải xuống mã nguồn từ trang web chính thức và, sử dụng thiết bị đầu cuối, cdđến nơi gói nguồn và giải nén nó:

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

Bây giờ di chuyển đến thư mục đó với

cd Imagemagick-6.8.3-9

Bây giờ, nếu bạn muốn tìm hiểu các tùy chọn có sẵn cho bản dựng, hãy chạy

./configure --help

Tuy nhiên, hầu hết mọi thứ đã được đặt thành enabled, vì vậy không cần phải chỉ định thêm bất cứ điều gì, ngoài việc cần thiết --prefix. Bạn có thể sử dụng các địa điểm khác, nhưng chúng tôi sẽ sử dụng /optở đây. Bây giờ hãy chạy configuremake:

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

Bây giờ, điều cuối cùng cần làm là sử dụng checkinstallđể cài đặt gói. Hãy chắc chắn rằng bạn đang ở trong Imagemagick-6.8.3-9thư mục và chạy

sudo checkinstall

Tất nhiên bạn có thể chạy checkinstallvới các tham số như --pkgversion=hoặc chọn chúng sau khi chạy sudo checkinstall, nhưng tất cả các mặc định đều ổn ở đây. Tên gói sẽ được tạo sẽ được gọi imagemagick-6.8.3-9và nó sẽ được cài đặt /opt/imagemagick-6.8.

Bây giờ bạn cũng sẽ có thể thấy gói trong Synapticvà quản lý nó giống như bất kỳ gói nào khác và việc gỡ bỏ gói sẽ không gây ra vấn đề với các gói khác.

Nếu bạn muốn chạy các phiên bản mới của mình, bạn sẽ cần sử dụng /opt/imagemagick-6.8/convert, ví dụ như /optkhông có $PATH, và chỉ cần chạy convertsẽ gọi phiên bản repo. Bạn có thể tạo một số liên kết tượng trưng nếu bạn muốn luôn chạy /optphiên bản của chương trình.

Xin lưu ý rằng đây là những gì Honza muốn, mặc dù ban đầu anh không thích biên dịch, cho đến khi checkinstallđược thảo luận.


Cảm ơn bạn! Trên thực tế, câu hỏi của tôi ban đầu chỉ là "Làm cách nào tôi có thể cài đặt phiên bản ngược dòng mới nhất của ImageMagick", phần "không biên dịch" đã được người điều hành fossfreedom thêm vào , có lẽ sau khi đọc ghi chú của tôi ở cuối câu hỏi.
Honza Javorek

1
Con đường đúng convert/opt/imagemagick-6.x/bin/convert. Ít nhất đó là cách đó cho phiên bản 6.9.1 mà tôi đã cài đặt bây giờ. Con đường của bạn bị thiếu /bin/.
Rafal

Tôi đã gặp lỗi sau khi cố gắng cài đặt phụ thuộc bản dựng : Unable to find a source package for imagemagick. Tôi đã có thể cài đặt phụ thuộc theo cách này: sudo apt-get install imagemagick libmagick++-devnhư chi tiết ở đây .
bwroga

Một lý do khác mà bạn có thể thấy Unable to find a source package for imagemagicklà bạn cần bỏ ghi chú nguồn deb-src trong /etc/apt/source.list để gói đó được tìm thấy.
Michael

Lưu ý, tôi phải làm ldconfigsau checkinstallđể cập nhật các ràng buộc.
Joshua Pinter
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.