Arch Linux 軟件包的查詢及清理


Arch-Linux-pacman-pkg

1. 軟件包基礎搜索及安裝卸載
2. 包的查詢及清理
3. 軟件包和文件的查詢
4. 查詢包詳細信息
5. 卸載不再被需要的軟件包
6. 清除多余的安裝包緩存(pkg包)
7. 通過日志查看安裝歷史

更新日志:
20190422地球日,增加$ sudo pacman -Qo
20190619, 增加$ sudo paccache -d,查詢清理緩存/var/cache/pacman/pkg/; 增加目錄
20190713, 增加: 7. 通過日志查看安裝歷史

1. 軟件包基礎搜索及安裝卸載

$ pacman -Ss 軟件名稱 //(搜索軟件包)
$ pacman -S 軟件名稱 //(安裝軟件包)
$ pacman -Rs 軟件名稱 //(卸載軟件包)
$ pacman -Syu (更新)

2. 包的查詢及清理

列出所有本地軟件包(-Q,query查詢本地;-q省略版本號)
$ pacman -Qq (列出有816個包)

列出所有顯式安裝(-e,explicitly顯式安裝;-n忽略外部包AUR)
$ pacman -Qqe (列出200個包)

列出自動安裝的包(-d,depends作為依賴項)
$ pacman -Qqd (列出616個)

列出孤立的包(-t不再被依賴的"作為依賴項安裝的包")
$ pacman -Qqdt (列出35個)
注意:通常這些是可以妥妥的刪除的。(sudo pacman -Qqdt | sudo pacman -Rs -)

3. 軟件包和文件的查詢

列出包所擁有的文件
$ sudo pacman -Ql iw
iw /usr/
iw /usr/bin/
iw /usr/bin/iw
iw /usr/share/
iw /usr/share/man/
iw /usr/share/man/man8/
iw /usr/share/man/man8/iw.8.gz

check 檢查包文件是否存在(-kk用於文件屬性)
$ sudo pacman -Qk iw
iw: 7 total files, 0 missing files

查詢提供文件的包
$ sudo pacman -Qo /usr/share/man/man8/iw.8.gz
/usr/share/man/man8/iw.8.gz is owned by iw 5.0.1-1

4. 查詢包詳細信息

查詢包詳細信息(-Qi;-Qii[Backup Files])(-Si[Repository,Download Size];-Sii[Signatures,])
$ pacman -Qi 包名
Repository 倉庫名稱(要聯網用pacman -Si或Sii才能看到這一欄;)
Name 名稱
Version 版本
Description 描述
Architecture 架構
URL 網址
Licenses 許可證
Groups 組
Provides 提供
Depends On 依賴於(依賴那些包)
Optional Deps 可選項
Required By 被需求的(被那些包需求)
Optional For 可選項
Conflicts With 與...發生沖突
Replaces 替代對象
Download Size 下載大小(要聯網用pacman -Si或Sii才能看到這一欄;)
Installed Size 安裝尺寸
Packager 包裝者
Build Date 包裝日期
Install Date 安裝日期
Install Reason 安裝原因(主動安裝,還是被依賴自動安裝)
Install Script 安裝腳本
Validated By 驗證者

$ pacman -Q -h 更多參數
-c --changelog 查看包的更改日志
-d --deps 列出作為依賴項安裝的軟件包[filter]
-e --explicit 列出顯式安裝[filter]
-g --groups 查看包組的所有成員
-i --info 查看包信息(-ii表示備份文件)
-k --check 檢查包文件是否存在(-kk用於文件屬性)
-l --list 列出查詢包所擁有的文件
-n --native 列出已安裝的軟件包只能在同步數據庫中找到[過濾器]
-p --file <package> 查詢包文件而不是數據庫
-q --quiet 顯示查詢和搜索的信息較少
-t --unrequired 列出所有包都不需要(可選)的包(-tt忽略optdepends)[filter]...

