Debian Kwheezy(Debian Wheezy 與 KDE 的結合)捆綁了所有可以想像到的字體和數百種字體,這些字體在擴展字元集中支援各種外語。大多數字體本質上是英文字元中一些基本字體的重複。還有一些重複的字體,其中包含來自不同出版商的基本相同的字體。我需要剔除這些,因為 Debian 運行在一個小的外部磁碟上,並且可用空間不足。
系統字體可從系統設定面板中識別。然而,許多應用程式定義了自己的預設字體。我不想刪除字體,然後發現應用程式無法運行,因為我刪除了其預設字體。仔細檢查每個應用程序,找到它指定字體的位置,並建立一個“不刪除”列表將是一項工作。是否有一種簡單的方法(例如生成字體依賴項清單的命令)來識別現有應用程式期望找到的所有字體?
答案1
你可以這樣做:
find /usr/share/fonts -type f -atime +30
這將顯示過去 30 天內未造訪過的所有字體。然後你可以做
dpkg -S /usr/share/fonts/truetype/ttf-bitstream-vera/VeraMoIt.ttf
找出該字體在哪個 debian 軟體包中(這樣你就可以刪除它)。
警告:它假設您的檔案系統已安裝完整阿泰姆(訪問時間)支援。您可以透過檢查存取檔案時檔案存取時間是否已修改來驗證它是否正常運作:
% ls -l --time=atime /usr/share/fonts/truetype/ttf-bitstream-vera/VeraMoIt.ttf
-rw-r--r-- 1 root root 54508 Oct 24 18:44 /usr/share/fonts/truetype/ttf-bitstream-vera/VeraMoIt.ttf
% sleep 2m
% file /usr/share/fonts/truetype/ttf-bitstream-vera/VeraMoIt.ttf
/usr/share/fonts/truetype/ttf-bitstream-vera/VeraMoIt.ttf: TrueType font data
% ls -l --time=atime /usr/share/fonts/truetype/ttf-bitstream-vera/VeraMoIt.ttf
-rw-r--r-- 1 root root 54508 Oct 24 18:46 /usr/share/fonts/truetype/ttf-bitstream-vera/VeraMoIt.ttf
(在上面的範例中,我們顯示目前的atime,睡眠2 分鐘,讀取檔案(使用file(1),但任何唯讀命令都可以),然後再次檢查當前的atime。如果它已更改(就像我們所做的那樣:從18:44到18:46)然後 atime 支援就可以工作了。我們也可以使用stat
代替ls -l --time=atime
)
如果它不工作(例如,atime 不更新),那麼您應該檢查您的/etc/fstab
“/usr”或“/”分區(或您的哪個分區)/usr/share/字體目錄是),並確保它的名稱中有strictatime
任何其他選項atime
,然後重新啟動以使更改生效,並使用所有應用程序,以便在再次嘗試查找未使用的字體之前訪問所有字體。
請注意,(取決於您的 Debian/核心版本)atime 支援可能被停用是有原因的 - 它會稍微降低效能(每次讀取檔案時它都必須執行一些寫入操作);因此,如果效能提升對您來說比尋找檔案何時被存取的能力更重要,您可能需要在完成清理字體後再次放入relatime
或noatime
in 。/etc/fstab