更新管理器会将软件包保留为最新版本,但有时新版本的软件包可能无法按预期或正常工作。如何降级已安装的软件包并锁定它以阻止其更新?我该如何做?使用 GUI或者使用终端?
答案1
在 GUI 中 - 使用 Synaptic
Ubuntu 软件中心的简化界面不提供降级软件包的选项。Synaptic 是 Ubuntu 过去包含的更高级的图形软件包管理器界面,它提供了此选项。要以图形方式降级软件包,请先安装突触应用:
完成此操作后,从 Dash 打开 Synaptic 包管理器:
在 Synaptic 中搜索要安装旧版本的软件包,选择它,然后使用包裹>原力版选项:
选择要安装的版本,然后单击“强制版本”。 Synaptic 将仅显示存储库中可用的版本:
点击申请按钮应用您的更改并安装旧版本的软件包(假设一切正常)。
降级软件包后,选择它并使用包裹>锁定版本选项。如果不这样做,Ubuntu 将在您下次更新已安装的软件包时尝试升级已安装的软件包:
在终端中 – 使用apt-get
apt-get
您可以使用以下方式安装软件包的特定版本终端。首先,使用以下命令确定可以安装的可用版本(用于包裹名字要降级的程序的名称):
apt-cache showpkg [packagename]
接下来,运行 apt-get install 命令并指定要安装的软件包版本(例如版本先前确定的要降级的程序的版本号):
sudo apt-get install [packagename]=[version]
安装完成后,运行以下命令来保留已安装的版本,防止包管理器在将来自动更新它:
sudo echo "[packagename] hold" | sudo dpkg --set-selections
来源:http://www.howtogeek.com/117929/how-to-downgrade-packages-on-ubuntu/
答案2
另一种可能性:
让我们找到存档包http://packages.ubuntu.com/:
例如降级 php5 :
搜索:
找到一个精确匹配,让我们看看 php5 的软件包页面:
我们可以在这里看到 Ubuntu 发行的不同版本:
让我们切换到运行 php (5.3) ... 12.04 (精确) 的版本例如:
下载 tar.gz
然后提取 tar 文件并安装它:
cd /path/to/download
tar -xzvf name_of_package
cd name_of_extracted_folder
./configure
make
sudo make install
运行时可能遇到的问题./configure
:
- 缺少依赖项(必须安装
libxm2-dev
):
运行中出现的问题make
:
- 编译时的错误可能包括标志未正确设置,或者代码本身的问题。
- 编译时出现一堆垃圾,然后代码中出现一些问题?
- 就我而言,我必须找到 php 的最新源文件/tarball(http://php.net/downloads.php)
- 并重试提取并进行