• Linux - Ubuntu里安装指定版本的package


    如何查询已经安装的package的版本?

    apt-cache policy

    或

    apt policy

    上述命令将显示已安装的软件包的版本,以及根据你所运行的Ubuntu版本在软件库中的所有可用版本。它不会显示为其他版本的Ubuntu(不是你的版本)准备的软件包版本。

    使用其他命令也能显示版本:

    apt list -a

    apt-cache madison

    上面的madison命令是Debian的archive管理工具,在这里用来查询可安装package的版本信息。

    例子:

    $ apt-cache policy gparted

    gparted:

      Installed: 0.16.1-1

      Candidate: 0.16.1-1

      Version table:

    *** 0.16.1-1 0

            500 http://ubuntu.inode.at/ubuntu/ saucy/main amd64 Packages

            100 /var/lib/dpkg/status

    那安装的版本就是0.16.1-1,建议就安装最新的版本就好,而显示的其他版本是老一些的版本。

    那如何安装指定版本的package?

    sudo apt-get -s install =

    这里-s --strip参数,是去除符号表的意思,strip the symbol tables。

    比如:

    $ sudo apt-get install gparted=0.16.1-1

    Reading package lists... Done

    Building dependency tree       

    Reading state information... Done

    gparted is already the newest version.

    0 upgraded, 0 newly installed, 0 to remove and 265 not upgraded.

    下载后安装的方法

    使用wget下载deb软件包,卸载原来的包,安装下载的这个包,在这里下载的是一个老一些的包,然后防止apt自动更新这个包,如果想更新了,在取消这个包的版本固定。

    wget -o ~/Downloads/ https://cdn.crate.io/downloads/apt/stable/pool/main/c/crate/crate_2.1.8-1~wheezy_all.deb

    sudo apt remove crate

    sudo apt install ~/Downloads/crate_2.1.8-1~wheezy_all.deb

    sudo apt-mark hold crate

    sudo apt-mark unhold crate <---- Someday (not today) you will need this to undo the hold

    其他说明:

    Debian软件库(包括Ubuntu)被设计成只有一个候选软件包可用。默认情况下,这是该版本的最新版本。你不能改变这一点--这是上游(up stream)版本,而且版本是在软件库的 Release 文件中指定的。

    警告: 在Ubuntu中使用Debian软件包通常是不明智的,除非你真的知道自己在做什么。这其中有很多原因。

    警告: 降级一个软件包是可能的,但不被支持。如果你尝试了,但由于某种原因没有成功,那么你能得到的最好的建议就是恢复到你所发布的Ubuntu的正确版本。一个错误版本的软件包可能会导致各种依赖性问题。(这就是为什么Debian软件库不这么玩的原因)

    参考:

    apt - Install a specific version version not listed using madison - Ask Ubuntu

    software installation - How to install specific version of some package? - Ask Ubuntu

    linux - Specific package version not available - Super User

  • 相关阅读:
    【软件设计师-下午题总结】
    【MATLAB源码-第44期】基于matlab的2*2MIMO-LDPC系统的误码率仿真。
    莫名锁表? --- mysql的事务隔离级别
    JS移动端事件
    儿童自行车CE认证办理流程
    修改 jar 包中的源码方式
    复选框 全选or取消全选
    【算法面试题汇总】LeetBook列表的算法面试题汇总---排序与检索题目及答案
    【PTA】蛇形矩阵
    Hadoop单个节点的磁盘均衡
  • 原文地址:https://blog.csdn.net/guoqx/article/details/126639452