man apt-get
而言,apt-get upgrade
不会将软件包/软件包列表作为参数:upgrade
upgrade用于安装所有软件包的最新版本当前安装在系统上的软件包
,来自
/etc/apt/sources.list
中列举的来源。检索并升级当前安装有可用的新版本的软件包。在任何情况下都不会删除当前已安装的软件包,或者尚未获取并安装尚未安装的软件包。当前安装的新版本
软件包,如果不更改其他软件包的安装状态
不能升级,则将保留其当前版本。必须先执行更新
,以便apt-get知道
软件包的新版本可用。
#1 楼
您只需要执行apt-get install --only-upgrade <packagename>
即可。这将仅升级单个软件包,并且仅在安装了该软件包的情况下进行升级。如果您希望安装该软件包(如果该软件包不存在),或者对其进行升级,则可以省略
--only-upgrade
。 #2 楼
为了使用CLI更新单个软件包:sudo apt-get install --only-upgrade <packagename>
,例如
sudo apt-get install --only-upgrade ack
Reading package lists... Done
Building dependency tree
Reading state information... Done
Skipping **ack**, it is not installed and only upgrades are requested.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
评论
我收到以下命令错误:E:无法理解仅意义,请尝试使用true或false。
–迈克尔
2013年9月20日在18:15
对于那些遇到前一个评论者错误的人,请参阅下面的我的答案。
– golem
15年4月13日在18:23
投票失败,因为它没有从先前的答案中添加新信息
– gokul_uf
16-3-22在23:55
您应该将--only-upgrade传递给install子命令,而不是直接传递给apt-get,则不必附加true。
–俄罗斯
17 Mar 23 '17 at 9:58
#3 楼
我可以想到两种可能的方法:sudo apt-get install nameofpackage
即使已安装,这也会升级软件包:
~$ sudo apt-get install emesene
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be upgraded:
emesene
1 upgraded, 0 newly installed, 0 to remove and 5 not upgraded.
Need to get 1,486 kB of archives.
After this operation, 696 kB disk space will be freed.
Get:1 http://il.archive.ubuntu.com/ubuntu/ natty-updates/universe emesene all 2.11.4+dfsg-0ubuntu1 [1,486 kB]
使用
Synaptic Package Manager
:右键单击→标记为升级:注意:有时可能会问对于其他软件包或依赖项,这是正常现象。
评论
是的,它应该和sudo apt-get install自行升级。
– Binallife
2011年5月20日在16:44
升级不带包参数。
–ℝaphink
11年8月4日在11:31
sudo apt-get install nameofpackage将进行升级,但如果仅将软件包作为依赖项安装,则还将软件包设置为“手动安装”。并非总是如此,因为它限制了以后sudo apt autoremove的用途。
– Tanius
6月19日11:17
#4 楼
根据我在Ubuntu 12.04 LTS上的经验,如果使用单独的PPA,则使用以下命令将不会升级软件包-sudo apt-get --only-upgrade install <packagename>
我一直不想运行升级命令,它将升级服务器上的所有软件包-
sudo apt-get dist-upgrade
例如,我安装了PHP 5.3,并使用-<将ndrej PPA添加到了apt.sources中br />
sudo add-apt-repository ppa:ondrej/php5
如果我运行
sudo apt-get install php5
它将重新安装PHP 5.3。
我首先必须使用
sudo apt-cache policy php5
确定要升级到的版本号,这将列出所有可用的版本号。您应该找到要升级到的版本号,然后复制引用它的整个字符串。例如,在Ubuntu上,PHP 5.5的字符串为“ 5.5.16 + dfsg-1 + deb.sury.org〜precise + 2”。
现在,您可以运行apt-get install命令带有特定的版本号,瞧!
sudo apt-get install php5=5.5.16+dfsg-1+deb.sury.org~precise+2
我之所以只添加了它,是因为我无法在其他任何地方找到此信息!
评论
我想这对某些人来说是显而易见的,但是如果上面的apt-get install命令失败并显示一条消息,例如“无法获取某些档案”,则可能需要先运行apt update,然后重新运行apt-cache策略,以标识正确的版本。最终安装命令。
–CODE-REaD
5月20日19:29
#5 楼
在Ubuntu 9.04 Jaunty上,apt-get --only-upgrade install <package>
产量:
E: Sense only is not understood, try true or false.
命令
apt-get --only-upgrade true install <package>
以我的情况工作。
评论
您应该将--only-upgrade传递给install子命令,而不是直接传递给apt-get,则不必附加true。
–俄罗斯
17 Mar 23 '17 at 9:58
#6 楼
对于尚不存在的不安装软件包的命令行解决方案:dpkg -s <package> 2>/dev/null | grep -q Status.*installed && sudo apt-get install <package>
可以很容易地将其制成脚本,例如:
upgrade-package.sh:
#!/bin/bash
[[ -z ]] && { echo "Usage: $(basename q4312078q) package"; exit 1; }
if dpkg -s "" 2>/dev/null | grep -q Status.*installed; then
echo "Attempting to upgrade "
sudo apt-get install ""
else
echo "Package is not installed"
fi
#7 楼
古老而又不错的问题,我可以自由地添加一个更新的答案...对于更现代的发行版,其中包括apt包装器,例如:
sudo apt upgrade <package-name>
评论
这行不通;它仍然尝试升级所有内容。
–科兰
4月9日17:49
“一切”是什么意思?认为此ALAWAYS将升级软件包依赖关系。您可以尝试下载软件包的.deb并执行'dpkg -i
–xCovelus
4月11日17:57
不仅仅是依赖关系:它将升级所有其他具有更新的软件包。
–科兰
4月12日19:15
#8 楼
要在Ubuntu 18.04 LTS上升级单个软件包:sudo apt update && sudo apt install --only-upgrade <packagename>
要升级多个软件包:
sudo apt update && sudo apt install --only-upgrade <package1> <package2> <package3>
评论
apt-get install --only-upgrade <软件包名称>不会安装任何新软件包
– taneli
2012年10月15日上午11:29
如果需要,安装命令是否还会升级该单个软件包的依赖关系?
–皮诺
13年5月31日晚上8:18
@Pino这样做很有意义。如果要升级到的版本依赖于另一个软件包的较新版本怎么办?如果您不同时升级两者,那您将大受打击。这就是为什么install是正确的命令的原因,即使看起来违反直觉也是如此。
–马特·道奇(Matt Dodge)
13年8月22日在19:57
这会删除“自动”标记吗?有时,当您专门安装库时,该软件包会被标记为手动安装。因此,我不喜欢在库上运行“安装”。
–isaaclw
2015年9月29日在16:24
我刚刚进行了测试,因为所有信息都很模糊。在Ubuntu 16.04(apt 1.0.1)上,无论是否提供--only-upgrade,使用apt install升级软件包都不会影响自动标记。当然,如果您不想意外安装新的东西,当然使用--only-upgrade是有意义的。它还将升级任何必需的依赖项。
–已对偶
18年8月23日在13:01