成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何在 Ubuntu 中安裝具體指定的軟件包版本

開發
這篇教程將涵蓋使用 apt 或 apt-get 命令來安裝一個具體指定的程序的版本的所有的重要的方面。

在 Ubuntu 中想安裝一個軟件包的一個特別指定的版本?你可以通過下面的方式來輕松地完成:

sudo apt install package_name=package_version

你如何知道某個軟件包有哪些可用的版本?可以使用這個命令:

apt list --all-versions package_name

在下面的屏幕截屏中,你可以看到,我有兩個可用的 VLC 版本,我使用命令來安裝較舊的版本:

install specific versions apt ubuntu

install specific versions apt ubuntu

聽起來像一個簡單的任務,對吧?但是事情并非看起來那么簡單。這里有一些不確定是否會出現,但是可能會涉及的東西。

這篇教程將涵蓋使用 apt? 或 apt-get 命令來安裝一個具體指定的程序的版本的所有的重要的方面。

安裝一個具體指定版本的程序需要知道的事

在基于 Ubuntu 和 Debian 發行版中,你需要知道一些關于 APT 和存儲庫是如何工作的知識。

同一個軟件包源沒有較舊的版本

Ubuntu 在其存儲庫中不保留較舊版本的軟件包。在特殊的情況下,你可以暫時性地看到多個版本。例如,你運行 APT 更新(但不升級)時,可能會有一個可用的新版本。在 APT 緩存中,你可以看到同一個軟件包的兩個版本。但是,一旦軟件包被升級到了新的版本,較舊版本的軟件包將從 APT 緩存 和存儲庫中移除。

使用多個軟件包源來使用不同的版本

為獲取同一個的軟件包的多個版本,你必須得添加多個軟件包源。例如,VLC 是版本 3.x 系列。添加 VLC 每日構建 PPA 將會提供(不穩定的)版本 4.x 系列。

同樣,你可以下載不同版本的 DEB 文件,并安裝它。

較高版本編號的版本通常有優先權

如果你有來自多個軟件包源的相同名稱的軟件,默認情況下,Ubuntu 將安裝可用的最高版本編號的版本。

在前面的示例中,如果我安裝 VLC ,那么它將會安裝 4.x 系列的版本,而不是 3.x 系列的版本。

較舊版本將升級到可用的較新版本

這是另外一個可能存在的問題。即使你安裝較舊版本的軟件包,它也會升級到較新的版本(如果存在可用的較新版本)。你必須 保留該軟件包來防止其升級 。

依賴關系也需要安裝

如果軟件包有依賴關系,你也需要安裝必要的依賴關系軟件包。

現在,你已經知道一些可能存在的問題,讓我們看看如何解決它們。

安裝一個軟件包的具體指定版本

在這篇教程中,我將以 VLC 為例。在 Ubuntu 的存儲庫中可獲得 VLC 版本。我添加了每日構建 PPA ,它將向我提供 VLC 的 4.0 版本的候選版本。

如你所見,在現在的系統中,我有兩個可用的 VLC 版本:

install specific versions apt ubuntu

install specific versions apt ubuntu

~$ apt list -a vlc
Listing... Done
vlc/jammy 4.0.0~rc1~~git20220516+r92284+296~ubuntu22.04.1 amd64
vlc/jammy 3.0.16-1build7 amd64
vlc/jammy 3.0.16-1build7 i386

因為較高版本編號版本有優先權,使用 apt install vlc 命令將會導致安裝 VLC 的 4.0 版本。但是,因為這篇教程的緣由,我想安裝較舊的版本 3.0.16 。

sudo apt install vlc=3.0.16-1build7

但是,這里會有這樣的事。VLC 軟件包有一些依賴關系,并且這些依賴關系也需要具體指定的版本。因此,在 Ubuntu 為其嘗試安裝最新的版本時,你將會遇到經典的 你已保留殘缺軟件包 錯誤。

problem installing specific version apt ubuntu

problem installing specific version apt ubuntu

為修復這個錯誤,你需要為其提供它所投訴的所有依賴關系的軟件包的具體指定版本。因此,該命令會變成這樣:

sudo apt install vlc=3.0.16-1build7 \
vlc-bin=3.0.16-1build7 \
vlc-plugin-base=3.0.16-1build7 \
vlc-plugin-qt=3.0.16-1build7 \
vlc-plugin-video-output=3.0.16-1build7 \
vlc-l10n=3.0.16-1build7 \
vlc-plugin-access-extra=3.0.16-1build7 \
vlc-plugin-notify=3.0.16-1build7 \
vlc-plugin-samba=3.0.16-1build7 \
vlc-plugin-skins2=3.0.16-1build7 \
vlc-plugin-video-splitter=3.0.16-1build7 \
vlc-plugin-visualization=3.0.16-1build7

說明一下,每行結尾處的 \ 只是用來將多行命令來寫入同一個命令的一種方式。

