IronPDF Linux 兼容性及安装指南

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronPDF 支持 Linux 下的 .NET 8、7、6、5.NET Core 应用程序,以及 Docker、Azure、AWS、macOS 和 Windows。 (那是) 视窗

我们建议使用 .NET Core 3.1 和标记为 微软的 LTS 因为它们有长期的支持保证,而且一般都在 Linux 上经过了良好的测试。

在 Linux 上运行 IronPDF 无需更改代码。一般来说,IronPDF 开箱即可运行,这要归功于我们工程师数百小时的测试和配置。

Linux 支持非常重要,因为许多云服务(如 Azure Web Apps、Azure Functions、AWS EC2、AWS Lambda、Azure Devops Docker)都严重依赖 Linux。在 Iron Software,我们经常使用这些云工具,并了解到我们的许多企业和 SAAS 客户也是如此、

硬件规格

IronPDF 使用 Chromium 将 HTML 呈现为 PDF。Chromium 引擎以完美的像素渲染 PDF,可用于 Chrome 浏览器的打印功能。硬件规格主要用于运行 Chromium 引擎,它占用了大部分计算能力。

  • 最低:1 个内核和 1.75 GB 内存
  • 建议:2 个内核和 8 GB 或以上内存

官方支持的 Linux 发行版

我们正式支持并推荐以下最新的64位Linux操作系统,用于 "零配置 "安装IronPDF。

  • 乌班图 22
  • 乌班图 20
  • 乌班图 18
  • 乌班图 16
  • Debian 11 [目前 Microsoft Azure 默认 Linux 发行版]
  • Debian 10
  • CentOS 8
  • Fedora Linux 33

  • 亚马逊 AWS Linux 2 阅读 IronPdf 的 AWS Lambda 设置指南

请阅读下面的 "其他 Linux 发行版",了解在不受官方支持的 Linux 版本上安装 IronPdf 的建议。

我们建议使用微软的 官方 Docker 映像.部分支持其他 Linux 发行版,但可能需要使用 apt-get 手动配置。 参见Linux 的常见依赖模式本文件结尾处的"......"。

Linux 自动设置

默认设置 LinuxAndDockerDependenciesAutoConfig 为 true 会自动尝试安装 IronPDF 在 Linux 上运行的所有依赖项。首次 html 转 PDF 操作可能会比平时花费更多时间。

IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = true;
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = true;
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = True
VB   C#

Linux 优化的 NuGet 软件包

Install-Package IronPdf.Linux

在我们的 IronPDF 高级 NuGet 安装指南.

您可以使用这个经过 Linux 优化的软件包,甚至可以在 Windows 或 macOS 机器上进行开发。

或者,你也可以直接 下载 Linux 下的 DLL.

Docker + Linux 设置

请阅读我们的 有关在 Docker 上使用 IronPDF 的大量文档 如果您需要帮助设置将使用 IronPDF 的 Docker 映像,请访问

Ubuntu 兼容性

Ubuntu 是我们测试最多的 Linux 操作系统。这是因为在我们用于持续测试和部署的 Azure 基础架构中大量使用了 Ubuntu。该平台还支持 Microsoft .NET 和官方 Docker 映像。

乌班图 20

我们支持开箱即用的 Ubuntu 20,无需任何配置。

  • 支持基于ChromeWebKit的 HTML 转 PDF 渲染引擎
  • 正式支持.NET Core 3.1、5、6 (LTS)7 和 8 运行时间
  • 我们非正式地支持 Ubuntu 20 上的许多其他 .NET Core 运行时
  • 每次发布前,我们都会在该平台上运行超过 997 个单元测试

微软官方 Docker 映像:

Ubuntu 20 手动设置

如果您希望手动安装,或者您的应用程序无法使用 sudo admin 权限运行。

设置 IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = false;IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = false;`。

apt update
apt install -y libc6-dev
apt install -y libgtk2.0-0
apt install -y libnss3
apt install -y libatk-bridge2.0-0
apt install -y libx11-xcb1
apt install -y libxcb-dri3-0
apt install -y libdrm-common
apt install -y libgbm1
apt install -y libasound2
apt install -y libappindicator3-1
apt install -y libxrender1
apt install -y libfontconfig1
apt install -y libxshmfence1
apt install -y libgdiplus
apt install -y libva-dev

chmod 755 IronCefSubprocess
# (IronCefSubprocess is normally found at bin/runtimes/linux-x64/)
  • 下面提到的 IronCefSubprocess 是应用程序 bin 文件夹中的二进制文件。您可能需要指定准确的路径,该路径可能位于 binruntimes 子目录中。
  • 您可能需要 sudo 权限。

Ubuntu 18

我们支持 Ubuntu 18 开箱即用,无需任何配置。

  • 支持基于ChromeWebKit的 HTML 转 PDF 渲染引擎
  • 正式支持.NET Core 3.1 LTS.NET 5 运行时
  • 非官方支持 Ubuntu 18 甚至 16 上的许多其他 .NET Core 运行时
  • 每次发布前,我们都会在该平台上进行全面的烟雾测试

微软官方 Docker 映像:

Ubuntu 18 安装手册

如果您希望手动安装,或者您的应用程序无法使用 sudo admin 权限运行。

设置 IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = false;IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = false;`。

apt update
apt install -y libc6
apt install -y libc6-dev
apt install -y libgtk2.0-0
apt install -y libnss3
apt install -y libatk-bridge2.0-0
apt install -y libx11-xcb1
apt install -y libxcb-dri3-0
apt install -y libdrm-common
apt install -y libgbm1
apt install -y libasound2
apt install -y libappindicator3-1
apt install -y libxrender1
apt install -y libfontconfig1
apt install -y libxshmfence-dev

chmod 755 IronCefSubprocess
# (IronCefSubprocess is normally found at bin/runtimes/linux-x64/)

Ubuntu 16

我们仅对 Ubuntu 16 提供有限的非官方支持。Ubuntu 16 尚未经过 IronPdf 的严格测试。

Ubuntu 16上的.NET由微软官方支持,许多用户都表示可以与IronPdf一起使用。开发人员可能需要手动安装 apt-get 依赖项。

  • Chrome 和 WebKit** 通常使用手动配置。
  • .NET Core 3.1 LTS.NET 5运行时已获得微软对Ubuntu 16的支持。

  • 目前还没有适用于 Ubuntu 16 的微软官方 Docker 映像。

Ubuntu 16 安装手册

如果您希望手动安装,或者您的应用程序无法使用 sudo admin 权限运行。

设置 IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = false;IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = false;`。

apt update
apt install -y libc6-dev
apt install -y libgtk2.0-0
apt install -y libnss3
apt install -y libatk-bridge2.0-0
apt install -y libx11-xcb1
apt install -y libxcb-dri3-0
apt install -y libdrm-common
apt install -y libgbm1
apt install -y libasound2
apt install -y libappindicator3-1
apt install -y libxrender1
apt install -y libfontconfig1
apt install -y libxshmfence-dev

chmod 755 IronCefSubprocess
# (IronCefSubprocess is normally found at bin/runtimes/linux-x64/)

Debian 兼容性

Debian 是我们测试次数第二多的 Linux 操作系统。该平台还支持 Microsoft.NET 和官方 Docker 映像。

Debian 11

在 Visual Studio 中为 .NET 项目添加 Docker 支持时,微软使用的默认 Linux 发行版是 Debian 11。

我们支持开箱即用的 Debian 11,无需任何配置。

  • 支持基于ChromeWebKit的 HTML 转 PDF 渲染引擎
  • 正式支持.NET Core 3.1、5、6 (LTS)7 和 8 运行时间
  • 我们非正式地支持 Debian 11 上的许多其他 .NET Core 运行时
  • 每次发布前,我们都会在该平台上运行超过 997 个单元测试

微软官方 Docker 映像:

Debian 11 安装手册

如果您希望手动安装,或者您的应用程序无法使用 sudo admin 权限运行。

设置 IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = false;IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = false;`。

