centos部署libreoffice,宿主机及docker两种部署方式

因为最近在研究部署libreoffice,在此将自己的部署做一个记录,也希望能对其他人有所帮助,centos6.9最高只能部署到5.4,centos7可部署7.5的版本,docker部署的话,直接使用dockerfile构建一个基础镜像即可,dockerfile文件在最下方
一、配置yum,yum源可正常使用可忽略此步骤
 1、修改配置文件
    yum clean all 
    curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-6.10.repo
    sed -i 's|^mirrorlist=|#mirrorlist=|g' /etc/yum.repos.d/*.repo
    sed -i 's|^#baseurl=http://mirror.centos.org|baseurl=https://mirrors.aliyun.com|g' /etc/yum.repos.d/*.repo
    yum makecache fast
 2、此步骤较危险,必须提前备份
    (1)备份cp -rp /etc/yum.repos.d/  /opt/bak-yum_repos_d-20250114
    (2)清空原先yum配置:rm -rf /etc/yum.repos.d/*
    (3)重新加载yum配置文件:curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-6.10.repo
    (4)重载yum:yum clean all && yum makecache fast
    (5)检测:yum repolist
    
二、安装依赖及配置基础环境
    yum install -y ca-certificates yum-utils
    yum reinstall -y ca-certificates
    yum install -y glibc-common
    yum install -y tzdata && ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime #注:此项为修改时区,如果时区正确请忽略此步骤
    yum install -y fontconfig wqy-microhei-fonts wqy-zenhei-fonts xorg-x11-fonts-Type1
    yum install -y wget
    yum install -y cups-libs
    yum install -y dbus-glib
    yum install -y cairo
    yum install -y desktop-file-utils shared-mime-info
    yum install -y libXrender libXinerama libXt libXext libfreetype libcairo libcups libX11-xcb libnss3
    localedef -c -f UTF-8 -i zh_CN zh_CN.utf8
    echo "LANG=zh_CN.UTF-8" > /etc/locale.conf
    echo 'LANG=zh_CN.UTF-8' >> ~/.bashrc
    echo 'LC_ALL=zh_CN.UTF-8' >> ~/.bashrc
    export LANG=zh_CN.UTF-8
    export LC_ALL=zh_CN.UTF-8
    source ~/.bashrc

三、部署libreoffice服务
1、tar配置java环境(有java环境可忽略此步骤)
    (1)下载tar包:cd /tmp && wget https://kkview.cn/resource/server-jre-8u251-linux-x64.tar.gz
    (2)解压并配置路径:tar -zxf /tmp/server-jre-8u251-linux-x64.tar.gz && mv /tmp/jdk1.8.0_251 /usr/local/
    (3)配置环境变量
        echo 'export JAVA_HOME=/usr/local/jdk1.8.0_251' | tee -a /etc/profile > /dev/null
        echo 'export CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar' | tee -a /etc/profile > /dev/null
        echo 'export PATH=$PATH:$JAVA_HOME/bin' | tee -a /etc/profile > /dev/null
        source /etc/profile
    (4)测试:java -version,出现如下信息代表java
        java version "1.8.0_251"
        Java(TM) SE Runtime Environment (build 1.8.0_251-b08)
        Java HotSpot(TM) 64-Bit Server VM (build 25.251-b08, mixed mode)

    2、rpm配置java环境
    (1)上传rpm包
    (2)安装jdk:rpm -ivh jdk-8u251-linux-x64.rpm
    (3)测试:java -version出现如下信息代表java环境部署成功
        java version "1.8.0_251"
        Java(TM) SE Runtime Environment (build 1.8.0_251-b08)
        Java HotSpot(TM) 64-Bit Server VM (build 25.251-b08, mixed mode)

    3、部署libreoffice
    (1)下载tar包:cd /tmp && wget https://downloadarchive.documentfoundation.org/libreoffice/old/5.4.7.2/rpm/x86_64/LibreOffice_5.4.7.2_Linux_x86-64_rpm.tar.gz -O /tmp/libreoffice_rpm.tar.gz
    (2)配置下载:tar -zxf /tmp/libreoffice_rpm.tar.gz 
    (3)cd /tmp/LibreOffice_5.4.7.2_Linux_x86-64_rpm/RPMS
    (4)rpm -ivh --force *.rpm

四、基本检测,将docx转换为pdf文档
    /opt/libreoffice5.4/program/soffice --headless --convert-to pdf --outdir /opt /opt/input.docx
    第一个/opt为输出目录,转换成功的pdf文件会存放在此目录
    第二个/opt/input.docx为需要转换的文件

libreoffice下载地址:
https://downloadarchive.documentfoundation.org/libreoffice/old/7.5.3.2/rpm/x86_64/LibreOffice_7.5.3.2_Linux_x86-64_rpm.tar.gz
https://downloadarchive.documentfoundation.org/libreoffice/old/6.4.7.2/rpm/x86_64/LibreOffice_6.4.7.2_Linux_x86-64_rpm.tar.gz
https://downloadarchive.documentfoundation.org/libreoffice/old/5.4.7.2/rpm/x86_64/LibreOffice_5.4.7.2_Linux_x86-64_rpm.tar.gz
https://downloadarchive.documentfoundation.org/libreoffice/old/4.4.7.2/rpm/x86_64/LibreOffice_4.4.7.2_Linux_x86-64_rpm.tar.gz

centos6.9 dockerfile部署

文件如下:

FROM centos:6.9
COPY fonts/* /usr/share/fonts/chinese/
RUN yum clean all && \
    curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-6.10.repo && \
    sed -i 's|^mirrorlist=|#mirrorlist=|g' /etc/yum.repos.d/*.repo && \
    sed -i 's|^#baseurl=http://mirror.centos.org|baseurl=https://mirrors.aliyun.com|g' /etc/yum.repos.d/*.repo && \
    yum makecache fast && \
    yum install -y ca-certificates yum-utils && \
    yum reinstall -y ca-certificates && \
    yum install -y glibc-common && \
    localedef -c -f UTF-8 -i zh_CN zh_CN.utf8 && \
    echo "LANG=zh_CN.UTF-8" > /etc/locale.conf && \
    echo "LC_ALL=zh_CN.UTF-8" && \
    export LANG=zh_CN.UTF-8 && \
    export LC_ALL=zh_CN.UTF-8 && \
    yum install -y tzdata && ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
    yum install -y fontconfig wqy-microhei-fonts wqy-zenhei-fonts xorg-x11-fonts-Type1 && \
    yum install -y cups-libs && \
    yum install -y dbus-glib && \
    yum install -y cairo && \
    yum install -y wget && \
    cd /tmp && \
    wget https://kkview.cn/resource/server-jre-8u251-linux-x64.tar.gz && \
    tar -zxf /tmp/server-jre-8u251-linux-x64.tar.gz && mv /tmp/jdk1.8.0_251 /usr/local/ && \
    yum install -y libXrender libXinerama libXt libXext libfreetype libcairo libcups libX11-xcb libnss3 && \
    wget https://downloadarchive.documentfoundation.org/libreoffice/old/5.4.7.2/rpm/x86_64/LibreOffice_5.4.7.2_Linux_x86-64_rpm.tar.gz -O /tmp/libreoffice_rpm.tar.gz && \
    tar -zxf /tmp/libreoffice_rpm.tar.gz && \
    cd /tmp/LibreOffice_5.4.7.2_Linux_x86-64_rpm/RPMS && \
    rpm -ivh --force *.rpm && \
    rm -rf /tmp/* && \
    yum clean all && \
    fc-cache -fv
ENV JAVA_HOME=/usr/local/jdk1.8.0_251 \
    CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar \
    PATH=$PATH:$JAVA_HOME/bin \
    LANG=zh_CN.UTF-8 \
    LC_ALL=zh_CN.UTF-8
CMD ["/bin/bash"]

注:上方的COPY fonts/*复制的是wind字体包,防止中文乱码的,字体包可以直接拷贝wind上面的,不会的小伙伴可以参考一下将 Windows 上安装的字体库打包并发送给别人_百度知道

这里的centos7.9的环境:

FROM centos:7.9.2009
COPY fonts/* /usr/share/fonts/chinese/
RUN    yum clean all && \
    [ -e /etc/yum.repos.d/CentOS-Base.repo ] || curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo && \
    sed -i 's|^mirrorlist=|#mirrorlist=|g' /etc/yum.repos.d/*.repo && \
    sed -i 's|^#baseurl=http://mirror.centos.org|baseurl=https://mirrors.aliyun.com|g' /etc/yum.repos.d/*.repo && \
    yum makecache fast && \
    yum install -y ca-certificates yum-utils && \
    yum reinstall -y ca-certificates && \
    yum install -y glibc-common && \
    localedef -c -f UTF-8 -i zh_CN zh_CN.utf8 && \
    echo "LANG=zh_CN.UTF-8" > /etc/locale.conf && \
    echo "LC_ALL=zh_CN.UTF-8" && \
    export LANG=zh_CN.UTF-8 && \
    export LC_ALL=zh_CN.UTF-8 && \
    yum install -y tzdata && ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
    yum install -y fontconfig wqy-microhei-fonts wqy-zenhei-fonts xorg-x11-fonts-Type1 && \
    yum install -y cups-libs && \
    yum install -y dbus-glib && \
    yum install -y cairo && \
    yum install -y wget && \
    cd /tmp && \
    wget https://kkview.cn/resource/server-jre-8u251-linux-x64.tar.gz && \
    tar -zxf /tmp/server-jre-8u251-linux-x64.tar.gz && mv /tmp/jdk1.8.0_251 /usr/local/ && \
    yum install -y libXrender libXinerama libXt libXext libfreetype libcairo libcups libX11-xcb libnss3 && \
    wget https://downloadarchive.documentfoundation.org/libreoffice/old/5.4.7.2/rpm/x86_64/LibreOffice_5.4.7.2_Linux_x86-64_rpm.tar.gz -O /tmp/libreoffice_rpm.tar.gz && \
    tar -zxf /tmp/libreoffice_rpm.tar.gz && \
    cd /tmp/LibreOffice_5.4.7.2_Linux_x86-64_rpm/RPMS && \
    rpm -ivh --force *.rpm && \
    rm -rf /tmp/* && \
    yum clean all && \
    fc-cache -fv
ENV JAVA_HOME=/usr/local/jdk1.8.0_251 \
    CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar \
    PATH=$PATH:$JAVA_HOME/bin \
    LANG=zh_CN.UTF-8 \
    LC_ALL=zh_CN.UTF-8
CMD ["/bin/bash"]

其实6.9跟7.9的docker部署方式差别不大,唯一的差别可能就是依赖安装跟libreoffice版本的差别了。

从wind拷贝过来的字体包解压完后需要跟dockerfile处于同一目录,然后build一下就可以了

docker build -t 镜像名:版本号  .

镜像创建成功后,run一个容器出来,就可以开始使用啦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值