$ sudo cat pacman.log |grep boost 查看安裝日志
[2019-03-23 17:10] [ALPM] installed boost-libs (1.69.0-1)
[2019-03-28 17:21] [PACMAN] Running 'pacman -S --config /etc/pacman.conf -- extra/rsync extra/wget community/lxc extra/protobuf extra/jsoncpp extra/libuv extra/rhash extra/cmake community/glm extra/boost community/gtest'
[2019-03-28 17:22] [ALPM] installed boost (1.69.0-1)
[2019-03-28 17:22] [PACMAN] Running 'pacman -D --asdeps --config /etc/pacman.conf -- rsync wget lxc protobuf jsoncpp libuv rhash cmake glm boost gtest'

5. 卸載不再被需要的軟件包

$ sudo pacman -Qqdt | sudo pacman -Rs -    //刪除不再被需要的(曾經被依賴自動安裝的程序包)
$ sudo pacman -Q |wc -l
769
$ sudo pacman -Qe |wc -l
200
$ sudo pacman -Qd |wc -l
569
$ sudo pacman -Qdt |wc -l
0

6. 清除多余的安裝包緩存(pkg包)

使用pacman安裝的軟件包會緩存在這個目錄下 /var/cache/pacman/pkg/ ,可以清理如下2種。
-k (-k[n])保留軟件包的n個最近的版本,刪除比較舊的軟件包。
-u (-u)已卸載軟件的安裝包(pkg包)。

$ paccache -h
  Operations:

-d, --dryrun perform a dry run, only finding candidate packages. 執行干運行,只找到候選包。
-m, --move <dir> move candidate packages to "dir". 將候選包裹移到“dir”。
-r, --remove remove candidate packages. 刪除候選包。

  Options:

-a, --arch <arch> scan for "arch" (default: all architectures). 掃描“arch”(默認:所有架構)。
-c, --cachedir <dir> scan "dir" for packages. can be used more than once. 掃描“dir”包。 可以使用不止一次。
  (default: read from /etc/pacman.conf). (默認:從/etc/pacman.conf中讀取)。
-f, --force apply force to mv(1) and rm(1) operations. 對mv(1)和rm(1)操作施加強制。
-h, --help display this help message and exit. 顯示此幫助消息並退出。
-i, --ignore <pkgs> ignore "pkgs", comma-separated. Alternatively, specify "-" to read package names from stdin, newline-delimited. 忽略“pkgs”,以逗號分隔。 或者,指定“ - ”以從stdin讀取包名稱,換行符分隔。
-k, --keep <num> keep "num" of each package in the cache (default: 3). 保留緩存中每個包的“num”(默認值:3)。
--nocolor remove color from output. 從輸出中刪除顏色。
-q, --quiet minimize output 最小化輸出
-u, --uninstalled target uninstalled packages. 目標已卸載的軟件包。
-v, --verbose increase verbosity. specify up to 3 times. 增加冗長。 最多指定3次。
-z, --null use null delimiters for candidate names (only with -v and -vv). 對候選名稱使用null分隔符(僅使用-v和-vv)。


paccache -r //刪除,默認保留最近的3個版本,-rk3
==> finished: 6 packages removed (disk space saved: 194.11 MiB)
paccache -rk2 //刪除,默認保留最近的2個版本
paccache -rk1 //刪除,默認保留最近的1個版本

 

7. 通過日志查看安裝歷史

查看軟件管理所操作日志。
$ cat /var/log/pacman.log |wc -l
6360
$ cat /var/log/pacman.log |grep installed |wc -l
1134
$ cat /var/log/pacman.log |grep running |wc -l
1182
$ cat /var/log/pacman.log |grep Running |wc -l
1122
$ cat /var/log/pacman.log |grep removed |wc -l
217
$ cat /var/log/pacman.log |grep upgraded |wc -l
811

$ cat /var/log/pacman.log |grep pacman |tail
[2019-07-11 21:05] [PACMAN] Running 'pacman -S hexchat'
[2019-07-11 21:06] [PACMAN] Running 'pacman -S irssi'

$ cat /var/log/pacman.log |grep installed |tail
[2019-07-11 21:06] [ALPM] installed hexchat (2.14.2-3)
[2019-07-11 21:06] [ALPM] installed libotr (4.1.1-2)
[2019-07-11 21:06] [ALPM] installed irssi (1.2.1-1)

