Ubuntu Kylin 无网环境下安装LibreOffice

公司有个项目要实现一个word文档预览的功能,经过一番调用后最终确定了两个组件Libreoffice和OpenOffice,经过对比后感觉libreOffice更成熟一点。当时估计这个小功能,一上午就搞定了,但最终花了3天才搞定,特意记录下踩坑过程,以供后人参考。

当时为啥这么乐观?

看看LibreOffice的官网,有现成的deb安装包(麒麟系统和Ubuntu类似),只要下载下来拷贝到服务器上只要简单的执行下 sudo dpkg -i *.deb 命令就搞定了。


悲催的一天

第二天上午一边喝着咖啡,一边准备安装了,安装的过程闭着眼都能完成 ,先用tar解压,然后dpkg 安装,但当按下回车键的时候才意识到忽略了一个重要的点,忘记看服务器是什么架构了,果然屏幕上提示:

软件包体系架构(amd64)与本机系统体系结构(arm64)不符dpkg: 处理归档 libreoffice6.3-en-us_6.3.4.2-2_amd64.deb (--install)时出错:软件包体系架构(amd64)与本机系统体系结构(arm64)不符dpkg: 处理归档 libreoffice6.3-impress_6.3.4.2-2_amd64.deb (--install)时出错:软件包体系架构(amd64)与本机系统体系结构(arm64)不符

从服务器上下载的是amd架构的,而麒麟服务器是arm架构的,而官网没有提供安装包,因为服务不能上网,所以没法用apt install这样的命令,看来只能通过源码编译了。编译的过程是痛苦的,依赖这个软件依赖的包太多了


一直搞到下班也没把依赖包找全,感觉此路不通,源码编译的方案不可行

又是忙碌的一天

既然源码编译不可行,那么通过去deb镜像上把所有这些安装的依赖包及LibreOffice包全部下载下来再安装,感觉这个方案可行,说干就干,依赖包有几百个,估计的下载到明年啦,程序员吗怎么可能那么傻,写个下载包的工具下载吧,经过一上午的折腾终于包300个相关版本的包都下载下来了,又是一边喝着咖啡,一边敲入dpkg命令,然后令人沮丧的事又出现了,满屏幕都是找不到依赖错误。完了此路又不通。

https://packages.debian.org/sid/libreoffice

终于安装成功了

仔细想想感觉还是对这个Ubuntu系统不熟悉,以前都是用Centos的,这么搞的话完全是蛮力,太费劲了。仔细考虑了,感觉太太傻了,完全可以搞一台能上网的机器,只要这个机器的架构和系统都和服务器一样不就行了,然后简单的用apt命令就能把依赖包都下载到本地缓存中

-d参数只下载依赖包但不安装,会下载到/var/cache/apt/archives下面

/apt/archivesapt install libreoffice -d

但是新的问题又出现了,默认镜像地址都是国外的,索引速度奇慢,而且有的地址还被和谐了,所以只能编辑了镜像源文件,修改成阿里或163的镜像

vi /etc/apt/sources.list

在文件中加入

# https://opsx.alibaba.com/mirrordeb https://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse deb https://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse deb https://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse deb https://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse deb https://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

然后执行更新索引

apt update

但还是提示无法更新arm包索引,这就不对了,大家都可以,为啥我这就不行了,肯定哪里出问题了,仔细查看了错误信息,有一部分索引更新成功了,但就是arm索引更新不了,那只有一种可能了,就是上面的镜像地址里没有arm的镜像地址经过一番百度后,终于在某篇文章里找到了答案,arm架构下镜像要将ubuntu改成ubuntu-ports即可,然后再次更新索引成功了

ubuntu 16.04 配置如下deb http://mirrors.aliyun.com/ubuntu-ports/ xenial maindeb-src http://mirrors.aliyun.com/ubuntu-ports/ xenial main deb http://mirrors.aliyun.com/ubuntu-ports/ xenial-updates maindeb-src http://mirrors.aliyun.com/ubuntu-ports/ xenial-updates main deb http://mirrors.aliyun.com/ubuntu-ports/ xenial universedeb-src http://mirrors.aliyun.com/ubuntu-ports/ xenial universedeb http://mirrors.aliyun.com/ubuntu-ports/ xenial-updates universedeb-src http://mirrors.aliyun.com/ubuntu-ports/ xenial-updates universe deb http://mirrors.aliyun.com/ubuntu-ports/ xenial-security maindeb-src http://mirrors.aliyun.com/ubuntu-ports/ xenial-security maindeb http://mirrors.aliyun.com/ubuntu-ports/ xenial-security universedeb-src http://mirrors.aliyun.com/ubuntu-ports/ xenial-security universe

剩下就不用说了,顺利的将deb包下载到了apt缓存目录下,然后用u盘拷贝到服务器上再次执行dpkg命令成功安装上了libreoffice,这个过程也可能会提示依赖问题,需要执行以下 sudo apt install -f -y 命令解决下依赖

如果安装成功,会安装到 /usr/lib/libreoffice目录下,转换一个文档试试

#windows

soffice.exe --headless --invisible --convert-to pdf e:\tmp\123.docx --outdir e:\tmp

 linux

/usr/bin/libreoffice6.3 --headless --invisible --convert-to pdf /tmp/123.docx --outdir /tmp

终极解决方案

另一种更简单的解决方案,我想聪明的小伙伴,一定想到了,那就是docker

先在能上网的机器上制造镜像文件:

首先先编写一个Dockerfile文件,例如:

FROM ubuntu16.04

...

RUN apt-get install -y libreoffice

....

编译

docker build -t libreoffice:6.3

查看镜像

docker images

导出镜像

docker save 38463a656de8> /root/libreoffice.tar

在无网服务器上导入镜像

docker load < /root/libreoffice.tar

启动docker

docker run --name libreoffice -v /opt/libreoffice/data:/opt/data -p 8089:8089 -d  libreoffice:6.3 


一些思考

在项目开发过程中不能忽略任何细节,否则会造成盲目的乐观,造成项目延时;还有就是不能埋头把所有方案都试一遍,虽然最终找到了一个解决方案,但中间过程肯定耗费不少时间,所以遇到问题一开始就要把所有解决方案都列举出来,综合比较后选择一个性价比最高的方案。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,724评论 6 479
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,104评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,142评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,086评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,076评论 5 370
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,914评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,220评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,871评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,318评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,834评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,951评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,574评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,162评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,162评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,383评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,349评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,652评论 2 343

推荐阅读更多精彩内容