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

在没有root权限的情况下,通过下载rpm包并解压安装fontconfig。首先下载所需字体包,然后使用rpm2cpio解压,创建用户字体目录并将字体复制进去。接着设置环境变量,包括FONTCONFIG_FILE、PATH、MANPATH和LD_LIBRARY_PATH,并刷新字体缓存。此过程适用于不具备yum或rpm命令权限的普通用户。
摘要由CSDN通过智能技术生成

前提

非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
  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值