我的电脑上安装了一个软件包,作为另一个软件包的依赖项。
我想显式安装该软件包,但是无需实际重新安装它,或下载任何文件。
这可能吗?
我没有缓存任何软件包/var/cache/pacman/pkg
,这是我想更改软件包详细信息而不重新安装的原因之一。
即使我缓存了包,运行也pacman -S <package>
意味着整个安装过程都在运行,我也想避免这种情况。
答案1
我在上面找到了答案Arch Linux 论坛。
从 pacman 3.4 开始你可以使用
# pacman -D
修改仅有的数据库。所以:
# pacman -D --asexplicit <pkgs>
将会使<pkgs>
显式安装。
这pacman
手册页进一步描述了该命令。
答案2
pacman -S
有一个--asexplicit
标志应该可以做你想做的事。
例如:
> pacman -Qi mutagen
...
Install Reason : Installed as a dependency for another package
> pacman -S --asexplicit mutagen
warning: mutagen-1.20-1 is up to date -- reinstalling
resolving dependencies...
looking for inter-conflicts...
Targets (1): mutagen-1.20-1
Total Download Size: 0.00 MB
Total Installed Size: 0.82 MB
...
> pacman -Qi mutagen
...
Install Reason : Explicitly installed
您可以看到没有下载任何内容,因为它已经安装在本地。它只是翻转了“安装原因”字段。
Pacman--help
根据操作的不同而有不同的操作(-S
、-R
等)。因此pacman -S --help
将该标志列为--asexplicit
可用标志之一。--asdeps
也可用。
答案3
仅当尚未安装时才安装,可以使用 --needed 标志:
pacman -S mutagen
pacman -S --needed mutagen clone
如果第一个命令已经安装了诱变剂,则将跳过诱变剂重新安装。您还将获得有关此的不错的信息