在CentOS上离线安装libgdiplus

ASP.NET Core MVC的项目需要处理图片,部署到CentOS 7上面时会报“The type initializer for ‘Gdip‘ threw an exception”,需要安装libgdiplus。
做为linux门外汉,虽然网上已经有不少相关内容,还是摸索了不少时间,记录一下。
感谢CentOS7离线安装神器yumdownloader一文的帮助,主要内容均来自此文。
首先在虚拟机上安装CentOS7,需要借用这台能上网的CentOS7虚拟机下载离线安装包。并且要保证这台虚拟机和要部署的目标服务器环境相同,避免下载安装包时遗漏了某些依赖包。
运行以下命令安装yumdownloader

yum install yum-utils -y

下载EPEL最新发布包:epel-release-7-14.noarch.rpm并安装,否则yumdownloader找不到libgdiplus的离线安装包。

rpm -ivh epel-release-7-14.noarch.rpm

下载libgdiplus离线安装包

yumdownloader --destdir=./libgdiplus --resolve libgdiplus.x86_64

下载时注意一下,在最小化安装的CentOS7上面,libgdiplus一共是33个包文件,检查一下是否有遗漏,防止下载安装包的虚拟机上已经安装了某些依赖包,导致下载不完整。
将下载的安装包压缩打包

tar zcf libgdiplus.tar.gz libgdiplus

将压缩包上传到目标服务器并解压

tar zxf libgdiplus.tar.gz

CentOS7离线安装神器yumdownloader一文中是使用createrepo制作离线源,但我按照文中的方法在无网的CentOS中运行yum install libgdiplus -y命令时,始终报can't find a valid baseurl for repo的错误,不知道怎么解决。
无奈之下,我采用了笨办法,用rpm命令手动一个个安装。因为包和包之间有依赖关系,安装顺序如下:

rpm -ivh mesa-libglapi-18.3.4-12.el7_9.x86_64.rpm
rpm -ivh libxshmfence-1.2-1.el7.x86_64.rpm
rpm -ivh libjpeg-turbo-1.2.90-8.el7.x86_64.rpm
rpm -ivh libglvnd-1.0.1-0.8.git5baa1e5.el7.x86_64.rpm
rpm -ivh fontpackages-filesystem-1.44-8.el7.noarch.rpm
rpm -ivh libICE-1.0.9-9.el7.x86_64.rpm
rpm -ivh libwayland-server-1.15.0-1.el7.x86_64.rpm
rpm -ivh mesa-libgbm-18.3.4-12.el7_9.x86_64.rpm
rpm -ivh libSM-1.2.2-2.el7.x86_64.rpm
rpm -ivh dejavu-fonts-common-2.33-6.el7.noarch.rpm
rpm -ivh dejavu-sans-fonts-2.33-6.el7.noarch.rpm
rpm -ivh fontconfig-2.13.0-4.3.el7.x86_64.rpm
rpm -ivh libX11-common-1.6.7-4.el7_9.noarch.rpm
rpm -ivh libXau-1.0.8-2.1.el7.x86_64.rpm
rpm -ivh libxcb-1.13-1.el7.x86_64.rpm
rpm -ivh libX11-1.6.7-4.el7_9.x86_64.rpm
rpm -ivh libXext-1.3.3-3.el7.x86_64.rpm
rpm -ivh libXrender-0.9.10-1.el7.x86_64.rpm
rpm -ivh libXfixes-5.0.3-1.el7.x86_64.rpm
rpm -ivh libXdamage-1.1.4-4.1.el7.x86_64.rpm
rpm -ivh libXxf86vm-1.1.4-1.el7.x86_64.rpm
rpm -ivh --nodeps libglvnd-glx-1.0.1-0.8.git5baa1e5.el7.x86_64.rpm
rpm -ivh mesa-libGL-18.3.4-12.el7_9.x86_64.rpm
rpm -ivh giflib-4.1.6-9.el7.x86_64.rpm
rpm -ivh jbigkit-libs-2.0-11.el7.x86_64.rpm
rpm -ivh libtiff-4.0.3-35.el7.x86_64.rpm
rpm -ivh pixman-0.34.0-1.el7.x86_64.rpm
rpm -ivh libexif-0.6.22-2.el7_9.x86_64.rpm
rpm -ivh libwayland-client-1.15.0-1.el7.x86_64.rpm
rpm -ivh --nodeps libglvnd-egl-1.0.1-0.8.git5baa1e5.el7.x86_64.rpm
rpm -ivh mesa-libEGL-18.3.4-12.el7_9.x86_64.rpm
rpm -ivh cairo-1.15.12-4.el7.x86_64.rpm
rpm -ivh libgdiplus-2.10-10.el7.x86_64.rpm

其中libglvnd-glx和 mesa-libGL,libglvnd-egl和mesa-libEGL有一个循环依赖,即A依赖B,B又依赖A,因此安装libglvnd-glx和libglvnd-egl时加了--nodeps参数,即安装时忽略依赖关系。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值