最近实现文档搜索,采用的是阿里的ADB全文索引相关实现,但是文档相关资源在我们的在线协同系统内部,如何把资源存入ADB呢,这里采用的是有文档变更,把资源信息填入异步任务来实现,而异步任务接入了docker动态扩容,所以需要在docker内安装开源openoffice实现doc转docx xls转xlsx的动作,然后python相关库实现内容的存入ADB以便搜索查询,下面是安装软件相关步骤:
1、先卸载LibreOffice(docker一般没有不管):
apt-get remove --purge libreoffice*
apt-get clean
apt-get autoremove
2、下载
这里选择的是deb方式(rpm不适合Ubuntu):
Apache OpenOffice - Official Download
tar -xvzf Apache_OpenOffice_4.1.5_Linux_x86-64_install-deb_zh-CN.tar.gz(使用TAB)
cd zh-CN/DEBS/
dpkg -i *.deb
cd desktop-integration/
dpkg -i openoffice4.1-debian-menus_4.1.5-9785_all.deb(使用TAB)
3、运行(docker默认root启动)
cd /opt/openoffice4/program/
nohup soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard > /dev/null 2>&1 &
//此处host可以更改为服务器IP地址,然后通过程序远程连接openoffice
但是到这里,运行soffice命令发现提示
error while loading shared libraries: libXext.so.6: cannot open shared object file: No such file or directory
主要是JDK未安装,运行去掉后台运行可以发现
所以开始离线安装JDK
下载jdk
上传到docker内,使用docker cp
解压 tar zxvf jdk-8u231-linux-x64.tar.gz
注意和环境变量一样的位置 mkdir -p /java/jdk1.8.0_351
修改环境变量 vi /etc/profile(没有vi可以安装,但是我这里是python基础镜像很精简,就采用外面编辑,cp进去,但是注意查看原来的内容 先cp出来追加再进去即可)
export JAVA_HOME=/java/jdk1.8.0_351 //(这个和你下载的一致哦)
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
执行命令生效
source /etc/profile
查看是否安装正确
java -version
然后再次运行,查看是否有错误,如果说有错误,例如提示缺少共享库啥的,安装即可,不过根据你的镜像情况,精简的建议直接更换镜像为centos 再安装相关的服务即可。