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

时间:2023-02-12 15:23:24

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

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/