如果要检查在Debian / Ubuntu系统及其衍生产品上安装了什么字体,可以运行以下命令:
echo `dpkg -l fonts\*|grep ii|awk '{print $2}'|grep -vE 'fonts-(noto$|liberation|dejavu|freefont|hack)'`
此命令排除我要保留的字体(可以将其名称放在括号中)。我从列表中排除了诸如fonts-noto(显式),所有fonts-liberation软件包之类的软件包名称。安装的软件包列表如下所示:
fonts-beng fonts-beng-extra fonts-deva fonts-deva-extra fonts-gargi fonts-gubbi fonts-gujr fonts-gujr-extra fonts-kacst fonts-kacst-one fonts-kalapi fonts-khmeros-core fonts-knda fonts-lohit-beng-assamese fonts-lohit-beng-bengali fonts-lohit-deva fonts-lohit-gujr fonts-lohit-knda fonts-lohit-mlym fonts-lohit-orya fonts-lohit-taml fonts-lohit-taml-classical fonts-lohit-telu fonts-mathjax fonts-mlym fonts-nakula fonts-nanum fonts-navilu fonts-noto-cjk fonts-noto-hinted fonts-noto-mono fonts-noto-unhinted fonts-opensymbol fonts-orya fonts-orya-extra fonts-pagul fonts-sahadeva fonts-samyak-deva fonts-samyak-gujr fonts-samyak-mlym fonts-samyak-taml fonts-sarai fonts-smc fonts-symbola fonts-takao-pgothic fonts-taml fonts-telu fonts-telu-extra fonts-tlwg-garuda fonts-tlwg-garuda-ttf fonts-tlwg-kinnari fonts-tlwg-kinnari-ttf fonts-tlwg-laksaman fonts-tlwg-laksaman-ttf fonts-tlwg-loma fonts-tlwg-loma-ttf fonts-tlwg-mono fonts-tlwg-mono-ttf fonts-tlwg-norasi fonts-tlwg-norasi-ttf fonts-tlwg-purisa fonts-tlwg-purisa-ttf fonts-tlwg-sawasdee fonts-tlwg-sawasdee-ttf fonts-tlwg-typewriter fonts-tlwg-typewriter-ttf fonts-tlwg-typist fonts-tlwg-typist-ttf fonts-tlwg-typo fonts-tlwg-typo-ttf fonts-tlwg-umpush fonts-tlwg-umpush-ttf fonts-tlwg-waree fonts-tlwg-waree-ttf fonts-wqy-microhei
如您所见,这是一个相当长的列表,但是对它进行调查并删除可能存在的任何有价值的软件包很重要。然后,此列表应使用文件重定向(>文件)保存到文件:
echo `dpkg -l fonts\*|grep ii|awk '{print $2}'|grep -vE 'fonts-(noto$|liberation|dejavu|freefont|hack)'` > not-needed-font-packages.txt
现在,有了此文件,您随时可以还原(重新安装)将要删除的所有软件包。要删除该文件中收集了名称的所有不必要的软件包,可以运行以下命令来测试系统对此潜在破坏性操作的响应:
sudo dpkg --remove --dry-run `cat not-needed-font-packages.txt`
这将检查将删除哪些软件包。由于字体软件包通常反向依赖于其他软件包,因此请密切注意列表以检测是否将要删除某些其他软件包。此命令是安全的-仅打印要完成的操作。如果有任何软件包,例如libreoffice或xreader,您将不得不强制系统仅删除指定的软件包,这将破坏软件包系统的一致性,并且可能很危险。但是,我们将只删除一些字体包,因此不会造成真正的危害。
要仅删除指定的软件包,并忽略其他已安装软件包的所有损坏的依赖关系和要求,请运行以下命令:
sudo dpkg --remove --force-all --dry-run `cat not-needed-font-packages.txt`
该命令将忽略所有错误,但会打印它们,以使您了解会被轻微破坏的错误。如果您升级系统,并且某些反向依赖项将被重新安装,则可能会再次安装那些字体包,但是谁在乎。
要最终删除不必要的软件包,请删除--dry-run选项,然后运行最终命令:
sudo dpkg --remove --force-all `cat not-needed-font-packages.txt`
请注意,在您的系统上情况可能有所不同。在我的Linux Mint 18.3 Cinnamon工作站上,所有指定的软件包均被删除,日志如下所示:
(Odczytywanie bazy danych ... 269043 pliki i katalogi obecnie zainstalowane.)
Usuwanie pakietu fonts-beng (2:1.2) ...
Usuwanie pakietu fonts-beng-extra (1.0-5) ...
Usuwanie pakietu fonts-deva (2:1.2) ...
Usuwanie pakietu fonts-deva-extra (3.0-3) ...
... lots of another lines like this...
Usuwanie pakietu fonts-lohit-taml-classical (2.5.3-2) ...
Usuwanie pakietu fonts-lohit-telu (2.5.3-1) ...
Usuwanie pakietu fonts-samyak-taml (1.2.2-4) ...
dpkg: fonts-noto-hinted: problemy z zależnościami, usuwanie według żądania:
fonts-noto zależy od fonts-noto-hinted.
Usuwanie pakietu fonts-noto-hinted (20160116-1) ...
dpkg: fonts-opensymbol: problemy z zależnościami, usuwanie według żądania:
libreoffice-core zależy od fonts-opensymbol.
libreoffice-math zależy od fonts-opensymbol.
Usuwanie pakietu fonts-opensymbol (2:102.7+LibO5.1.4-0ubuntu1) ...
dpkg: fonts-symbola: problemy z zależnościami, usuwanie według żądania:
ttf-ancient-fonts-symbola zależy od fonts-symbola.
Usuwanie pakietu fonts-symbola (2.59-1) ...
dpkg: fonts-mathjax: problemy z zależnościami, usuwanie według żądania:
libjs-mathjax zależy od fonts-mathjax (>= 2.6.0~).
Usuwanie pakietu fonts-mathjax (2.6.1-1) ...
Przetwarzanie wyzwalaczy pakietu fontconfig (2.11.94-0ubuntu1.1)...
之后,我的系统只有我喜欢的字体。您可以使用以下简单命令检查剩余的字体包:
dpkg -l fonts\*|grep ^ii|awk '{print $2}'
结果:
fonts-dejavu
fonts-dejavu-core
fonts-dejavu-extra
fonts-freefont-ttf
fonts-hack-ttf
fonts-liberation
fonts-noto