依赖库版本问题引起的安装失败解决方法如下有两种:

1、是由于源需要更新,如下操作:

libssl-dev : 依赖: libssl0.9.8 (= 0.9.8o-1ubuntu4) 但是 0.9.8o-1ubuntu4.4 正要被安装 解决方法

进入“系统->系统管理->更新管理器->设置”,在弹出的“软件源”对话框中选“更新”标签页,选中“Ubuntu 更新”下面的四个复选框,关闭后

在终端先执行“sudo apt-get update”就ok了。

转自:http://baalwolf.iteye.com/blog/1511259

2、使用aptitude软件包管理器来解决这个依赖问题,aptitude是可以选择合适的版本与匹配软件安装。

libssl-dev版本问题无法安装 : Depends: libssl1.0.0 (= 1.0.1t-1+deb7u2) but 1.0.1t-1+deb8u6 is to be installed

问题现象:

在安装libssl-dev 的时候提示错误:

  1.  
    sudo apt-get install libssl-dev
  2.  
    Reading package lists... Done
  3.  
    Building dependency tree
  4.  
    Reading state information... Done
  5.  
    Some packages could not be installed. This may mean that you have
  6.  
    requested an impossible situation or if you are using the unstable
  7.  
    distribution that some required packages have not yet been created
  8.  
    or been moved out of Incoming.
  9.  
    The following information may help to resolve the situation:
  10.  
     
  11.  
    The following packages have unmet dependencies:
  12.  
    libssl-dev : Depends: libssl1.0.0 (= 1.0.1t-1+deb7u2) but 1.0.1t-1+deb8u6 is to be installed
  13.  
    Recommends: libssl-doc but it is not going to be installed
  14.  
    E: Unable to correct problems, you have held broken packages.

解决方法:

linux的版本依赖问题很令人纠结,不过我们可以通过使用aptitude软件包管理器来解决这个依赖问题,aptitude是可以选择合适的版本与匹配软件安装。

首先安装aptitude工具

sudo apt-get install aptitude

再利用aptitude来安装libssl-dev