$ cat /var/log/pacman.log |grep PACMAN |tail
[2019-07-11 21:06] [PACMAN] Running 'pacman -S konversation'
[2019-07-11 21:06] [PACMAN] Running 'pacman -S pidgin'
[2019-07-11 21:07] [PACMAN] Running 'pacman -S weechat'
[2019-07-11 21:07] [PACMAN] Running 'pacman -S ircii'

$ cat /var/log/pacman.log |grep irssi
[2019-07-11 21:06] [PACMAN] Running 'pacman -S irssi'
[2019-07-11 21:06] [ALPM] installed irssi (1.2.1-1)

$ cat /var/log/pacman.log |grep pidgin
[2019-07-11 21:06] [PACMAN] Running 'pacman -S pidgin'

更新記錄
$ cat /var/log/pacman.log |grep 'upgraded chromium'
[2019-06-15 06:39] [ALPM] upgraded chromium (75.0.3770.80-1 -> 75.0.3770.90-2)
[2019-06-19 10:20] [ALPM] upgraded chromium (75.0.3770.90-2 -> 75.0.3770.90-3)
[2019-06-23 17:18] [ALPM] upgraded chromium (75.0.3770.90-3 -> 75.0.3770.100-1)

通過系統日志查看安裝記錄(速度可能較慢)
$ sudo journalctl |grep irssi
Jul 11 21:04:46 tompc sudo[11619]: toma : TTY=pts/2 ; PWD=/home/toma ; USER=root ; COMMAND=/usr/bin/pacman -Ss irssi
Jul 11 21:06:11 tompc sudo[11841]: toma : TTY=pts/2 ; PWD=/home/toma ; USER=root ; COMMAND=/usr/bin/pacman -S irssi
Jul 11 21:06:11 tompc pacman[11842]: Running 'pacman -S irssi'
Jul 11 21:06:27 tompc pacman[11842]: installed irssi (1.2.1-1)

$ sudo journalctl |grep pidgin
Jul 11 21:04:55 tompc sudo[11662]: toma : TTY=pts/2 ; PWD=/home/toma ; USER=root ; COMMAND=/usr/bin/pacman -Ss pidgin
Jul 11 21:06:57 tompc sudo[12000]: toma : TTY=pts/2 ; PWD=/home/toma ; USER=root ; COMMAND=/usr/bin/pacman -S pidgin
Jul 11 21:06:57 tompc pacman[12001]: Running 'pacman -S pidgin'

系統日志篩選更新記錄
$ sudo journalctl |grep 'upgraded chromium'
Jun 15 06:39:47 tompc pacman[5551]: upgraded chromium (75.0.3770.80-1 -> 75.0.3770.90-2)
Jun 19 10:20:45 tompc pacman[1904]: upgraded chromium (75.0.3770.90-2 -> 75.0.3770.90-3)
Jun 23 17:18:33 tompc pacman[7079]: upgraded chromium (75.0.3770.90-3 -> 75.0.3770.100-1)

附: pacman.log文件內容篩選時可用的關鍵字,供參考
關鍵字1 關鍵字2 關鍵字3 計數
[PACMAN] running pacman -R 47
    pacman -Rs 68
    pacman -S 310
    pacman -Syu 85
  starting upgrade 85
  synchronizing (空白) 89
[ALPM-SCRIPTLET] -k .img 70
  Running [autodetect] 35
    [base] 70
    [block] 70
    [filesystems] 70
    [fsck] 70
    [keyboard] 70
    [modconf] 70
    [resume] 66
    [udev] 70
  Building   70
  Creating   70
  Generating   70
  Image   70
  Starting   70
  WARNING   70
  Certificate   280
  gpg   245
[ALPM] installed   1123
  removed   217
  running 60-linux.hook 29
    70-dkms-install 24
    70-dkms-remove 23
    90-linux.hook 35
    gtk-update 133
    update-desktop 162
    systemd-update 340
    systemd-daemon 96
  transaction completed 342
    started 342
  upgraded   811
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM