Comments (8)
-yy
是强制更新软件包数据库,不是软件。你也可以不强制刷新,使用 -Syyu
只是习惯问题而已。
如果对软件包管理器的工作原理有疑问,请参阅 这个链接,里面清晰介绍了本地软件包数据库(元数据的本地缓存)等内容。
from archlinuxtutorial.
pacman -hQ
用法: pacman {-Q --query} [选项] [软件包]
选项:
-b, --dbpath <路径> 指定另外的数据库位置
-c, --changelog 查看某软件包的更新日志
-d, --deps 列出所有作为依赖关系安装的软件包 [过滤器]
-e, --explicit 列出所有单独指定安装的软件包 [过滤器]
-g, --groups 查看某软件包组所属的所有软件包
-i, --info 查看软件包信息 (-ii 查看备份文件)
-k, --check 检查软件包的文件存在(-kk检查文件属性)
-l, --list 列出被查询软件包的内容
-m, --foreign 列出没有在同步数据库时找到的已安装软件包 [过滤器]
-n, --native 列出只在(同步)数据库中的已安装软件包 [过滤]
-o, --owns <文件> 查询哪个软件包拥有<文件>
-p, --file <软件包> 从某个软件包而不是数据库查询
-q, --quiet 在查询或搜索时显示较少的信息
-r, --root <路径> 指定另外的安装根目录
-s, --search <regex> 搜寻符合指定字符串的已安装本地的软件包
-t, --unrequired 列出不被任何软件包(可选)要求的软件包(-tt 忽略可选依赖) [过滤器]
-u, --upgrades 列出所有可升级的软件包 [过滤器]
-v, --verbose 显示详细信息
--arch <架构> 设定另外的架构
--cachedir <dir> 指定另外的软件包缓存位置
--color <when> 彩色化输出
--config <路径> 指定另外的配置文件
--confirm 总是询问确认
--debug 显示调试信息
--disable-download-timeout
下载时用宽松的超时
--gpgdir <路径> 设定 GnuPG 的其他主目录
--hookdir <目录> 指定另外的钩子位置
--logfile <路径> 指定另外的日志文件
--noconfirm 不询问确认
--sysroot 在一个已挂载的 guest 系统操作(仅 root)
from archlinuxtutorial.
pacman -hS
用法: pacman {-S --sync} [选项] [软件包]
选项:
-b, --dbpath <路径> 指定另外的数据库位置
-c, --clean 从缓存目录中删除旧软件包 (-cc 清除所有)
-d, --nodeps 跳过依赖关系的版本检查 (-dd 跳过所有检查)
-g, --groups 查看某软件包组所属的所有软件包
(-gg 查看所有软件包组和所属于它们的软件包)
-i, --info 查看软件包信息 (-ii 查看更多信息)
-l, --list <repo> 查看在该软件库中的软件包清单
-p, --print 打印目标而不是执行操作
-q, --quiet 在查询或搜索时显示较少的信息
-r, --root <路径> 指定另外的安装根目录
-s, --search <正则表达式> 按照指定字符串查询远端软件库
-u, --sysupgrade 升级所有已安装的软件包 (-uu 可启用降级)
-v, --verbose 显示详细信息
-w, --downloadonly 下载但不安装/升级软件包
-y, --refresh 从服务器下载新的软件包数据库
(-yy 强制更新软件包数据库)
--arch <架构> 设定另外的架构
--asdeps 作为非单独指定安装的软件包安装
--asexplicit 作为单独指定安装的软件包安装
--assume-installed <package=version>
添加一个虚拟包用以满足依赖要求
--cachedir <dir> 指定另外的软件包缓存位置
--color <when> 彩色化输出
--config <路径> 指定另外的配置文件
--confirm 总是询问确认
--dbonly 仅修改数据库条目,而非软件包文件
--debug 显示调试信息
--disable-download-timeout
下载时用宽松的超时
--gpgdir <路径> 设定 GnuPG 的其他主目录
--hookdir <目录> 指定另外的钩子位置
--ignore <软件包> 升级时忽略某个软件包 (可多次使用)
--ignoregroup <软件包组>
升级时忽略某个软件包组 (可多次使用)
--logfile <路径> 指定另外的日志文件
--needed 不重新安装已是最新的软件包
--noconfirm 不询问确认
--noprogressbar 下载文件时不显示进度条
--noscriptlet 不执行安装小脚本
--overwrite <glob>
overwrite conflicting files (can be used more than once)
--print-format <字符串>
指定如何打印目标
--sysroot 在一个已挂载的 guest 系统操作(仅 root)
from archlinuxtutorial.
man pacman
-y, --refresh
Download fresh package databases from the server. Use twice to force a refresh even if databases are up to
date.
from archlinuxtutorial.
系统升级
首先,感谢各位的倾情解答。对于问题中的第一点给出了来源。
yy的含义中文解释的不太到位,看了英文版的“force a refresh even if up to date”。也就是说即使是最新版的软件也要重新安装吗?
$ pacman -hS
-y, --refresh 从服务器下载新的软件包数据库
(-yy 强制更新软件包数据库)
$ export LANG=en
$ pacman -hS
-y, --refresh download fresh package databases from the server
(-yy to force a refresh even if up to date)
实际例子
从这个案例中,首先和最后使用了强制刷新软件包数据库( -Syyu),中间使用的是( -Syu)。
可以看到当强制刷新的时候,会重新同步数据库;而使用-Syu则检查两者的数据库一致不一致,一致则不会花时间更新本地数据库,不一致则更新本地数据库(这一点在下面的案例中没有体现)。也就是说,什么情况下才使用强制刷新呢?如果-Syu已经可以达到目的,使用更费力的-Syyu的用意是?这一点随着深入的交流我发现显得更为重要。
$ sudo pacman -Syyu
[sudo] kearney 的密码:
:: 正在同步软件包数据库...
core 134.1 KiB 221 KiB/s 00:01 [####################################] 100%
extra 1566.8 KiB 1284 KiB/s 00:01 [####################################] 100%
community 5.6 MiB 5.60 MiB/s 00:01 [####################################] 100%
multilib 149.6 KiB 4.87 MiB/s 00:00 [####################################] 100%
archlinuxcn 1881.6 KiB 6.34 MiB/s 00:00 [####################################] 100%
:: 正在进行全面系统更新...
警告:google-chrome:忽略软件包升级 (91.0.4472.101-1 => 91.0.4472.114-1)
警告:liburing:忽略软件包升级 (0.7-2 => 2.0-1)
警告:obs-studio:忽略软件包升级 (27.0.0-2 => 27.0.1-1)
警告:qemu:忽略软件包升级 (5.0.0-8 => 6.0.0-3)
警告:qemu-arch-extra:忽略软件包升级 (5.1.0-3 => 6.0.0-3)
正在解析依赖关系...
正在查找软件包冲突...
软件包 (11) drumstick-2.3.0-1 enchant-2.3.0-1 imath-3.0.5-1 iproute2-5.13.0-1 libgit2-1:1.1.1-1
libksba-1.6.0-1 libnm-1.32.2-1 networkmanager-1.32.2-1 pacman-contrib-1.4.0-4 tor-0.4.6.6-1
vmpk-0.8.4-1
下载大小: 13.80 MiB
全部安装大小: 78.44 MiB
净更新大小: 0.14 MiB
:: 进行安装吗? [Y/n] n
$ sudo pacman -Syu
:: 正在同步软件包数据库...
core 已经是最新版本
extra 已经是最新版本
community 已经是最新版本
multilib 已经是最新版本
archlinuxcn 已经是最新版本
:: 正在进行全面系统更新...
警告:google-chrome:忽略软件包升级 (91.0.4472.101-1 => 91.0.4472.114-1)
警告:liburing:忽略软件包升级 (0.7-2 => 2.0-1)
警告:obs-studio:忽略软件包升级 (27.0.0-2 => 27.0.1-1)
警告:qemu:忽略软件包升级 (5.0.0-8 => 6.0.0-3)
警告:qemu-arch-extra:忽略软件包升级 (5.1.0-3 => 6.0.0-3)
正在解析依赖关系...
正在查找软件包冲突...
软件包 (11) drumstick-2.3.0-1 enchant-2.3.0-1 imath-3.0.5-1 iproute2-5.13.0-1 libgit2-1:1.1.1-1
libksba-1.6.0-1 libnm-1.32.2-1 networkmanager-1.32.2-1 pacman-contrib-1.4.0-4 tor-0.4.6.6-1
vmpk-0.8.4-1
下载大小: 13.80 MiB
全部安装大小: 78.44 MiB
净更新大小: 0.14 MiB
:: 进行安装吗? [Y/n] n
$ sudo pacman -Syyu
:: 正在同步软件包数据库...
core 134.1 KiB 552 KiB/s 00:00 [##########################################] 100%
extra 1566.8 KiB 5.15 MiB/s 00:00 [##########################################] 100%
community 5.6 MiB 4.72 MiB/s 00:01 [##########################################] 100%
multilib 149.6 KiB 2.92 MiB/s 00:00 [##########################################] 100%
archlinuxcn 1881.6 KiB 5.57 MiB/s 00:00 [##########################################] 100%
:: 正在进行全面系统更新...
警告:google-chrome:忽略软件包升级 (91.0.4472.101-1 => 91.0.4472.114-1)
警告:liburing:忽略软件包升级 (0.7-2 => 2.0-1)
警告:obs-studio:忽略软件包升级 (27.0.0-2 => 27.0.1-1)
警告:qemu:忽略软件包升级 (5.0.0-8 => 6.0.0-3)
警告:qemu-arch-extra:忽略软件包升级 (5.1.0-3 => 6.0.0-3)
正在解析依赖关系...
正在查找软件包冲突...
软件包 (11) drumstick-2.3.0-1 enchant-2.3.0-1 imath-3.0.5-1 iproute2-5.13.0-1 libgit2-1:1.1.1-1 libksba-1.6.0-1
libnm-1.32.2-1 networkmanager-1.32.2-1 pacman-contrib-1.4.0-4 tor-0.4.6.6-1 vmpk-0.8.4-1
下载大小: 13.80 MiB
全部安装大小: 78.44 MiB
净更新大小: 0.14 MiB
:: 进行安装吗? [Y/n] n
from archlinuxtutorial.
该链接中是这样描述的
你的系统上的包管理器首先会与元数据进行交互。包管理器在你的系统上创建了一个元数据的本地缓存。当你运行包管理器的更新选项(例如 apt update)时,它会通过引用仓库中的元数据来更新本地元数据缓存。
当你运行软件包管理器的安装命令(例如 apt install package_name)时,软件包管理器会引用这个缓存。如果它在缓存中找到了包的信息,它就会使用互联网连接到相应的仓库,并在你的系统上安装之前先下载包。
按照这样理解的话,就是更新整个系统时 -Syu 会自动更新数据库(如果不是最新的话),用 -Syyu 只是作者习惯,即使是新的也要更新。
from archlinuxtutorial.
@BackMountainDevil
如果没有问题 请关闭issue
from archlinuxtutorial.
Q&A 中的第一点升级系统 Syu 中加个了个 y 指的是强制刷新软件哭,第二点 删除孤立软件包 并没有对此做出解释,个人认为这个命令容易让人以为这些包是卸载的时候落下的而进行删除
from archlinuxtutorial.
Related Issues (20)
- NetworkManager 开启时需要关闭dhcpcd的systemd服务 HOT 1
- Consider relicensing the tutorial under GNU FDL HOT 1
- arch是一把双刃剑
- 我可以贡献双系统安装的内容吗 HOT 2
- 提供关于游戏加速的细节更新 HOT 1
- 是否借鉴了其他教程?
- 只推荐 pacman 安装还是同时提供 pacman 和 AUR 安装方式? HOT 7
- 大佬蓝牙不对呀 HOT 2
- Why we changed the license to CC BY-NC-ND 4.0 HOT 4
- 使用 root 权限编辑文本文件应该使用 `sudoedit` 命令,而不是直接用 sudo 运行文本编辑器 HOT 1
- 将系统刻录到U盘后 无法读取到U盘 HOT 1
- 捉虫:办公日常 HOT 3
- 功耗控制里面tlp的部分怎么没了,是会造成冲突吗? HOT 1
- 建议默认去掉基础安装第16步grub-install命令的--removable选项 HOT 11
- 合并出错
- I apologize for the infringement of your article. HOT 1
- Roadmap in 2022 HOT 2
- 触摸板的部分功能失灵(单指触击、双指触击、....) HOT 2
- Feature:希望添加分區加密教程 HOT 2
- Problem: Can not load pages in the mainland with default cdn HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from archlinuxtutorial.