sudo aptitude install libssl-dev
  1.  
    The following NEW packages will be installed:
  2.  
    libssl-dev{b} libssl-doc{a}
  3.  
    0 packages upgraded, 2 newly installed, 0 to remove and 12 not upgraded.
  4.  
    Need to get 2,755 kB of archives. After unpacking 6,426 kB will be used.
  5.  
    The following packages have unmet dependencies:
  6.  
    libssl-dev : Depends: libssl1.0.0 (= 1.0.1t-1+deb7u2) but 1.0.1t-1+deb8u6 is installed.
  7.  
    The following actions will resolve these dependencies:
  8.  
     
  9.  
    Keep the following packages at their current version:
  10.  
    1) libssl-dev [Not Installed]
  11.  
     
  12.  
     
  13.  
     
  14.  
    Accept this solution? [Y/n/q/?] n
  15.  
    The following actions will resolve these dependencies:
  16.  
     
  17.  
    Downgrade the following packages:
  18.  
    1) libssl1.0.0 [1.0.1t-1+deb8u6 (now) -> 1.0.1t-1+deb7u2 (oldoldstable)]
  19.  
     
  20.  
     
  21.  
     
  22.  
    Accept this solution? [Y/n/q/?] y
  23.  
    The following packages will be DOWNGRADED:
  24.  
    libssl1.0.0
  25.  
    The following NEW packages will be installed:
  26.  
    libssl-dev libssl-doc{a}
  27.  
    0 packages upgraded, 2 newly installed, 1 downgraded, 0 to remove and 12 not upgraded.
  28.  
    Need to get 3,825 kB of archives. After unpacking 6,420 kB will be used.
  29.  
    Do you want to continue? [Y/n/?] y
  30.  
    Get: 1 http://mirrors.aliyun.com/raspbian/raspbian/ wheezy/main libssl1.0.0 armhf 1.0.1t-1+deb7u2 [1,070 kB]
  31.  
    Get: 2 http://mirrors.aliyun.com/raspbian/raspbian/ wheezy/main libssl-dev armhf 1.0.1t-1+deb7u2 [1,528 kB]
  32.  
    Get: 3 http://mirrors.aliyun.com/raspbian/raspbian/ wheezy/main libssl-doc all 1.0.1t-1+deb7u2 [1,227 kB]
  33.  
    Fetched 3,825 kB in 5s (753 kB/s)
  34.  
    Preconfiguring packages ...
  35.  
    dpkg: warning: downgrading libssl1.0.0:armhf from 1.0.1t-1+deb8u6 to 1.0.1t-1+deb7u2
  36.  
    (Reading database ... 115760 files and directories currently installed.)
  37.  
    Preparing to unpack .../libssl1.0.0_1.0.1t-1+deb7u2_armhf.deb ...
  38.  
    Unpacking libssl1.0.0:armhf (1.0.1t-1+deb7u2) over (1.0.1t-1+deb8u6) ...
  39.  
    Selecting previously unselected package libssl-dev.
  40.  
    Preparing to unpack .../libssl-dev_1.0.1t-1+deb7u2_armhf.deb ...
  41.  
    Unpacking libssl-dev (1.0.1t-1+deb7u2) ...
  42.  
    Selecting previously unselected package libssl-doc.
  43.  
    Preparing to unpack .../libssl-doc_1.0.1t-1+deb7u2_all.deb ...
  44.  
    Unpacking libssl-doc (1.0.1t-1+deb7u2) ...
  45.  
    Processing triggers for man-db (2.7.5-1~bpo8+1) ...
  46.  
    Setting up libssl1.0.0:armhf (1.0.1t-1+deb7u2) ...
  47.  
    Setting up libssl-dev (1.0.1t-1+deb7u2) ...
  48.  
    Setting up libssl-doc (1.0.1t-1+deb7u2) ...
  49.  
    Processing triggers for libc-bin (2.19-18+deb8u10) ...

至此,问题解决,以后遇到版本不对导致依赖不对应的问题也可以采用上述的方法进行解决。

转自:https://blog.csdn.net/MENGHUANBEIKE/article/details/78052317?locationNum=10&fps=1

关于“ubuntu 安装软件的一些命令aptitude,apt-get”

aptitude

 

安装:

原文:http://www.isspy.com/aptitude-%E5%91%BD%E4%BB%A4%E8%AF%A6%E8%A7%A3/

aptitude aptitude 是 Debian GNU/Linux 系统中, 非常神奇的的软件包管理器,基于大名鼎鼎的 APT 机制, 整合了 dselect 和 apt-get的所有功能, 并提供的更多特性,特别是在依赖关系处理上。   aptitude与 apt-get 一样,是 Debian 及其衍生系统中功能极其强大的包管理工具。与 apt-get 不同的是,aptitude在处理依赖问题上更佳一些。举例来说,aptitude在删除一个包时,会同时删除本身所依赖的包。这样,系统中不会残留无用 的包,整个系统更为干净。   以下是一些常用 aptitude命令,仅供参考。

命令 作用
aptitude update 更新可用的包列表
aptitude upgrade 升级可用的包
aptitude dist-upgrade 将系统升级到新的发行版
aptitude install pkgname 安装包
aptitude remove pkgname 删除包
aptitude purge pkgname 删除包及其配置文件
aptitude search string 搜索包
aptitude show pkgname 显示包的详细信息
aptitude clean 删除下载的包文件
aptitude autoclean 仅删除过期的包文件

定义与介绍

要使用 aptitude, 只要打开您喜爱的终端, 键入如下命令即可。   de>#de> aptitude5 aptitude 的主视图组织的非常有条理,而且界面布局清爽.上部窗口列出的是软件包根据类别和它们在本地系统的状态排序。   aptitude是以树状结构组织的,相关节点以细线相连.可以使用方向键, [PageUp] 和 [PageDown] 进行定位.[Return] 或[Enter] 用于展开或收起某个节点.aptitude 的开视图分为四列: 软件包状态和请求动作, 软件包名称, 当前安装版本(或de><de>nonede>>de>), 最新版本.   aptitude软件包列表中的软件包状态:

