Linux - Ubuntu里安装指定版本的package
如何查询已经安装的package的版本?
apt-cache policy <package name>
或
apt policy <package name>
上述命令将显示已安装的软件包的版本,以及根据你所运行的Ubuntu版本在软件库中的所有可用版本。它不会显示为其他版本的Ubuntu(不是你的版本)准备的软件包版本。
使用其他命令也能显示版本:
apt list -a <package>
apt-cache madison <package>
上面的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 <package name>=<version>
这里-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
相关文章
- 【Ubuntu】ubuntu物理机安装方法:U盘安装
- linux:ubuntu 21.04安装intellij idea 2021.2,并创建一个helloworld项目
- 【Linux】OpenSSL升级提示perl版本较低(安装Perl)
- 创建自定义Linux服务(原创)
- linux下安装apache(httpd-2.4.3版本)各种坑
- linux(ubuntu 21.10): 安装composer 2.2.0(php 8.1.1)
- ubuntu21.04(linux):用apt安装nginx/php/mysql/phpmyadmin(开发环境)
- linux ubuntu/deepin安装tengine(nginx增强版)2.3.2
- 安装Ubuntu linux
- [转]在ubuntu linux下以编译方式安装LAMP(apache mysql php)环境
- VM之Linux:Linux的Ubuntu中,解决安装后屏幕太小的问题
- 成功解决解决VM软件安装Linux的Ubuntu过程,开启Linux出现Oprating System not found错误
- Linux(UBUNTU) 下安装Eclipse
- 嵌入式linux开发,Ubuntu下安装、使用cmake及图形界面cmake-gui,及cmake配置交叉编译工具
- kali linux 安装 google 中文输入法
- linux(Ubuntu)安装QQ2013
- Arch Linux 安装博通 BCM4360 驱动(Arch Linux, Ubuntu, Debian, Fedora...)
- Linux安装最新版Vue或者指定版本
- redis-5.0.5安装(linux centos)
- Linux下MongoDB安装和配置详解
- Linux【JavaEE】—— 搭建 JavaEE 开发环境(附软件安装教程、下载地址)
- 【Deepin 20系统】Linux系统安装N卡驱动前的安装gcc三种方法详解
- VM之Linux:Linux的Ubuntu中,解决安装后屏幕太小的问题
- Linux Ubuntu环境下 Intel Realsense D435I 驱动+ROS驱动安装配置
- 嵌入式Linux开发,Ubuntu下交叉编译内核报错:error while loading shared libraries: /lib/x86_64-linux-gnu/libc++.so: