Ubuntu系统下安装ImageMagick出错的解决过程
前言
ImageMagick是一个很好用的对图片进行格式转换、缩减大小、裁剪等等进行操作的工具,在Windows和Linux系统都可以安装,因为我们的环境是Ubuntu环境,在安装过程中遇到些问题,下面就来一起看看解决的过程和方法吧。
发现问题
在尝试使用 apt-get install
来安装 ImageMagick 时,出现了依赖缺失的问题:
The following packages have unmet dependencies
使用 apt-get update
、apt-get upgrade
命令更新索引和升级所有软件包之后,依然无法安装。 又使用 apt-get install -f
命令来修复依赖关系,仍然没有效果。
解决过程
于是使用 aptitude 来安装,发现命令行中没有 aptitude,只能通过 apt-get install aptitude
命令先把 aptitude 装上,结果又遇到了依赖缺失的问题:
The following packages have unmet dependencies
Depends: libstdc++6 (>= 4.9) but 4.8.4-2ubuntu1~14.04 is to be installed
尝试使用 apt-get install
来安装 libstdc++6,无法成功安装。 因此手动下载 libstdc++6 的 deb 包进行安装:
$ apt-get download libstdc++6
$ sudo dpkg -i libstdc++6_4.9.2-10ubuntu13_amd64.deb
得到错误提示:
dpkg: dependency problems prevent configuration of libstdc++6:amd64:
libstdc++6:amd64 depends on gcc-4.9-base (= 4.9.2-10ubuntu13); however:
Version of gcc-4.9-base:amd64 on system is 4.9.3-0ubuntu4.
解决方法
这是由于我的 Ubuntu 中装的 gcc 版本为 4.9.2-0ubuntu4,而 libstdc++6依赖于 4.9.2-10ubuntu13 版本。
- 因此,通过
apt-get install gcc-4.9-base=4.9.2-10ubuntu13
安装所依赖的 gcc-4.9-base 版本。 - 然后,再执行上面安装 libstdc++6 的命令
- 之后,用
apt-get install
来安装 aptitude - 最后,用
aptitude
来安装 ImageMagick
总算把 ImageMagick 装上了,总结一下安装过程遇到的问题:主要是依赖库缺失,遇到这种情况,可以考虑使用 aptitude install 来安装,它会自动安装所需依赖,一步到位。
我遇到的问题中比较特殊的一点是,系统中的 aptitude 不见了,需要使用 apt-get install
来先把 aptitude 装上,而安装时又提示依赖缺失libstdc++6,看起来像陷入了死循环。所以使用 apt-get download
和 dpkg -i 手动下载 libstdc++6 包进行安装,安装过程中又依赖于特定版本的 gcc-4.9-base,因此使用 apt-get install 将其装上,然后再回去安装 libstdc++6,最后安装 aptitude,搞定!
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对ZaLou.Cn的支持。
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- JAVA类加载过程&主动引用和被动引用
- 关于leetcode第56题合并重复区间的解析
- java-覆盖equals和hashcode方法
- java-单链表反转解法及分析
- JAVA-判断两个单链表是否相交并求交点
- 删除排序数组中重复元素的方法
- zookeeper-3.4.10伪集群模式搭建及简单操作
- 04 Confluent_Kafka权威指南 第四章: kafka消费者:从kafka读取数据
- JAVA中的单例模式分析(doublecheck和枚举实现)
- 有关JAVA自动装箱-拆箱的分析
- 10 Confluent_Kafka权威指南 第十章:监控kafka
- 解决elasticsearch“Too many open files in system”问题
- elk基于jolokia监控springboot应用jvm方案
- elasticsearch集群更换节点操作
- 对storm1.2.3并行度的理解