Linux:非root、普通用户安装rpm(fontconfig、fc-cache命令)、中文字体

导读:本篇文章讲解 Linux:非root、普通用户安装rpm(fontconfig、fc-cache命令)、中文字体,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

前提

非root帐号,普通帐号,不能使用yum、rpm命令、没root权限

安装fontconfig

测试是否安装

安装字体后需要使用fontconfig包的fc-cache -fv命令刷新字体缓存,可以使用下面命令测试,二选一就行

fc-list
fc-cache -fv

如果出现如下报错,就是没装

-bash: fc-list: 未找到命令
-bash: fc-cache: 未找到命令

下载rpm包

选一个用户有权限的目录,只下载不安装,到一个没安装过fontconfig的服务器执行

yum -y install --downloadonly  fontconfig

得到四个rpm包

(1/4): dejavu-fonts-common-2.33-6.el7.noarch.rpm | 64 kB 00:00:05
(2/4): fontconfig-2.13.0-4.3.el7.x86_64.rpm | 254 kB 00:00:05
(3/4): dejavu-sans-fonts-2.33-6.el7.noarch.rpm | 1.4 MB 00:00:05
(4/4): fontpackages-filesystem-1.44-8.el7.noarch.rpm | 9.9 kB 00:00:10

解压rpm包

在rpm目录解压rpm包

rpm2cpio dejavu-fonts-common-2.33-6.el7.noarch.rpm | cpio -id
rpm2cpio dejavu-sans-fonts-2.33-6.el7.noarch.rpm | cpio -id
rpm2cpio fontconfig-2.13.0-4.3.el7.x86_64.rpm | cpio -id
rpm2cpio fontpackages-filesystem-1.44-8.el7.noarch.rpm | cpio -id

解压后出现etc和usr两个文件夹

etc/fonts/fonts.conf 是fc-list需要使用的配置文件,如果后面不指定这个文件的位置,会报错如下

Fontconfig error: Cannot load default config file

安装字体

上传字体

找到字体上传到Linux,从Windows自己的font文件夹找或者跟别人要

安装脚本

脚本如下,写了注释,具体的etc、usr路径需要根据实际情况设置

source /etc/profile

# 创建用户的字体目录,这个目录路径是固定的
mkdir -p ~/.fonts
# 将脚本目录的fonts文件夹的文件都拷贝到用户字体目录
cp -r fonts/* ~/.fonts
# 获取当前目录路径
d_name=$(cd `dirname $0`; pwd)
# 设置fontconfig配置文件的路径
echo  "export FONTCONFIG_FILE=${d_name}/etc/fonts/fonts.conf" >> ~/.bash_profile
# 设置path,包括bin(目录所在目录)
echo  "export PATH="${d_name}/usr/bin:$PATH"" >> ~/.bash_profile
echo  "export MANPATH="${d_name}/usr/share/man:$MANPATH"" >> ~/.bash_profile
# 设置库文件路径
L='/lib:/lib64:/usr/lib:/usr/lib64'
echo  "export LD_LIBRARY_PATH="${d_name}/usr/lib:${d_name}/LibreOffice/usr/lib64:$L"" >> ~/.bash_profile
# 刷新用户环境变量
source ~/.bash_profile
# 刷新字体缓存
fc-cache -fv

安装完输入fc-list就可以看到执行成功

如果还有问题就根据问题再自行解决吧,大致思路是上面的

–20221216更新,解决环境变量导致的部分命令无法使用问题,将自定义的目录放在前面,找不到命令时找系统自己的命令

#!/bin/bash
#

mkdir -p ~/.fonts

/usr/bin/cp -rf fonts/* ~/.fonts

d_name=$(cd `dirname $1`; pwd)
echo ${d_name}

path=`pwd`

echo  "export FONTCONFIG_FILE=${d_name}/mydir/etc/fonts/fonts.conf" >> ~/.bash_profile
echo  "export PATH="../../mydir/usr/sbin:../../mydir/usr/bin:../../mydir/bin:$PATH:${d_name}/mydir/usr/sbin:${d_name}/mydir/usr/bin:${d_name}/mydir/bin"" >> ~/.bash_profile
echo  "export MANPATH="../../mydir/usr/share/man:$MANPATH:${d_name}/mydir/usr/share/man"" >> ~/.bash_profile
L='/lib:/lib64:/usr/lib:/usr/lib64'
echo  "export LD_LIBRARY_PATH="../../mydir/usr/lib:../../mydir/usr/lib64:$L:${d_name}/mydir/usr/lib:${d_name}/mydir/usr/lib64"" >> ~/.bash_profile

	
source ~/.bash_profile

fc-cache -fv

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/93667.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!