這篇來介紹在 Arch Linux 當中篩出 Debug 套件的方法。
因為 makepkg
設定不當,發現在安裝 AUR Package 的時候會自己把 Debug 套件裝起來。其實這也是 makepkg
的預設 OPTIONS
,以前用 yay 的時候並不會安裝 Debug 套件,但後來證實那是個 Bug……。
剛好也藉此來學習 grep
和 awk
的使用方式。
先講結論,我最後弄出來的指令長這個樣子:
yay -Qs | grep -E "([A-Za-z0-9\-]-debug)" | awk 'BEGIN{FS="[/ ]"} {print $2}' | yay -R -
yay 是我用的 AUR Helper,-Qs
代表查詢在本地安裝的所有套件,-R
代表移除指定套件。
grep
的部份,為了要篩選出 Debug 套件的描述,使用 -E 代表可以使用延伸的正規表達式(例如分組等),([A-Za-z0-9\-]-debug)
就是我在 regex101 測試出來的結果。
awk 的部份,使用BEGIN{FS="[/ ]"}
表示「要從每一行的開始處使用自訂的分隔符號」,這邊有看過 pacman
資訊的人應該都會知道套件名稱的顯示方式是 <Repository>/<PackageName> <Version>
,所以分隔符號就是 /
和空格兩種。
最後用 print 把第二個欄位的參數給印出來({print $2}
),並丟給 yay 處理,這樣就可以批次移除 Debug 套件了。執行結果如下圖:
參考資料: