ceb2Pdf.exe实现ceb文件转pdf,内网离线安装wine(手动编译32位)实现在centos(linux)上运行window程序exe程序,解决wine : Z:\xxx EXE格式无效

简介: 最近项目需要实现ceb文件在线预览,之前并没见过这格式的文件,一搜发现果然不简单,这破东西还不太好弄在线预览,经过查找发现只有windows版本的cebToPdf.exe程序可以转换成pdf再进行预览,但是我们服务器是centos(内网)啊,所以就有了该篇文章。

背景

最近项目需要实现ceb文件在线预览,之前并没见过这格式的文件,一搜发现果然不简单,这破东西还不太好弄在线预览,经过查找发现只有windows版本的cebToPdf.exe程序可以转换成pdf再进行预览,但是我们服务器是centos(内网)啊,所以就有了该篇文章。


cebToPdf.exe程序及其测试文件下载地址:https://download.csdn.net/download/baikunlong/86782073


wine我用的6.0,下载地址:https://download.csdn.net/download/baikunlong/86782559


1 外网机器操作

不想操作的可直接下我整理好的https://download.csdn.net/download/baikunlong/86782582

# 安装工具包,里面包含了repotrack(用于下载各种依赖)
yum -y install yum-utils


使用 repotrack 下载所需依赖

repotrack -p rpms libX11-devel freetype-devel zlib-devel libxcb-devel alsa-lib-devel.i686 libsndfile-devel.i686 readline-devel.i686 glib2.i686 glibc-devel.i686 libgcc.i686 libstdc++-devel.i686 pulseaudio-libs-devel.i686 cmake audiofile-devel.i686 freeglut-devel.i686 lcms-devel.i686 libieee1284-devel.i686 openldap-devel.i686 unixODBC-devel.i686 sane-backends-devel.i686 fontforge libgphoto2-devel.i686 isdn4k-utils-devel.i686 mesa-libGL-devel.i686 mesa-libGLU-devel.i686 libXxf86dga-devel.i686 libXxf86vm-devel.i686 giflib-devel.i686 cups-devel.i686 gsm-devel.i686 libv4l-devel.i686 fontpackages-devel ImageMagick-devel.i686 libX11-devel.i686 docbook-utils-pdf libtextcat tex-cm-lgc alsa-lib-devel audiofile-devel.i686 audiofile-devel cups-devel.i686 cups-devel dbus-devel.i686 dbus-devel fontconfig-devel.i686 fontconfig-devel freetype.i686 freetype-devel.i686 freetype-devel giflib-devel.i686 giflib-devel lcms-devel.i686 lcms-devel libICE-devel.i686 libICE-devel libjpeg-turbo-devel.i686 libjpeg-turbo-devel libpng-devel.i686 libpng-devel libSM-devel.i686 libSM-devel libusb-devel.i686 libusb-devel libX11-devel.i686 libX11-devel libXau-devel.i686 libXau-devel libXcomposite-devel.i686 libXcomposite-devel libXcursor-devel.i686 libXcursor-devel libXext-devel.i686 libXext-devel libXi-devel.i686 libXi-devel libXinerama-devel.i686 libXinerama-devel libxml2-devel.i686 libxml2-devel libXrandr-devel.i686 libXrandr-devel libXrender-devel.i686 libXrender-devel libxslt-devel.i686 libxslt-devel libXt-devel.i686 libXt-devel libXv-devel.i686 libXv-devel libXxf86vm-devel.i686 libXxf86vm-devel mesa-libGL-devel.i686 mesa-libGL-devel mesa-libGLU-devel.i686 mesa-libGLU-devel ncurses-devel.i686 ncurses-devel openldap-devel.i686 openldap-devel openssl-devel.i686 openssl-devel zlib-devel.i686 pkgconfig sane-backends-devel.i686 sane-backends-devel xorg-x11-proto-devel glibc-devel.i686 prelink fontforge flex bison libstdc++-devel.i686 pulseaudio-libs-devel.i686 gnutls-devel.i686 libgphoto2-devel.i686 isdn4k-utils-devel.i686 gsm-devel.i686 samba-winbind libv4l-devel.i686 cups-devel.i686 libtiff-devel.i686 gstreamer-devel.i686 gstreamer-plugins-base-devel.i686 gettext-devel.i686


-p rpms意思为下载的依赖全部放在当前目录下的rpms目录下,如没有rpms目录会自动创建


其中lcms-devel.i686用了阿里和网易的yum源都没找到,索性不管了,没有影响后续使用。


这里说个下载可能会遇到的网络问题,虚拟机的网络明明很畅通,但是死活就总是超时,然后重新执行命令,下好几个又超时,虽然在坚持不懈的努力下还是下完了,但是途中我在自己的阿里云服务器上面去下,嗖嗖嗖的就下完了。。。


最后虚拟机下完了有951个文件,阿里云服务器下完后918个文件,不过因为阿里云的先下完,我就直接用的918这个,附件地址:https://download.csdn.net/download/baikunlong/86782582

16bef43e208f4583a7e7ececc65149a6.png

02736467ae43402a9e19859acdc9bd7c.png


2 内网离线安装wine

把下载好的wine压缩包,rpm依赖包,传到内网服务器

所有rpm进行安装:

tar -zxf wine-rpms.tgz
cd wine/
rpm -ivh *.rpm --force --nodeps


wine安装:

xz -d wine-6.0.tar.xz
tar -xf wine-6.0
cd wine-6.0
mkdir wine32
cd wine32
../configure --enable-win32 # 这里一定是32位
make && make install


