写在前面
首先声明,这个不是一个正常的安装,公司内外网不互通,而导入内网手续很繁琐。测试环境docker中一直缺少中文字体库导致word转pdf中文总乱码,一大片的口口口
,难过。
安装想法
因为开发环境中文是正常的,测试环境存在异常。LOL安装后的解压文件拷贝更换目录可以正常启动,那么Linux安装的程序应该也可以这样子操作。其实一直有考虑,如果把安装后的文件按照某种规则重新收集以后是否可以还原成原有的安装包呢?
网上找想法
网上安装字体库的方法都是,把字体放到某个目录然后mkfontscale/mkfontdir之类的,如果没有字体库就yum install或者下立项rpm包。不想这么搞,心累。但是找到了主要用的是fontconfig,然后命令就是fc-*和mkfont*之类的
找文件,拷贝,迁移
命令行直接找起
[root@ ~]# whereis fontconfig
fontconfig: /usr/lib/fontconfig /usr/include/fontconfig /usr/share/fontconfig
[root@ ~]# whereis fc-list
fc-list: /usr/bin/fc-list /usr/share/man/man1/fc-list.1.gz
[root@ ~]# whereis mkfontdir
mkfontdir: /usr/bin/mkfontdir /usr/share/man/man1/mkfontdir.1.gz
大致结果就是这样子,翻看具体目录然后就关联性的命令fc-cache
/mkfontscale
就都在相应目录了
- 拷贝fontconfig目录 (三个都拷,我这里不敲了;这里的containerId是我瞎写的,下面都用这个)
(对docker不很熟,也可能版本问题,目录完全写一样就会在下面又建个子包,所以这里少一层)
[root@ ~]# docker ps | grep font-test
adw15dsa5e
[root@ ~]# docker cp /usr/lib/fontconfig adw15dsa5e:/usr/lib/
- 命令 和 那个gz (不知道Linux底层是怎么用的,反正有就无脑拷贝就是了)
(复制好像不能带*,所以先拷贝到一个目录里面,我用/home/myfont)
[root@ ~]# cp /usr/bin/fc-* /home/myfont/bin/
[root@ ~]# cp /usr/bin/mkfont* /home/myfont/bin/
[root@ ~]# cp /usr/share/man/man1/fc-* /home/myfont/man1/
[root@ ~]# cp /usr/share/man/man1/mkfont* /home/myfont/man1/
[root@ ~]#
[root@ ~]# docker cp /home/myfont/man1/ adw15dsa5e:/usr/share/man/
[root@ ~]# docker cp /home/myfont/bin/ adw15dsa5e:/usr/
- 进docker,
fc-list
走你
[root@ ~]# docker exec -it adw15dsa5e /bin/bash
[adw15dsa5e@ /]# fc-list
- 想成功了?想得美,现实很骨感的。不负众望,命令可以用了,但是报错
- 缺少libfontconfig.so (照着上面节奏来,主要文件都在/usr/lib64里面,缺好几个)
[root@ ~]# whereis libfontconfig libfontconfig: /usr/lib64/libfontconfig.so [root@ ~]# cp /usr/lib64/libfont* /home/myfont/lib64 [root@ ~]# cp /usr/lib64/libfreetype.so.6 /home/myfont/lib64 [root@ ~]# cp /usr/lib64/libpng15.so.15 /home/myfont/lib64 [root@ ~]# docker cp /home/myfont/lib64/ adw15dsa5e:/usr/
- 执行
fc-list
,提示Fontconfig error: cannot load default config file
, 这个文件在/etc/fonts/目录,忘记怎么查到了,应该是网上搜的[root@ ~]# docker cp /etc/fonts/ adw15dsa5e:/etc/
- 执行
fc-list
,不报错了,但是也没有语言列表。拷贝/usr/share/fonts/目录[root@ ~]# docker cp /usr/share/fonts/ adw15dsa5e:/usr/share/
- 齐活了,终于正常了
- 缺少libfontconfig.so (照着上面节奏来,主要文件都在/usr/lib64里面,缺好几个)
总结
感觉没啥用,无用的知识又多了一种,不过在纯内网能用就行了。没有docker的环境,命令天天不用天天忘,想哭…