Como posso instalar a versão mais recente do ImageMagick sem compilar?

15

Eu tive alguns problemas com o ImageMagick e me disseram que o pacote ImageMagick padrão do Ubuntu é uma versão antiga e devo atualizá-lo para resolver meus problemas.

Como eu posso fazer isso? Eu tenho a versão mais recente do Ubuntu (12.10). Synaptic me mostra 8:6.7.7.10-2ubuntu4como a versão mais recente do IM. Isso significa que minha versão do IM é 6.7.7.10( convert --versionproduz o mesmo). O IM não fornece os binários deb em si. O Debian tem algo mais novo , mas em alguns ramos de testes / experimentais, se eu o entender bem. Encontrei IM no Launchpad , mas não há instruções sobre como adicionar isso às minhas fontes, parece que não é um dos PPAs comuns que encontro ao pesquisar o software / beta mais recente. Eu não sei como trabalhar com este.

Existe uma maneira de marcar um pacote para ser retirado de algumas fontes de ponta e deixar o resto do meu sistema ser retirado de fontes padrão? Seria provavelmente o melhor para atualizar para a última versão estável do IM ( 6.8), mas isso provavelmente é ficção científica, pois nem sequer está no Debian. No entanto, eu preciso pelo menos 6.7.9.


Nota: Eu quero evitar a compilação a partir da fonte. Eu odeio ter instalado algo e não ser capaz de manipular com ele facilmente com apt-getou Synaptic. Além disso, não há atualizações para programas compilados. Sempre compilo, sinto vontade de ir contra o sistema, como usar cola, fios e fita adesiva. Não, não quero compilá-lo com certeza.

Honza Javorek
fonte
A maneira mais fácil de obter novas versões é realmente ajudar a empacotar a nova versão e enviá-la para os mantenedores. Sugira se juntar à equipe launchpad.net/imagemagick ou, de preferência, trabalhar a montante.
fossfreedom
Isso seria legal, mas eu sou desenvolvedor Python com absolutamente nenhum conhecimento mais profundo do empacotamento Ubuntu / Debian, por isso é uma tarefa para pessoas que estão mais próximas do gerenciamento do DevOps / packaging / UNIX. Vou ajudar o mundo escrevendo bibliotecas Python de código aberto :)
Honza Javorek
Não há realmente uma resposta, tanto quanto eu posso ver, além de compilar e empacotar a sugestão.
fossfreedom
Sei que você disse que não deseja compilar, mas isso pode ser interessante: você pode manter seu imagemagickpacote existente e suas dependências com esse método. Você pode executar o configure with --prefix=/opt, compilar o programa e depois instalar no /optwith checkinstall, para que você possa gerenciar a versão compilada como um pacote via apt-get. Se você deseja usar a nova versão, é necessário especificar /opt/bin/convertquando digamos executar convert, a menos que crie alguns links simbólicos. De qualquer forma, você pode manter tanto a versão do pacote padrão e sua versão compilada
1
Bem, eu não sabia checkinstall. Se eu entendi direito, ele deve instalar a versão compilada do programa no meu sistema e representá-lo como um pacote no Synaptic, o que significa que eu posso removê-lo com segurança e facilidade mais tarde. Isso seria bom!
Honza Javorek

Respostas:

18

Observação: embora Honza tenha dito inicialmente que não queria compilar, discutimos o uso checkinstallpara instalar o pacote compilado nos comentários acima. Era exatamente isso que Honza queria, pois os programas instalados com checkinstallpodem ser removidos como qualquer outro pacote com o gerenciador de pacotes.


Como estamos instalando para /optusar checkinstallapós a compilação, podemos deixar o imagemagickpacote original no lugar. (Na verdade, instale a versão do repositório se ainda não estiver instalada.) As dependências podem ser deixadas instaladas e não são diferentes para a versão mais recente do imagemagick. O que precisamos fazer é instalar as dependências de compilação e algumas outras ferramentas antes de tudo:

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

Faça o download do código fonte do site oficial e, usando o terminal, cdpara onde está o pacote fonte e extraia-o:

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

Agora vá para essa pasta com

cd Imagemagick-6.8.3-9

Agora, se você deseja descobrir as opções disponíveis para a compilação, execute

./configure --help

No entanto, quase tudo já está definido como enabled, portanto, há pouca necessidade de especificar mais nada, além do necessário --prefix. Você pode usar outros locais, mas usaremos /optaqui. Agora execute configuree make:

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

Agora, a última coisa a fazer é usar checkinstallpara instalar o pacote. Verifique se você está na Imagemagick-6.8.3-9pasta e execute

sudo checkinstall

Obviamente, você pode executar checkinstallcom parâmetros como --pkgversion=ou selecioná-los após a execução sudo checkinstall, mas todos os padrões estão bem aqui. O nome do pacote que será criado será chamado imagemagick-6.8.3-9e será instalado no /opt/imagemagick-6.8.

Agora você também poderá ver o pacote Synaptice gerenciá-lo como qualquer outro pacote, e removê-lo não causará problemas com outros pacotes.

Se você deseja executar suas novas versões, precisará usar /opt/imagemagick-6.8/convert, por exemplo, como /optnão está $PATH, e apenas executar convertchamará a versão repo. Você pode criar alguns links simbólicos se quiser sempre executar a /optversão dos programas.

Observe que é isso que Honza queria, mesmo que inicialmente fosse avesso à compilação, até que checkinstallfosse discutido.

Comunidade
fonte
Obrigado! Na verdade, minha pergunta era originalmente "Como instalar a versão mais recente do ImageMagick atual", a parte "sem compilar" foi adicionada pelo moderador do fossfreedom , provavelmente depois de ler minha nota no final da minha pergunta.
Honza Javorek
1
Caminho adequado para converté /opt/imagemagick-6.x/bin/convert. Pelo menos é assim para a versão 6.9.1 que instalei agora. Seu caminho está faltando /bin/.
Rafal
Eu tenho o seguinte erro ao tentar instalar as dependências de construção: Unable to find a source package for imagemagick. Consegui instalar dependências desta maneira: sudo apt-get install imagemagick libmagick++-devconforme detalhado aqui .
bwroga
Outro motivo que você pode perceber Unable to find a source package for imagemagické que você precisa descomentar as fontes deb-src em /etc/apt/source.list para que o pacote seja encontrado.
Michael
Observe que eu tive que fazer ldconfigdepois checkinstallpara atualizar as ligações.
Joshua Pinter