v 虚拟
B 损坏
u 解包
C 预配置
H 预安装
c 卸载未清除
p 清除软件包
i 已经安装
E 内部错误
   

在aptitude软件包列表中的请求操作:

h 保持
p 清除
d 删除(卸载)
B 损坏
i 安装
r 重装
u 升级

快速开始

对于任何程序来说, 您首先知道的就是如何退出 — 在aptitude的主视图中键入[q](quit), 即可退出 aptitude. 任何时候您键入[?](help), 都可以唤出帮助信息.   aptitude是基于apt机制的, 因此在进一步操作前你需要正确的配置sources.list文件.并确保 软件包列表得到了及时的更新. [u](update)命令就是为此设计的, 这类似于 apt-get update 操作.   如果出现了新的软件包(也就是说, 至上次软件包列表更新时, 仍为出现的软件包), 将会在 New Packages 选项下显示. 您可以键入[f](forget that packages are new)命令, 将它们清除到可用软件包选项中去.   移动光标到您感兴趣的行, 然后键入回车, 将选项展开. 选定一个软件包后, 有关软件包的信息将会出现在屏幕底部. 如果要查看更详细的信息, 则需要键入[i](information). 键入 [q] (quit)则会退出信息显示屏幕.   对于没有安装的软件包(位于 New Packages 或 Not Installed Packages 区域), 可以选定后, 键入[+](add package), 以标示安装.   对于已经安装的软件包, 则可以进行保持, 删除, 或清除等操作. 保持[=](hold)是指保持软件包的现有版本, 而禁止对其升级. 删除 [-](remove package) 标记已安装软件包为删除状态. [_](purge package) 命令则将软件包标记为清除状态.   一旦您标记完感兴趣的软件包, 就可以键入 [g](go )以保存修改, 使其生效.

软件包的选择

可以通过浏览,然后按下对应键进行操作:

de>[+]de> 选定要安装的软件包.
de>[-]de> 选定要删除的软件包.
de>[_]de> 选定要清除的软件包.
de>[=]de> 保持软件包的当前版本,阻止其被升级.
de>[:]de> 仅在aptitude会话期间锁定软件包.
de>[L]de> 请求重装软件包.
de>[M]de> 将软件包标记为自动安装.自动安装的软件包
  在手动安装的包对其没有依赖需求时会自动删除.
de>[m]de> 将软件包标记为手动.
de>[R]de> 请求重新配置软件包.
de>[I]de> 请求立即安装软件包(以其依赖包)并暂时锁定其它升级和
  安装的软件包.作用与apt-get install de><package>de>相同.
de>[F]de> 禁止安装某个版本的软件包.但是,对更高版本正常使用.
de>[B]de> 调用reportbug,申报一个软件包的错误.
de>[C]de> 下载并显示一个软件包的变更日志.
de>[g]de> 进入所有请求变更的预览窗口.如果在预览屏键入此键,
  将执行变更操作.
de>[d]de> 查询相关软件包: suggest/recommanded/depends
de>[r]de> 查询依赖包
de>[/]de> 搜索
de>[\]de> 继续搜索
   

注: Control-u组合键可用于取消上一步的动作.

apt-get

注意:ubuntu新版本中apt和apt-get一样,apt是新版本

在Ubuntu下,apt-get近乎是最常用的shell命令之一了,因为他是Ubuntu通过新立得安装软件的常用工具命令。

