执行命令后,libreoffice
我收到以下错误消息。
/usr/lib/libreoffice/program/soffice.bin: symbol lookup error: /lib/x86_64-linux-gnu/libcairo.so.2: undefined symbol: FT_Done_MM_Var
从桌面环境启动它不会显示任何内容。
我尝试重命名~/.config/libreoffice
以重置用户设置,但没有任何改变。~/.config/libreoffice
不过,创建了一个新文件夹。
在我将 Ubuntu 重新安装到最新版本 20.04 后,我开始收到此错误。我将主文件夹完整地保存在单独的驱动器上,只是在安装过程中格式化了操作系统驱动器。
答案1
将变量设置LD_PRELOAD
为指向不同的库解决了该问题。也就是说,以下命令对我有用。
LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libfreetype.so.6 libreoffice
因此,为了能够从桌面环境运行 LibreOffice,我添加了环境变量导出行~/.profile
。
export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libfreetype.so.6
但是,这个解决方案对我来说似乎有点不靠谱。如果能有一个更合适的解决方案就更好了。
答案2
我在 ubuntu 20.04 上遇到了类似的问题,错误是(undefined symbol: FT_Get_Var_Design_Coordinates
)
似乎 libreoffice 正在从 graalvm 搜索 libfreetype。Libreoffice 将 JAVA_HOME 设置存储在javasettings_Linux_X86_64.xml
名为~/.config/libreoffice
你可以通过运行来找到它
find ~/.config/libreoffice -name javasettings_Linux_X86_64.xml
1-尝试重命名文件并运行libreoffice --calc
文件,该文件将自动生成,这可能会有效。
2- 对我有用的方法是删除javasettings_Linux_X86_64.xml
并下载 java 11,并将 JAVA_HOME 临时指向 java 11,然后运行,libreoffice --calc
当时我使用 java 8,所以更高版本也可能有效,但我已经尝试过 11。我把 java 11 留在原处,但之后将 JAVA_HOME 指向 8(如果您不需要当前 java 版本来做其他事情,您可以保留 java 11)
文件中javasettings_Linux_X86_64.xml
有以下内容:
<vendor>AdoptOpenJDK</vendor>
<location>file:///opt/jdk-11.0.4+11</location>
<version>11.0.4</version>
一切似乎都运行良好,我希望它能够帮助其他人。