![在 Fedora 上搜索[不安装]而不进行同步](https://linux22.com/image/210468/%E5%9C%A8%20Fedora%20%E4%B8%8A%E6%90%9C%E7%B4%A2%5B%E4%B8%8D%E5%AE%89%E8%A3%85%5D%E8%80%8C%E4%B8%8D%E8%BF%9B%E8%A1%8C%E5%90%8C%E6%AD%A5.png)
我想知道是否可以在 Fedora 中搜索软件包(使用dnf
),而无需预先同步任何内容。
我读了费多拉维基关于,但我认为我没有正确理解、和rpm
的值。我相信我理解的唯一一件事是用于管理软件包的下载(如果需要,还可以安装它们)。metadata_expire
metadata_timer_sync
dnf-makecache timer
dnf-automatic
如果设置为 true,则使用cacheonly
会使安装失败 ( sudo rpm install package_name
),因为它不会尝试下载缓存中尚未存在的任何 rpm 文件。
我将尝试解释我想要实现的目标:
- 能够在没有 sudo 的情况下搜索包(因此无需输入我的长密码),并且无需事先同步元数据...(我不介意这是与 sudo 分开的缓存)。
- 安装时(因此,使用 sudo)更新所需的所有内容,以便安装任何软件包的最新版本而不会出现错误。
在两种“模式”中的第一种中,如果它必须使用缓存信息来工作,理想情况下,我希望以某种方式“自动化”每个“合理”时间更新缓存的行为(例如一次天?)无需人工干预。
为了更好地解释自己,我将尝试描述我想要这样做的原因:
我经常搜索软件包(因为我不使用图形软件管理器),而且多次等待大约 5 到 10 秒的时间,真的很烦人。我想尝试以比打开完整的网络浏览器并谷歌搜索更快的方式在终端上搜索软件包。
谢谢你们!我是 Fedora 的新手,我真的不知道如何让包管理器以所需的方式运行,也不知道是否可能。
答案1
无需 sudo 即可搜索软件包(因此无需输入长密码)...
为此,完全可以在存储库中进行搜索,而无需使用升级权限(即sudo
)。正常dnf search packagename
就够了。
...并且无需事先同步元数据...(我不介意这是与 sudo 分开的缓存)。
如果我理解正确的话,你想在中央存储库中进行搜索没有是不是先过DNF?那么,恐怕这是不可能的......没有包管理器(据我所知)会这样做。
安装时(因此,使用 sudo)更新所需的所有内容,以便安装任何软件包的最新版本而不会出现错误。
再说一次,如果我理解正确的话:你想下载最新的软件版本无需更新缓存?那么,答案是否定的。它将下载缓存所知道的最新版本(例如,如果您上次更新缓存时“Package X”的版本为 3.5,而新版本为 3.9,则它将下载 3.5)。
作为最后一点的连续体:您可以将缓存设置为永不过期(如上所述,这不是一个好主意,除非您计划手动刷新它),但在这种情况下最好延长超时。如果您想这样做,您可以编辑您的/etc/dnf/dnf.conf
.例如:
# see `man dnf.conf` for defaults and possible options
[main]
gpgcheck=True
installonly_limit=3
clean_requirements_on_remove=True
best=False
skip_if_unavailable=True
fastestmirror=True
metadata_expire=72 # default is 48 hrs.
metadata_timer_sync=72 # default is 3 hrs.
理想情况下,我想以某种方式“自动化”每个“合理”时间更新缓存的行为(例如每天一次?),而无需手动干预。
如果需要,您可以创建一个 cronjob 在后台刷新缓存。如果您不知道该怎么做,请在评论中@我,我会尽力为您解决。
答案2
您可以使用dnf -C search linux
从联机帮助页:
-C, --cacheonly
Run entirely from system cache, don't update the cache and use it even in case it is expired.
DNF uses a separate cache for each user under which it executes. The cache for the root user is called the system cache. This switch allows a
regular user read-only access to the system cache, which usually is more fresh than the user's and thus he does not have to wait for metadata
sync.