linux下依赖库的版本问题引发的安装失败:libssl-dev版本问题没法安装 :libssl-dev : 依赖: libssl1.0.0 (= 1.0.1-4ubuntu3) 可是 1.0.1-4

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

一、是因为源须要更新,以下操做:shell

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

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

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

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

二、使用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 的时候提示错误:post

  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.

 

 

解决方法:ui

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

首先安装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/

相关文章
相关标签/搜索