apt update
apt install -y libc6-dev
apt install -y libgtk2.0-0
apt install -y libnss3
apt install -y libatk-bridge2.0-0
apt install -y libx11-xcb1
apt install -y libxcb-dri3-0
apt install -y libdrm-common
apt install -y libgbm1
apt install -y libasound2
apt install -y libxkbcommon-x11-0
apt install -y libxrender1
apt install -y libfontconfig1
apt install -y libxshmfence1

chmod 755 IronCefSubprocess
# (IronCefSubprocess is normally found at bin/runtimes/linux-x64/)

Debian 10

我们支持开箱即用的 Debian 10,无需任何配置。

  • 支持基于ChromeWebKit的 HTML 转 PDF 渲染引擎
  • 正式支持.NET Core 3.1、5、6 (LTS)7 和 8 运行时间
  • 我们非正式地支持 Debian 10 上的许多其他 .NET Core 运行时
  • 每次发布前,我们都会在该平台上运行超过 997 个单元测试

微软官方 Docker 映像:

Debian 10 手动安装

如果您希望手动安装,或者您的应用程序无法使用 sudo admin 权限运行。

设置 IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = false;IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = false;`。

apt update
apt install -y libc6-dev
apt install -y libgtk2.0-0
apt install -y libnss3
apt install -y libatk-bridge2.0-0
apt install -y libx11-xcb1
apt install -y libxcb-dri3-0
apt install -y libdrm-common
apt install -y libgbm1
apt install -y libasound2
apt install -y libappindicator3-1
apt install -y libxrender1
apt install -y libfontconfig1
apt install -y libxshmfence1

chmod 755 IronCefSubprocess
# (IronCefSubprocess is normally found at bin/runtimes/linux-x64/)

Debian 9 及以下版本

Debian 9 未经过官方测试,因此无法与 IronPdf 兼容。 不过,Debian 9 上的 .NET 已获得微软官方支持,如果设置正确,可以与 IronPdf 一起使用。

(查看"Linux 的常见依赖模式本文件结尾处的"......"。).

在 Debian 9 上,微软没有针对 .NET Core 3.1 或 .NET 5.0 的官方 Docker 映像。 我们强烈建议迁移到 Debian 10。

CentOS 兼容性

我们非常喜欢并支持 CentOS。

CentOS 8 支持

我们支持开箱即用的 CentOS 8,无需任何配置。

  • 支持基于ChromeWebKit的 HTML 转 PDF 渲染引擎
  • 正式支持.NET Core 3.1、5、6 (LTS)7 和 8 运行时间
  • 我们非正式地支持 CentOS 上的许多其他 .NET Core 运行时
  • 每次发布前,我们都会在该平台上进行全面的烟雾测试

遗憾的是,微软没有在 CentOS 8 上提供 .NET Core 3.1 或 .NET 5.0 的官方 Docker 映像。

CentOS 8 手动安装

如果您希望手动安装,或者您的应用程序无法使用 sudo admin 权限运行。

设置 IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = false;IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = false;`。

dnf -y update
dnf -y install glibc-devel
dnf -y install nss
dnf -y install at-spi2-atk
dnf -y install libXcomposite
dnf -y install libXrandr
dnf -y install mesa-libgbm
dnf -y install alsa-lib
dnf -y install pango
dnf -y install cups-libs
dnf -y install libXdamage
dnf -y install libxshmfence

chmod 755 IronCefSubprocess
# (IronCefSubprocess is normally found at bin/runtimes/linux-x64/)

CentOS 7 及更低版本

CentOS 7 尚未经过测试,无法与 IronPdf 兼容。

不过,CentOS 7 上的 .NET 已得到微软的正式支持,如果设置正确,很可能与 IronPdf 一起使用。 (请阅读"Linux 的常见依赖模式"如下).

在 CentOS 7 上,微软没有为 .NET Core 3.1 或 .NET 5.0 提供官方 Docker 映像。

亚马逊 AWS Linux 2 兼容性

我们支持亚马逊 AWS Linux 2,它是 EC2 和 Lambda 等亚马逊云服务的基础。

  • 在亚马逊 AWS Linux 2 上,微软没有针对 .NET Core 3.1 或 .NET 5.0 的官方 Docker 映像。
  • 在开发 IronPDF 时,我们会手动测试 Amazon AWS Linux 2 的兼容性。

我们建议您阅读我们的 IronPDF AWS Lambda 指南,其中包含 IronPdf 在 AWS Lambda 上运行的 Docker 文件。

亚马逊 Linux 2 手动设置

如果您希望手动安装,或者您的应用程序无法使用 sudo admin 权限运行。

设置 IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = false;IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = false;`。

yum update -y
yum install -y pango.x86_64
yum install -y libXcomposite.x86_64
yum install -y libXcursor.x86_64
yum install -y libXdamage.x86_64
yum install -y libXext.x86_64
yum install -y libXi.x86_64
yum install -y libXtst.x86_64
yum install -y cups-libs.x86_64
yum install -y libXScrnSaver.x86_64
yum install -y libXrandr.x86_64
yum install -y GConf2.x86_64
yum install -y alsa-lib.x86_64
yum install -y atk.x86_64
yum install -y gtk3.x86_64
yum install -y ipa-gothic-fonts
yum install -y xorg-x11-fonts-100dpi
yum install -y xorg-x11-fonts-75dpi
yum install -y xorg-x11-utils
yum install -y xorg-x11-fonts-cyrillic
yum install -y xorg-x11-fonts-Type1
yum install -y xorg-x11-fonts-misc
yum install -y glibc-devel.x86_64
yum install -y at-spi2-atk.x86_64
yum install -y mesa-libgbm.x86_64
yum install -y libxkbcommon

chmod 755 IronCefSubprocess
# (IronCefSubprocess is normally found at bin/runtimes/linux-x64/)

还请阅读我们的官方支持文档 用于 AWS Lambda 的 IronPdf 包括在亚马逊云平台上的安装和登录。

Fedora Linux 兼容性

支持 Fedora Linux。

我们支持开箱即用、零配置的 Fedora Linux 33。

  • 支持基于ChromeWebKit的 HTML 转 PDF 渲染引擎
  • 正式支持.NET Core 3.1、5、6 (LTS)7 和 8 运行时间

  • 每次发布前,我们都会在该平台上进行全面的烟雾测试

手动 Fedora Linux 安装

如果您希望手动安装,或者您的应用程序无法使用 sudo admin 权限运行。

这可能对较旧或较新的 Fedora Linux 版本有帮助。

设置 IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = false;IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = false;`。

dnf -y install glibc-devel
dnf -y install nss
dnf -y install at-spi2-atk
dnf -y install libXcomposite
dnf -y install libXrandr
dnf -y install mesa-libgbm
dnf -y install alsa-lib
dnf -y install pango
dnf -y install cups-libs
dnf -y install libXdamage
dnf -y install libxshmfence

chmod 755 IronCefSubprocess
# (IronCefSubprocess is normally found at bin/runtimes/linux-x64/)

Alpine Linux 兼容性

不支持在 Alpine Linux 上运行 IronPDF。我们也希望能支持,但我们做不到。坦率地说,我们喜欢 Alpine,并希望这个项目能继续发展下去。截至 2023 年,Alpine 仍在使用过时的 "musl "C 语言库,这使得 chromium 开发人员还无法完全支持该操作系统。

在.NET 6中使用Alpine Docker和IronPdfEngine

IronPdf 提供了一个包含所有 IronPdf 功能的容器映像。这样,在 Alpine 上运行的项目就能通过连接 IronPdfEngine 容器访问 IronPdf 功能。

第 1 步:提取并运行 IronPdf 引擎 Docker 映像

在终端中执行以下命令,提取并运行 IronPdf Engine Docker 镜像:

docker pull ironsoftwareofficial/ironpdfengine
docker run -d -p 33350:33350 ironsoftwareofficial/ironpdfengine

步骤 2:设置控制台应用程序

创建一个以 .NET 6 为目标的新控制台应用程序。

使用 NuGet 包管理器安装 IronPdf.Slim NuGet 包。

其他 Linux 发行版

您也可以使用 apt-get hfsyum 为 Linux 手动安装 IronPDF 的先决条件。

这样,您就可以在许多不支持的 Linux 发行版上使用 IronPDF。

一般来说,在首次安装时,IronPDF 会抛出异常,告诉你任何必要的系统依赖关系。

  • 下面提到的 IronCefSubprocess 是应用程序 bin 文件夹中的二进制文件。您可能需要指定准确的路径,该路径可能位于 binruntimes 子目录中。
  • 您可能需要 sudo 权限。

如果您不确定如何使用未列入列表的 Linux 操作系统,请调查 Chromium 浏览器在该操作系统上的依赖关系。

如果您希望投票决定对其他 Linux 发行版的正式支持,请联系 support@ironsoftware.com 并提出您的请求。

Linux 的常见依赖模式

还请学习上述其他 Linux 操作系统的依赖包。

apt update
apt install -y libc6-dev
apt install -y libgtk2.0-0
apt install -y libnss3
apt install -y libatk-bridge2.0-0
apt install -y libx11-xcb1
apt install -y libxcb-dri3-0
apt install -y libdrm-common
apt install -y libgbm1
apt install -y libasound2
apt install -y libappindicator3-1
apt install -y libxrender1
apt install -y libfontconfig1
apt install -y libxshmfence1

chmod 755 IronCefSubprocess
# (IronCefSubprocess is normally found at bin/runtimes/linux-x64/)

IronCefSubprocess

IronCefSubprocess 是应用程序 bin 文件夹中的一个二进制文件。它需要可由 .NET 进程执行。

例如 (路径可能会有所不同)

chmod 755 bin/runtimes/linux-64/IronCefSubprocess

在 Linux 中发布 dotnet 单文件

如果您选择在 Linux 上以单个文件发布的方式导出您的项目,可以这样做。

dotnet publish -r linux-x64 /property:PublishProfile=FolderProfile /bl

临时文件路径

开发人员可能需要指定一个可写目录,以便在某些使用情况下创建临时文件。

在 Linux 中,该路径的常用安全值是 /tmp/,但最终必须是用户可以读写文件的路径。

//set IronPDF Temp Path
string tmpPath =  @"/tmp/";

IronPdf.Logging.Logger.LogFilePath = tmpPath;
Environment.SetEnvironmentVariable("TEMP", tmpPath, EnvironmentVariableTarget.Process);
Environment.SetEnvironmentVariable("TMP", tmpPath, EnvironmentVariableTarget.Process);
IronPdf.Installation.TempFolderPath = tmpPath;
IronPdf.Installation.CustomDeploymentDirectory = tmpPath;
//set IronPDF Temp Path
string tmpPath =  @"/tmp/";

IronPdf.Logging.Logger.LogFilePath = tmpPath;
Environment.SetEnvironmentVariable("TEMP", tmpPath, EnvironmentVariableTarget.Process);
Environment.SetEnvironmentVariable("TMP", tmpPath, EnvironmentVariableTarget.Process);
IronPdf.Installation.TempFolderPath = tmpPath;
IronPdf.Installation.CustomDeploymentDirectory = tmpPath;
'set IronPDF Temp Path
Dim tmpPath As String = "/tmp/"

IronPdf.Logging.Logger.LogFilePath = tmpPath
Environment.SetEnvironmentVariable("TEMP", tmpPath, EnvironmentVariableTarget.Process)
Environment.SetEnvironmentVariable("TMP", tmpPath, EnvironmentVariableTarget.Process)
IronPdf.Installation.TempFolderPath = tmpPath
IronPdf.Installation.CustomDeploymentDirectory = tmpPath
VB   C#