3 运行测试 && 报错解决

安装完成后,我们可以直接执行下面命令查看版本

wine --version


然后开始转换ceb文件测试。如果你之前安装过wine,那么很可能会不幸运和我一样遇到如下报错:

wine: '/root/.wine' is a 64-bit installation, it cannot be used with a 32-bit


这时我们要清理一下该文件:

rm -rf ~/.wine


然后再次执行:

b234932c3d874c9ea3173b591ab97a16.png

可以看到已经转换成功了,该pdf也是打开正常的。


在最后说一下为啥要安装32位的wine和为啥安装了32位wine后我却用的64文件夹下的exe。


1 为啥要安装32位的wine

因为两个ceb2pdf.exe都是32位的:

a747b6f10c354f7382b2c8ac1dda6e1a.png

所以之前只要你是在线yum install wine的,肯定报错wine : Z:\xxx EXE格式无效,对比两个文件夹,就dll大小不一样,exe其实是一样的。


2 为啥安装了32位wine后我却用的64文件夹下的exe

因为执行32下的exe报dll找不到。。。


结尾

别看没多少内容,但是花了两天踩坑。。。

目录
相关文章
|
2月前
|
安全 Linux iOS开发
Nessus Professional 10.10 Auto Installer for RHEL 10, AlmaLinux 10, Rocky Linux 10 - Nessus 自动化安装程序
Nessus Professional 10.10 Auto Installer for RHEL 10, AlmaLinux 10, Rocky Linux 10 - Nessus 自动化安装程序
166 6
Nessus Professional 10.10 Auto Installer for RHEL 10, AlmaLinux 10, Rocky Linux 10 - Nessus 自动化安装程序
|
8月前
|
Linux Shell
在Linux、CentOS7中设置shell脚本开机自启动服务
以上就是在CentOS 7中设置shell脚本开机自启动服务的全部步骤。希望这个指南能帮助你更好地管理你的Linux系统。
656 25
|
6月前
|
Oracle 关系型数据库 Linux
MyEMS开源系统安装之CentOS/RHEL/Rocky/AlmaLinux/Oracle Linux
本指南介绍如何在CentOS/RHEL/Rocky/AlmaLinux/Oracle Linux服务器上部署MyEMS开源能源管理系统。内容涵盖系统准备、数据库配置、多个MyEMS服务(如myems-api、myems-admin、myems-modbus-tcp等)的安装与配置,以及Nginx服务器设置和防火墙规则调整。通过完成所有步骤,您将能够访问MyEMS Admin UI和Web UI,默认端口分别为8001和80,初始登录凭据已提供。
319 0
|
8月前
|
安全 Linux 网络安全
在Linux(CentOS和AWS)上安装更新的git2的方法并配置github-ssh
经过以上这些步骤,你现在就能在GitHub上顺利往返,如同海洋中的航海者自由驰骋。欢迎你加入码农的世界,享受这编程的乐趣吧!
349 10
|
4月前
|
存储 Ubuntu Linux
VMware-安装CentOS系统教程及安装包
虚拟机相当于是一个独立于你电脑的环境,在这个环境上面,你可以安装Linux、Windows、Ubuntu等各个类型各个版本的系统,在这个系统里面你不用担心有病读等,不用担心文件误删导致系统崩溃。 虚拟机也和正常的电脑系统是一样的,也可以开关机,不用的时候,你关机就可以了,也不会占用你的系统资源,使用起来还是比较方便 这里也有已经做好的CentOS 7系统,下载下来解压后直接用VMware打开就可以使用
795 69
|
3月前
|
存储 分布式计算 Linux
安装篇--CentOS 7 虚拟机安装
VMware 装 CentOS 7 不知道从哪下手?这篇超详细图文教程手把手教你在 VMware Workstation 中完成 CentOS 7 桌面系统的完整安装流程。从 ISO 镜像下载、虚拟机配置,到安装图形界面、设置用户密码,每一步都有截图讲解,适合零基础新手快速上手。装好之后无论你是要搭 Hadoop 集群,还是练 Linux ,这个环境都够你折腾一整天!
1150 2
|
4月前
|
Ubuntu Linux 索引
Centos 7、Debian及Ubuntu系统中安装和验证tree命令的指南。
通过上述步骤,我们可以在CentOS 7、Debian和Ubuntu系统中安装并验证 `tree`命令。在命令行界面中执行安装命令,然后通过版本检查确认安装成功。这保证了在多个平台上 `tree`命令的一致性和可用性,使得用户无论在哪种Linux发行版上都能使用此工具浏览目录结构。
400 78
|
3月前
|
安全 关系型数据库 MySQL
CentOS 7 yum 安装 MySQL教程
在CentOS 7上安装MySQL 8,其实流程很清晰。首先通过官方Yum仓库来安装服务,然后启动并设为开机自启。最重要的环节是首次安全设置:需要先从日志里找到临时密码来登录,再修改成你自己的密码,并为远程连接创建用户和授权。最后,也别忘了在服务器防火墙上放行3306端口,这样远程才能连上。
610 16
|
5月前
|
Linux 网络安全 Apache
针对在Centos/Linux安装Apache过程中出现的常见问题集锦
以上每个问题的解决方案应深入分析错误日志、系统消息和各种配置文件,以找到根本原因并加以解决。务必保持系统和Apache软件包更新到最新版本,以修复已知的bugs和安全漏洞。安装和管理Web服务器是一项需要细致关注和不断学习的任务。随着技术的发展,推荐定期查看官方文档和社区论坛,以保持知识的更新。
249 80