ユーザーのシステムにいくつかのTrueTypeフォントをインストールする小さなスクリプトを作成したいと思います。私のUbuntuマシンでは、TrueTypeフォントは/usr/share/fonts/truetype
にあります。ただし、この場所がすべてのマシンで同じかどうかはわかりません。 LinuxシステムでTrueTypeフォントが保存されている場所を確認する方法はありますか?
更新
調査の結果、パスusr/share/fonts/truetype
がXMLファイル/etc/fonts/fonts.conf
で指定されていることがわかりました。これはXMLファイルなので、XPathを使用してディレクトリを取得できます。
xpath -q -e 'fontconfig/dir[1]/text()[1]' /etc/fonts/fonts.conf
ただし、このファイルがすべて(またはほとんど)のLinuxシステムに存在するかどうかはわかりません。
/usr/share/fonts
および~/.fonts
のサブディレクトリの下にあるすべてのフォントがスキャンされ、使用可能なコレクションに追加されます。したがって、フォントがこれらの2つのディレクトリのいずれかにある限り、フォントは正しい場所にあり、その場所はほとんどすべての主要なLinuxディストリビューションで同じです。
更新:
ちなみに、fonts.conf
ファイルがFedoraとUbuntuの両方に存在することを確認できます(それらの派生物:Xubuntu、Lubuntu、Linux Mint、Cinnammon、Peppermint OS、Fedoraとそのすべてのスピン。
Fedoraでは、フォルダーパスは/home/{user}/.local/share/fonts
ここでフォントファイルをコピーして貼り付けることができます。
ディストリビューションはすべて異なります。デフォルトのパスを設定し、ユーザーにデフォルトのパスとカスタムのパスのどちらかを選択させることをお勧めします。
編集:
私の意見では、環境変数や関数がないため、3つの解決策があります。
例:
DEFAULT="$home/.fonts/"
UBUNTU_XFSTT="/usr/share/fonts/truetype/"
RHL52_XFS="/usr/X11R6/lib/X11/fonts/ttfonts/"
RHL6_XFSTT="/usr/X11R6/lib/X11/fonts/"
DEBIAN_XFSTT="/usr/share/fonts/truetype/"
#Test if directory exist
if test -e ${UBUNTU_XFSTT} ; then
echo ${UBUNTU_XFSTT}
Elif test -e ${RHL52_XFS} ; then
echo ${RHL52_XFS}
Elif test -e ${RHL6_XFSTT} ; then
echo ${RHL6_XFSTT}
Elif test -e ${DEBIAN_XFSTT} ; then
echo ${DEBIAN_XFSTT}
else
echo ${DEFAULT}
fi
追伸それは私の意見です...
多分あなたはあなたのフォントでパッケージを作成することを検討することができます。これは、パッケージ記述ファイルと作成ルールを作成する少しの作業です。しかし、無料でアップデートとアンインストールを行うことができます。 Ubuntuの場合、.debファイルを作成する必要があります。