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


    前提

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

    安装fontconfig

    测试是否安装

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

    fc-list
    fc-cache -fv
    
    • 1
    • 2

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

    -bash: fc-list: 未找到命令
    -bash: fc-cache: 未找到命令
    
    • 1
    • 2

    下载rpm包

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

    yum -y install --downloadonly  fontconfig
    
    • 1

    得到四个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
    
    • 1
    • 2
    • 3
    • 4

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

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

    Fontconfig error: Cannot load default config file
    
    • 1

    安装字体

    上传字体

    找到字体上传到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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    安装完输入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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
  • 相关阅读:
    WEB安全基础 - - -文件上传
    c++知识点之 --输入输出
    DVWA之SQL注入
    信创生态下运维Linkis
    摄像头识别安全帽
    Tableau可视化项目
    Mac | Vmware Fusion | 分辨率自动还原问题解决
    11_聚类算法
    第47节——使用bindActionCreators封装actions模块
    网络安全(黑客)自学
  • 原文地址:https://blog.csdn.net/weixin_43859729/article/details/127465990