我在使用 ImageMagick 时遇到了一些问题,有人告诉我 Ubuntu 的默认 ImageMagick 包是古代版本我应该升级来解决我的问题。
我该怎么做?我有最新的 Ubuntu 版本 (12.10)。Synaptic 显示我8:6.7.7.10-2ubuntu4
的 IM 是最新版本。这意味着我的 IM 版本是6.7.7.10
(convert --version
输出相同)。IM不提供 deb 二进制文件本身。Debian有更新的东西,但如果我理解得好的话,在一些测试/实验分支中也是如此。我发现Launchpad 上的即时通讯,但没有说明如何将其添加到我的源中,似乎这不是我在搜索最新/测试版软件时遇到的常见 PPA 之一。我不知道如何使用这个。
有没有办法标记要从某些前沿技术源,而让系统的其余部分从标准源获取?升级到 IM 的最后一个稳定版本 ( 6.8
) 可能是最好的选择,但这可能太过科幻,因为 Debian 中甚至没有。但是,我至少需要6.7.9
。
笔记:我想避免从源代码编译。我讨厌安装了某些东西却不能用apt-get
或 Synaptic 轻松操作它。此外,编译后的程序没有更新。每次我编译时,我都觉得是在与系统作对,就像使用胶水、电线和胶带一样。不,我肯定不想编译它。
答案1
请注意:虽然洪扎最初说他不想编译,我们checkinstall
在上面的评论中讨论了使用安装编译好的包。那正是洪扎需要,因为安装的程序checkinstall
可以像任何其他包一样通过包管理器删除。
由于我们在构建后安装/opt
使用,因此我们可以保留原始包。(事实上,如果尚未安装,请安装存储库版本。)依赖项可以保留安装,对于最新版本的,它们没有什么不同。我们需要做的是首先安装构建依赖项和一些其他工具:checkinstall
imagemagick
imagemagick
sudo apt-get install build-essential checkinstall && sudo apt-get build-dep imagemagick
从以下网址下载源代码官方网站然后使用终端,cd
到源包所在的位置并将其提取:
tar -xzvf ImageMagick-6.8.3-9.tar.gz
现在移动到该文件夹
cd Imagemagick-6.8.3-9
现在,如果你想找出构建的可用选项,请运行
./configure --help
但是,几乎所有内容都已设置为enabled
,因此除了必要的之外,几乎不需要进一步指定任何内容--prefix
。您可以使用其他位置,但我们将/opt
在此处使用。现在运行configure
和make
:
./configure --prefix=/opt/imagemagick-6.8 && make
现在,最后要做的就是checkinstall
安装包。确保您在Imagemagick-6.8.3-9
文件夹中并运行
sudo checkinstall
当然,您可以checkinstall
使用诸如 之类的参数来运行--pkgversion=
,或者在运行 之后选择它们sudo checkinstall
,但这里所有默认值都可以。将要创建的包名称将被调用,imagemagick-6.8.3-9
并将安装在 中/opt/imagemagick-6.8
。
现在您还可以查看该包Synaptic
并像管理其他包一样对其进行管理,并且删除它不会对其他包造成问题。
如果您想要运行新版本,则需要使用/opt/imagemagick-6.8/convert
,例如,因为/opt
中没有$PATH
,只需运行convert
即可调用 repo 版本。如果您想始终运行/opt
程序的版本,则可以创建一些符号链接。
请注意这就是洪扎尽管他最初不愿意编译,但直到checkinstall
讨论之后才同意。
答案2
现在你可以获得一个用于 ImageMagick 的 AppImage (这里)。您只需将文件标记为可执行文件,chmod +x magick
例如,然后将文件放在属于您的 PATH 的某个文件夹中(发出命令echo $PATH
有效文件夹)。我通常将这些文件放在 下$HOME/.local/bin
。
当然,如果您不想使用终端,这些操作也可以通过图形实用程序(例如 Nautilus)完成。
使用这种方法,您可以有效地“安装而不编译”。请注意,您必须拥有 FUSE 和 libc(许多 Linux 发行版中已经具备)。
假设您有 wget,您可以使用以下命令:
cd ~
wget https://download.imagemagick.org/ImageMagick/download/binaries/magick
chmod +x magick
mkdir -p ~/.local/bin
mv magick ~/.local/bin