通常如何从 libreoffice 和 linux 中删除我从未使用过的字体?

Mil*_*ise 24 fonts libreoffice

有很多额外的字体看起来都一样,只是在下拉列表中惹恼了我。无论如何我可以从系统中删除它们吗?

Rin*_*ind 22

你有几种方法。我可以列出4...

  1. 图形界面 ====================

首先,您可以使用以下命令安装字体管理器:

sudo aptitude install font-manager
Run Code Online (Sandbox Code Playgroud)

您可以从这里禁用(所以不要删除!禁用会使它们消失,但该系统上的其他用户仍会看到它们)字体。这是它的样子:

在此处输入图片说明

  1. 从 Ubuntu 软件中心手动删除 ==============

作为替代方法,在 Ubuntu 软件中心搜索字体并从那里删除它们。

  1. 通过命令行手动删除软件包 ==============

使用此命令无法删除任何英文字体:

sudo apt-get remove ttf-indic-fonts-core ttf-kacst-one ttf-khmeros-core ttf-lao ttf-punjabi-fonts ttf-takao-pgothic ttf-thai-tlwg ttf-unfonts-core ttf-wqy-microhei
Run Code Online (Sandbox Code Playgroud)

这是所有字体包的列表。您可以将字体包名称添加到上面的命令中以将它们包含在内以进行删除。

如果在任何时候您删除了想要恢复的字体,只需执行

 sudo apt-get install ttf-indic-fonts-core
Run Code Online (Sandbox Code Playgroud)

并且印度语字体将被重新安装(ofc. 将包名称更改为您想要的)。

  1. 手动删除命令行 ============================

除此之外你可以看看

/etc/fonts/fonts.conf
Run Code Online (Sandbox Code Playgroud)

查看字体的存储位置。通常这将位于以下位置之一:

/usr/share/fonts
/usr/local/share/fonts
/home/$USER/.local/share/fonts
/home/$USER/.fonts
Run Code Online (Sandbox Code Playgroud)

使用管理员权限,您可以删除它们。然后它们应该从任何位置消失。


RPi*_*ess 7

这取决于您如何安装字体。

系统范围内安装的字体

如果它是在系统范围内安装的(就像大多数字体都是 AFAIK),只需将 Nautilus(Ubuntu 的文件管理器)作为 root(Alt+F2然后输入gksudo nautilus)并导航到/usr/share/fonts/truetype.

在此处输入图片说明

然后

在此处输入图片说明

然后

在此处输入图片说明

删除文件,然后sudo fc-cache -f -v在终端中运行。

注销并重新登录,它应该被删除。

仅为您的用户安装字体

如果它是专为您安装的(手动复制粘贴到用户~/.fonts~/.local/share/fonts/目录中),那么您只需从这些目录中删除字体,然后注销并重新登录即可。

为了绝对确定,请执行以下操作:locate --existing szNameOfFile删除同一文件的所有其他事件,以便一切恢复原状!

聊天中@Fabby 提供的命令


pio*_*tao 5

如果您想检查 Debian/Ubuntu 系统和衍生产品上安装了哪些字体,您可以运行以下命令:

echo `dpkg -l fonts\*|grep ii|awk '{print $2}'|grep -vE 'fonts-(noto$|liberation|dejavu|freefont|hack)'`
Run Code Online (Sandbox Code Playgroud)

此命令排除要保留的字体。您可以将它们的名称放在括号正则表达式中,以|. 我从这个列表中排除了诸如 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
Run Code Online (Sandbox Code Playgroud)

如您所见,这是一个相当长的列表,但重要的是对其进行调查并删除其中可能存在的任何有价值的包。然后,应使用文件重定向 ( > file)将此列表保存到文件中:

echo `dpkg -l fonts\*|grep ii|awk '{print $2}'|grep -vE 'fonts-(noto$|liberation|dejavu|freefont|hack)'` >  not-needed-font-packages.txt
Run Code Online (Sandbox Code Playgroud)

现在,有了这个文件,您可以随时恢复(再次安装)您将要删除的所有软件包。在删除名称收集在该文件中的不必要的包之前,您应该运行以下命令,这将测试系统对这种潜在破坏性操作的响应:

sudo dpkg --remove --dry-run `cat not-needed-font-packages.txt`
Run Code Online (Sandbox Code Playgroud)

这将检查将删除哪些包。由于字体包通常是其他包的依赖项,请仔细查看列表,看看是否会删除一些其他包。此命令是安全的 - 它只会打印要执行的操作。如果有任何软件包,例如 libreoffice 或 xreader,您将不得不强制系统仅删除指定的软件包,这将破坏软件包系统的一致性并且可能是危险的。但是,我们将仅删除一些字体包,因此不会造成真正的伤害。

要仅删除指定的包并忽略其他已安装包的所有损坏的依赖项和要求,请运行以下命令:

sudo dpkg --remove --force-all --dry-run `cat not-needed-font-packages.txt`
Run Code Online (Sandbox Code Playgroud)

此命令将忽略所有错误,但会打印它们,以便您了解会稍微损坏的内容。如果您升级系统并且某些依赖字体的软件包将被重新安装,则这些字体软件包可能会再次安装。

要最终删除不必要的包,请删除该--dry-run选项,然后运行最终命令:

sudo dpkg --remove --force-all `cat not-needed-font-packages.txt`
Run Code Online (Sandbox Code Playgroud)

请注意,在您的系统上,情况可能有所不同。在我的波兰 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)...
Run Code Online (Sandbox Code Playgroud)

在那之后,我的系统只有我喜欢的字体。您可以使用以下命令检查剩余的字体包:

dpkg -l fonts\*|grep ^ii|awk '{print $2}'
Run Code Online (Sandbox Code Playgroud)

结果:

fonts-dejavu
fonts-dejavu-core
fonts-dejavu-extra
fonts-freefont-ttf
fonts-hack-ttf
fonts-liberation
fonts-noto
Run Code Online (Sandbox Code Playgroud)

要刷新字体缓存,以便应用程序停止显示已删除的字体,请运行

fc-cache -fv
Run Code Online (Sandbox Code Playgroud)