本文列举了常用的APT命令参数:

  • apt-cache search package 搜索软件包

  • apt-cache show package  获取包的相关信息,如说明、大小、版本等

  • sudo apt-get install package 安装包

  • sudo apt-get install package --reinstall   重新安装包

  • sudo apt-get -f install   修复安装

  • sudo apt-get remove package 删除包

  • sudo apt-get remove package --purge 删除包,包括配置文件等

  • sudo apt-get update  更新源

  • sudo apt-get upgrade 更新已安装的包

  • sudo apt-get dist-upgrade 升级系统

  • apt-cache depends package 了解使用该包依赖那些包

  • apt-cache rdepends package 查看该包被哪些包依赖

  • sudo apt-get build-dep package 安装相关的编译环境

  • apt-get source package  下载该包的源代码

  • sudo apt-get clean && sudo apt-get autoclean 清理无用的包

  • sudo apt-get check 检查是否有损坏的依赖

deb 文件安装 及与 rpm 互转

  1.  
    $sudo apt-get install alien ##alien默认没有安装,所以首先要安装它
  2.  
     
  3.  
    $sudo alien xxxx.rpm ##将rpm转换为deb,完成后会生成一个xxxx.deb
  4.  
     
  5.  
    $sudo dpkg -i xxxx.deb ##这样xxxx软件就可以安装完成了
  6.  
    dpkg -l 软件模糊名× 查看已经安装过的软件
  7.  
    $sudo dpkg -r xxxx 删除软件不删除配置,xxxx为软件名字,不是包名,可以用 dpkg -l 软件模糊名×查看
  8.  
    $sudo dpkg -P xxxx.deb 删除软件和相应的配置

dpkg是一个debian包管理工具。能够对包进行安装、卸载、获取信息等操作。
用法:
    安装(解包并配置):
       dpkg -i package_file
       dpkg --install package_file

解包:
       dpkg --unpack package_file
          该命令仅对“package_file“进行解包操作,不会执行包配置工作。

配置包:
       dpkg --configure package
          
    卸载包:
       dpkg -r package
       dpkg --remove package
          该命令删除包,但保留配置文件。
       dpkg -P package
       dpkg --purge package
          该命令删除包,且删除配置文件。

获取、设置、清除包的选择状态:
       dpkg --get-selections [package]
          输出到标准输出,可以使用管道或重定向。
       dpkg --set-selections
          从标准输入获取,可以使用管道或重定向。
       dpkg --clear-selections 
          将所有包都标记为卸载。

apt 源配置

apt-get 源配置文件 vim /etc/apt/sources.list

转自:https://blog.csdn.net/u013378306/article/details/70146194/

linux下依赖库的版本问题引起的安装失败:libssl-dev版本问题无法安装 :libssl-dev : 依赖: libssl1.0.0 (= 1.0.1-4ubuntu3) 但是 1.0.1-4ubuntu5.31 正要被安装的更多相关文章

  1. 谈谈Linux下动态库查找路径的问题 ldconfig LD_LIBRARY_PATH PKG_CONFIG_PATH

    谈谈Linux下动态库查找路径的问题 ldconfig LD_LIBRARY_PATH  PKG_CONFIG_PATH 转载自:http://blog.chinaunix.net/xmlrpc.ph ...

  2. linux下静态库和动态库一些东西

    http://www.cnblogs.com/changefuture/archive/2011/12/22/2297460.html Linux  动态链接库和静态库示例 文件预览 文件目录树如下, ...

  3. Linux下动态库生成和使用

    Linux下动态库生成和使用 一.动态库的基本概念 1.动态链接库是程序运行时加载的库,当动态链接库正确安装后,所有的程序都可以使用动态库来运行程序.动态链接库是目标文件的集合,目标文件在动态链接库中 ...

  4. 深入理解LINUX下动态库链接器/加载器ld-linux.so.2

    [ld-linux-x86-64.so.2] 最近在Linux 环境下开发,搞了好几天 Compiler 和 linker,觉得有必要来写一篇关于Linux环境下 ld.so的文章了,google上搜 ...

  5. Linux下MiniGUI库的安装

    Linux下MiniGUI库的安装 今天试了下安装MiniGUI的库 先仿照官网的教程安装 传送门:MiniGUI官网 一.配置依赖环境 安装构建工具 apt install binutils aut ...

  6. Linux下静态库生成和使用

    Linux下静态库生成和使用 一.静态库概念 1.库是预编译的目标文件(object  files)的集合,它们可以被链接进程序.静态库以后缀为”.a”的特殊的存档(archive file)存储. ...

  7. 查看Linux下*.a库文件中文件、函数、变量

    查看Linux下*.a库文件中文件.函数.变量等情况在Linux 下经常需要链接一些 *.a的库文件,那怎么查看这些*.a 中包 含哪些文件.函数.变量: 1. 查看文件:ar -t xxx.a 2. ...

  8. Linux下的库操作工具-nm、ar、ldd、ldconfig和ld.so

    Linux下的库操作工具-nm.ar.ldd.ldconfig和ld.so .nm [options] file 列出file中的所有符号 [option] -c 将符号转化为用户级的名字 -s 当用 ...

  9. 转:linux下共享库的注意点之-fpic

    转: http://www.cnblogs.com/leo0000/p/5691483.html linux下共享库的注意点之-fpic 在编译共享库必须加上-fpic.这是为什么呢? 首先看一个简单 ...

  10. 【Linux开发】Linux下jpeglib库的安装详解

    Linux下jpeglib库的安装详解 首先要下载所需的库压缩包:jpegsrc.v6b.tar.gz或 jpegsrc.v8b.tar.gz 然后将下载的压缩包随便放在和解压到你喜欢的地方. # t ...

