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

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. 异构无线网络之QOS简介

    QoS(Quality of Service,服务质量)指一个网络能够利用各种基础技术,为指定的网络通信提供更好的服务能力, 是网络的一种安全机制, 是用来解决网络延迟和阻塞等问题的一种技术. 在正常 ...

  2. 洛谷P1198 [JSOI2008]最大数(BZOJ.1012 )

    To 洛谷.1198 最大数 题目描述 现在请求你维护一个数列,要求提供以下两种操作: 1. 查询操作. 语法:Q L 功能:查询当前数列中末尾L个数中的最大的数,并输出这个数的值. 限制:L不超过当 ...

  3. HDU.6155.Subsequence Count(线段树 矩阵)

    题目链接 首先考虑询问[1,n]怎么做 设 f[i][0/1]表示[1,i]以0/1结尾的不同子序列个数 则 \(if(A[i]) f[i][1] = f[i-1][0] + f[i-1][1] + ...

  4. angularJs中的checkboxs

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...

  5. Pyinstaller安装以及参数使用

    一.安装 pip install pyinstaller (注:win7系统安装有pywin32依赖包,先按pywin32在进行以上的步骤) 二.参数说明(这里要注意大小写) -F   表示生成单个可 ...

  6. oracle级联删除

    oracle级联删除可以使用触发器来实现,但是比较麻烦,最简单的就是直接建立表的主外键关系,给列设置级联删除. ------创建了CLASS表,并设置ID字段为主键. -- Create table ...

  7. 树莓派.Qt.Creator安装方法

    树莓派硬件: Raspberry Pi 3 B 树莓派系统: Linux version 4.9.59-v7+ (32位) Qt版本(x86版本--32位): 安装过程 可以查看软件仓库支持的版本: ...

  8. composer命令中 --prefer-dist 和 --prefer-source 的区别

    --prefer-dist 会从github上下载.zip压缩包,并缓存到本地.下次再安装就会从本地加载,大大加速安装速度.但她没有保留.git文件夹,没有版本信息.适合基于这个包进行开发. --pr ...

  9. AngularJS中使用Karma单元测试初体验

    ■ 搭建karma测试环境 → 创建app和test文件夹→npm install karma --save-dev→npm install karma-jasmine --save-dev→npm ...

  10. Fortran中的指针使用

    Fortran中的指针如何使用,功能怎样,下面的的5个例子足可以让你明白一切! 对于单个值,用起来很简单,但是无法体现指针的强大功能, 示例1: program test_pointer_1 impl ...