它有作用嗎?在很多情況下,它是有作用的。 但是,我選擇了一個復雜的 VLC 示例,它有很多依賴關系。甚至這些所涉及的依賴關系也依賴于其它的軟件包。所以,它就變得令人難以處理。

一種替代的方法是在安裝時指定軟件包源。

替代方式,指定存儲庫

你已經添加多個軟件包源,因此,你應該對這些軟件包的來源有一些了解。

使用下面的命令來搜索存儲庫:

apt-cache policy | less

注意存儲庫名稱后面的行:

500 http://security.ubuntu.com/ubuntu jammy-security/multiverse i386 Packages
release v=22.04,o=Ubuntu,a=jammy-security,n=jammy,l=Ubuntu,c=multiverse,b=i386
origin security.ubuntu.com

你可以具體指定 o、l、a 等參數。

在我原來的示例中,我想安裝來自 Ubuntu 存儲庫的 VLC(獲取版本 3.16),而不是安裝來 PPA 的版本(它將向我提供版本 4)。

因此,下面的命令將安裝 VLC 版本 3.16 及其所有的依賴關系:

sudo apt install -t "o=ubuntu" vlc

install from repository source

install from repository source

看起來令人滿意?但是,當你必須更新系統時,問題就來了。它接下來會控訴找不到指定的軟件包版本。

還能做什么?

為安裝較舊的軟件包版本,從你的系統中移除較新版本的軟件包源(如果可能的話)。它將有助于逃脫這些依賴關系地獄。

如果不能這么做,檢查你是否可以從其它一些軟件包的打包格式來獲取,像 Snap、Flatpak、AppImage 等等。事實上,Snap 和 Flatpak 也允許你從可用的版本中選擇和安裝。因為這些應用程序是沙盒模式的,所以它很容易管理不同版本的依賴關系。

保留軟件包,防止升級

如果你完成安裝一個指定的程序版本,你可能想避免意外地升級到較新的版本。實現這一點并不太復雜。

sudo apt-mark hold package_name

你可以免除保留軟件包,以便它能稍后升級:

sudo apt-mark unhold package_name

注意,軟件包的依賴關系不會自動地保留。它們需要單獨地指明。

結論

如你所見,安裝選定軟件包版本有一定之規。只有當軟件包有依賴關系時,那么事情就會變得復雜,然后,你就會進入依賴關系地獄。

責任編輯:趙寧寧 來源: Linux中國
相關推薦

2019-08-19 09:19:02

LinuxVimUbuntu

2019-08-19 11:20:33

Linux軟件包命令

2018-06-11 08:50:46

LinuxArch Linux降級軟件包

2023-01-03 15:53:00

LinuxFlatpak軟件包

2023-01-02 11:34:04

LinuxFlatpak軟件包

2018-07-10 08:59:07

LinuxArch Linux軟件包

2010-01-07 17:32:09

2018-06-19 10:06:16

Linux軟件測試Nix包管理器

2018-10-15 11:00:28

Linux軟件包命令

2019-02-25 09:55:32

UbuntuDebian軟件包

2016-10-18 19:02:56

DebianUbuntu LinuMD5

2019-06-03 11:15:32

Linux軟件包命令

2020-07-16 19:24:31

UbuntuLinux

2010-02-05 14:46:20

Ubuntu軟件包

2010-01-07 17:46:09

Ubuntu apt-

2019-07-31 08:00:00

UbuntuLinuxapt-fast

2020-11-11 08:00:00

Linux系統修復

2022-01-28 08:15:36

UbuntuAPT軟件包

2022-05-09 10:51:26

Snap軟件包Ubuntu

2011-03-29 15:52:38

Cacti配置
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品国产乱码久久久久久影片 | 亚洲精品久久久一区二区三区 | 紧缚调教一区二区三区视频 | 久久久久一区 | 欧美日本久久 | 黄视频国产 | 亚洲国产精品va在线看黑人 | tube国产 | 最近免费日本视频在线 | 国产婷婷精品 | 日韩在线91| 日韩在线视频免费观看 | 欧美激情一区二区三级高清视频 | av手机在线看 | 国产线视频精品免费观看视频 | 欧美精品久久久 | 欧美炮房| 超碰国产在线 | 国产精品一区二区在线 | 成人在线视频网址 | 天天弄| 成人精品鲁一区一区二区 | 中文字幕亚洲视频 | 亚洲看片网站 | 7799精品视频天天看 | 婷婷桃色网 | 欧美精品一区二区三区在线四季 | 午夜爱爱网 | 久久成人精品视频 | 91麻豆精品国产91久久久资源速度 | 亚洲精品久久久久久久久久久 | 综合精品| 亚洲精品一区二区网址 | 91精品国产乱码久久久久久久久 | 久久精品屋 | 成人小视频在线观看 | 国产一区二| 国产精品美女久久久久aⅴ国产馆 | 91日韩 | 免费一级大片 | 亚洲在线 |