随机推荐

  1. 每日踩坑 2019-04-08 VS2015未能找到路径“…\bin\roslyn\csc.exe”的解决方案

    使用 Nuget 安装 Microsoft.CodeDom.Providers.DotNetCompilerPlatform 包即可. VS2017都是用 roslyn 编译, VS2015原本的编译 ...

  2. 洛谷.2219.[HAOI2007]修筑绿化带(单调队列)

    题目链接 洛谷 COGS.24 对于大的矩阵可以枚举:对于小的矩阵,需要在满足条件的区域求一个矩形和的最小值 预处理S2[i][j]表示以(i,j)为右下角的C\(*\)D的矩阵和, 然后对于求矩形区 ...

  3. crm的知识点整理

    ''' # 1. 通过ChangeList封装好多数据 # 2. 销售中公共资源:Q查询,3天 15天 from django.db.models import F,Q F 使用查询条件的值,专门取对 ...

  4. Centos7 MongoDB-3.4

    MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的 关系型数据库遵循ACID规则 事务在英文中是transaction,和现实世界中的交易很类 ...

  5. Linux学习笔记15—RPM包的安装OR源码包的安装

    RPM安装命令1. 安装一个rpm包rpm –ivh 包名“-i” : 安装的意思“-v” : 可视化“-h” : 显示安装进度另外在安装一个rpm包时常用的附带参数有:--force : 强制安装, ...

  6. C#编程(八十一)---------- 捕获异常

    捕获异常 前面主要说了关于异常的一些基础和理论知识,没有进入到正真的异常案例,这一讲通过几个案例来描述一下异常的捕获和处理. 案例代码: using System; using System.Coll ...

  7. 微信小程序 —— 动态决定页面元素显示或隐藏的技巧

    在微信小程序开发中,经常遇到一些由后台控制显示(is_open : 1)或者隐藏(is_open : 0),有俩种办法: 复杂办法 1.先在元素的class中 class=’{{show?’true’ ...

  8. 第五章703N 刷openwrt 挂载u盘

    感谢原文 http://blog.csdn.net/qinpeng_zbdx/article/details/8577212 http://arch.pconline.com.cn//pcjob/sy ...

  9. How to make an IntelliJ IDEA plugin in less than 30 minutes

    Sometimes it is a nice thing to extend an editor to have it do some new stuff, like being able to re ...

  10. 微软BI 之SSIS 系列 - 对于平面文件中 NULL 值处理过程中容易极易混淆的几个细节

    开篇介绍 最近有人问我有关文件处理中空值处理的相关问题: OLE DB Destination 中的 Keep Nulls 如何控制 NULL 值的显示? 为什么选中了 Keep Nulls 但是数据 ...