1. Pacnew_and_Pacsave 1.1 查找.pac *文件 1.1.1 要在/etc存储大多数全局配置的位置进行搜索: 1.1.2 也可以使用locate 1.1.3 使用pacman的日志查找它们: 1.2 管理.pac*文件 pacdiff 1.3 paddiff帮助 2. pacman-contrib
https://wiki.archlinux.org/index.php/Pacman/Pacnew_and_Pacsave
*.pacnew文件
在软件包升级期间pacman -Syu (也有覆盖安装时pacman -S upacman -U), 为避免覆盖已存在的用户先前修改过的文件, 会创建一个.pacnew文件。发生这种情况时,pacman的输出中将显示以下消息:
warning: /etc/pam.d/usermod installed as /etc/pam.d/usermod.pacnew
*.pacsave文件
当卸载一个软件包(pacman -R), 或者upgrade(必须先removed)一个软件包时, 会创建.pacsave文件. When the pacman database has a record that a certain file owned by the package should be backed up, it will create a .pacsave file. 生这种情况时,pacman的输出中将显示以下消息:
warning: /etc/pam.d/usermod saved as /etc/pam.d/usermod.pacsave
Pacman不会自动处理.pacnew文件:您必须自己维护这些文件。要发现是否已安装任何.pac *文件,请使用以下方法之一:
$ find /etc -regextype posix-extended -regex ".+\.pac(new|save)" 2> /dev/null
/etc/locale.gen.pacnew
/etc/shadow.pacnew
/etc/pacman.conf.pacnew
/etc/security/limits.d/10-gcr.conf.pacnew
/etc/default/grub.pacnew
/etc/pacman.d/mirrorlist.pacnew
/etc/nftables.conf.pacnew
$ sudo updatedb
$ locate --existing --regex "\.pac(new|save)$"
/etc/locale.gen.pacnew
/etc/nftables.conf.pacnew
/etc/pacman.conf.pacnew
/etc/shadow.pacnew
/etc/default/grub.pacnew
/etc/pacman.d/mirrorlist.pacnew
/etc/security/limits.d/10-gcr.conf.pacnew
$ grep --extended-regexp "\.pac(new|save)" /var/log/pacman.log
...
[2020-06-25T04:58:54+0800] [ALPM] warning: /etc/pacman.d/mirrorlist installed as /etc/pacman.d/mirrorlist.pacnew
pacman-contrib提供了用于管理 .pac *文件的简单 pacdiff工具。它将搜索所有 .pacnew和 .pacsave文件,并要求对它们进行任何操作。默认情况下,它使用 vimdiff,但您可以使用指定其他工具。有关其他常见的比较工具,请参见应用程序/实用程序列表#比较,差异,合并。 DIFFPROG=your_editor pacdiff
https://wiki.archlinux.org/index.php/List_of_applications/Utilities#Comparison,_diff,_merge
仅打印出待处理文件
$ pacdiff -l -o
/etc/locale.gen.pacnew
/etc/nftables.conf.pacnew
/etc/pacman.conf.pacnew
/etc/shadow.pacnew
/etc/default/grub.pacnew
/etc/pacman.d/mirrorlist.pacnew
/etc/security/limits.d/10-gcr.conf.pacnew
使用meld作为合并程序处理/etc目录下的*.pac*文件
$ sudo DIFFPROG=meld DIFFSEARCHPATH="/etc" pacdiff
==> pacnew file found for /etc/shadow
:: (V)iew, (S)kip, (R)emove pacnew, (O)verwrite with pacnew, (Q)uit: [v/s/r/o/q] v
r
:: (V)iew, (S)kip, (R)emove pacnew, (O)verwrite with pacnew, (Q)uit: [v/s/r/o/q] removed ‘/etc/shadow.pacnew‘
==> pacnew file found for /etc/security/limits.d/10-gcr.conf
...
命令会逐个列出每一个待处理文件:
输入(v) 回车, 查看差异:
程序会自动打开meld对比软件, 这里可以手动逐条同步文件, 有时新的配置文件会由于软件的新功能添加新的属性项目, 这时候可以合并到在用的配置文件中,
然后保存, 退出meld软件后. 进入下一步. (通过(v)打开meld软件查看差异, 不管是否修改保存, 退出后还是等待处理同一对文件.)
| $ pacdiff --help | A simple program to merge or remove pacnew/pacsave files. | 合并或删除pacnew/pacsave文件的简单程序。 |
| pacdiff v1.3.0 | Usage: pacdiff [-l | -f | -p] [--nocolor] | |
| Search Options: | select one (default: --pacmandb) | 选择一个(默认值:-pacmandb) |
| -l/--locate | scan using locate | 使用定位扫描 |
| -f/--find | scan using find | 使用查找扫描 |
| -p/--pacmandb | scan active config files from pacman database | 扫描pacman数据库中的活动配置文件 |
| General Options: | ||
| -o/--output | print files instead of merging them | 打印文件而不是合并文件 |
| --nocolor | remove colors from output | 从输出中删除颜色 |
| Environment Variables: | ||
| DIFFPROG | override the merge program: (default: ‘vim -d‘) | 覆盖合并程序:(默认值:‘vim -d‘) |
| DIFFSEARCHPATH | override the search path. (only when using find) (default: /etc) | 覆盖搜索路径。 (仅在使用查找时) |
pacman-contrib包含的命令:
| checkupdates | 检测更新(-Sy) |
| paccache | 清理缓存($ sudo paccache -rk1) |
| pacdiff | 对比管理pac*配置文件($ pacdiff -l -o) |
| paclist | 按库repository列出包 |
| paclog-pkglist | 列出所有安装包(pacman -Q) |
| pacscripts | 查看安装脚本 |
| pacsearch | 搜索包(pacman -Ss) |
| pacsort | 实现alpm_pkg_vercmp的排序实用程序 |
| pactree | 依赖树 |
| rankmirrors | 通过连接和打开速度对pacman镜子进行排名。 Pacman镜像文件位于/etc/pacman.d/中。 如果提供了URL,它也可以排名一个镜像。 |
| updpkgsums |
$ paclog-pkglist |wc -l
779
$ sudo paccache -rk1
==> finished: 16 packages removed (disk space saved: 230.82 MiB)
$ sudo pacman -Sc
Packages to keep:
All locally installed packages
Cache directory: /var/cache/pacman/pkg/
:: Do you want to remove all other packages from cache? [Y/n] y
removing old packages from cache...
Database directory: /var/lib/pacman/
:: Do you want to remove unused repositories? [Y/n] y
removing unused sync repositories...
$ paclog-pkglist |wc -l
779
$ sudo paccache -rk1
==> finished: 16 packages removed (disk space saved: 230.82 MiB)
$ sudo pacman -Sc
Packages to keep:
All locally installed packages
Cache directory: /var/cache/pacman/pkg/
:: Do you want to remove all other packages from cache? [Y/n] y
removing old packages from cache...
Database directory: /var/lib/pacman/
:: Do you want to remove unused repositories? [Y/n] y
removing unused sync repositories...
$ paclist community |wc -l
104
$ paclist core |wc -l
175
$ paclist extra |wc -l
499
$ pacscripts vlc
==> ERROR: Package vlc does not include any .INSTALL script
$ pacscripts chromium
post_upgrade() {
if (($(vercmp $2 42.0.2311.90-1) < 0)); then
...
fi
}
# vim:set ts=2 sw=2 et:
$ checkupdates
ca-certificates-mozilla 3.53.1-1 -> 3.54-1
curl 7.70.0-1 -> 7.71.0-1
gtk-update-icon-cache 1:3.24.20-1 -> 1:3.24.21-1
gtk3 1:3.24.20-1 -> 1:3.24.21-1
imagemagick 7.0.10.21-1 -> 7.0.10.22-1
libfontenc 1.1.4-2 -> 1.1.4-3
libglvnd 1.3.1-1 -> 1.3.2-1
libwacom 1.3-1 -> 1.4-2
nspr 4.25-1 -> 4.26-1
nss 3.53.1-1 -> 3.54-1
perl-http-message 6.24-2 -> 6.25-1
unrar 1:5.9.3-2 -> 1:5.9.4-1
$ sudo pacman -Syu
:: Synchronizing package databases...
core 134.5 KiB 193 KiB/s 00:01 [#################################################] 100%
extra 1698.5 KiB 765 KiB/s 00:02 [#################################################] 100%
community 5.0 MiB 1190 KiB/s 00:04 [#################################################] 100%
:: Starting full system upgrade...
:: Replace intel-tbb with extra/tbb? [Y/n] y
resolving dependencies...
looking for conflicting packages...
Package (16) Old Version New Version Net Change Download Size
core/ca-certificates-mozilla 3.53.1-1 3.54-1 -0.02 MiB 0.32 MiB
core/curl 7.70.0-1 7.71.0-1 0.02 MiB 1.01 MiB
extra/gtk-update-icon-cache 1:3.24.20-1 1:3.24.21-1 0.00 MiB 0.01 MiB
extra/gtk3 1:3.24.20-1 1:3.24.21-1 0.19 MiB 11.24 MiB
extra/imagemagick 7.0.10.21-1 7.0.10.22-1 0.03 MiB 2.52 MiB
intel-tbb 2020.2-1 -2.18 MiB
extra/tbb 2020.2-1 2.18 MiB 0.38 MiB
extra/libfontenc 1.1.4-2 1.1.4-3 0.00 MiB 0.02 MiB
extra/libglvnd 1.3.1-1 1.3.2-1 0.01 MiB 0.36 MiB
extra/libwacom 1.3-1 1.4-2 -0.01 MiB 0.09 MiB
core/nspr 4.25-1 4.26-1 0.00 MiB 0.20 MiB
core/nss 3.53.1-1 3.54-1 0.01 MiB 1.45 MiB
extra/perl-http-message 6.24-2 6.25-1 0.00 MiB 0.07 MiB
extra/unrar 1:5.9.3-2 1:5.9.4-1 0.00 MiB 0.14 MiB
extra/xorg-fonts-encodings 1.0.5-2 0.61 MiB 0.55 MiB
Total Download Size: 18.40 MiB
Total Installed Size: 100.52 MiB
Net Upgrade Size: 0.85 MiB
:: Proceed with installation? [Y/n]
原文:https://www.cnblogs.com/sztom/p/13215847.html