在 Linux 上使用 IronPDF

2018年八月28日
更新 2025年二月18日
分享:
This article was translated from English: Does it need improvement?
Translated
View the article in English

兼容性和设置指南

IronPDF 支持 Linux,用于.NET 9, 8, 7, 6, 5.NET Core应用程序,以及 Docker、Azure、AWS、macOS 和(当然)Windows。

官方支持的容器化和托管

Linux V1 related to 官方支持的容器化和托管 Docker related to 官方支持的容器化和托管 Azure 1 related to 官方支持的容器化和托管 Amazon Web Services related to 官方支持的容器化和托管

正式支持的Linux发行版

Ubuntu V1 related to 正式支持的Linux发行版 Debian V1 related to 正式支持的Linux发行版 Centos V1 related to 正式支持的Linux发行版

Linux上的IronPDF使用技巧

我们推荐使用 .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客户也是如此。

Linux 专用软件包

NuGet

硬件规格

IronPDF 使用 Chromium 将 HTML 渲染成 PDF。 Chromium引擎渲染PDF时,其像素完美对应Chrome的打印功能。 硬件规格主要用于运行Chromium引擎,这占用了大部分计算能力。

  • 最低配置:1个核心和1.75 GB的RAM
  • 推荐配置:2核心及8GB或以上的RAM

官方支持的Linux发行版

我们正式支持并推荐以下最新的64 位 Linux 操作系统,以实现 IronPDF 的“零配置”设置。

  • Ubuntu 22
  • 乌班图 20
  • Ubuntu 18
  • Ubuntu 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;

Linux 优化的 NuGet 软件包

Install-Package IronPdf.Linux

我们在IronPDF 高级 NuGet 安装指南中记录了适用于 Linux 优化 IronPDF 部署的 NuGet 包。

您可以使用这个为Linux优化的包,在Windows或macOS机器上进行开发。

或者,您可以直接下载适用于Linux的DLL

Docker + Linux 设置

如果您在设置将使用IronPDF的Docker镜像时需要帮助,请阅读我们关于在Docker上使用IronPDF的详细文档

Ubuntu 兼容性

Ubuntu 是我们测试最多的 Linux 操作系统。 这是因为它在我们用于持续测试和部署的Azure基础设施中被大量使用。 此平台还提供官方 Microsoft .NET 支持和官方 Docker 镜像。

乌班图 20

Microsoft related to 乌班图 20 Ubuntu V1 related to 乌班图 20 Chrome V1 related to 乌班图 20 Safari V1 related to 乌班图 20 Docker related to 乌班图 20 Azure 1 related to 乌班图 20

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

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

Microsoft related to Ubuntu 18 Ubuntu V1 related to Ubuntu 18 Chrome V1 related to Ubuntu 18 Safari V1 related to Ubuntu 18 Docker related to Ubuntu 18 Azure 1 related to Ubuntu 18

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

  • 支持基于ChromeWebKit的HTML到PDF渲染引擎
  • 官方支持.NET Core 3.1 LTS.NET 5 运行时
  • 非官方支持在 Ubuntu 18 甚至 16 上运行的许多其他 .NET Core 运行时。
  • 我们在每次发布前对这个平台进行全面的冒烟测试。

    官方 Microsoft Docker 映像:

  • 适用于.NET运行时3.1('3.1-bionic')的64位Ubuntu 18.04 Docker镜像
  • 尽管Ubuntu 18上没有官方的.NET 5 Docker镜像,但兼容性非常高。

    手动 Ubuntu 18 设置

    如果您希望手动安装或您的应用无法以_sudo_管理员权限运行。

    设置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 V1 related to Ubuntu 16 Test related to Ubuntu 16

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

.NET 在 Ubuntu 16 上得到了微软的官方支持,并且据许多用户报告,它可以与 IronPdf 协同工作。 开发者可能需要手动安装apt-get依赖。

  • ChromeWebKit 通常需要手动配置才能运行。
  • .NET Core 3.1 LTS.NET 5 runtimes在Ubuntu 16上有Microsoft的支持。
  • 目前没有适用于 Ubuntu 16 的官方 Microsoft Docker 镜像。

    手动设置 Ubuntu 16

    如果您希望手动安装或您的应用无法以_sudo_管理员权限运行。

    设置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

Debian related to Debian 11 Microsoft related to Debian 11 Chrome V1 related to Debian 11 Safari V1 related to Debian 11 Docker related to Debian 11 Azure 1 related to Debian 11

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

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

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

    官方 Microsoft Docker 映像:

  • 64 位 Debian 11 Docker 映像用于 .NET Runtime 3.1
  • 64位 Debian 11 Docker 映像用于 .NET Runtime 5.0

    手动设置 Debian 11

    如果您希望手动安装或您的应用无法以_sudo_管理员权限运行。

    设置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 related to Debian 10 Microsoft related to Debian 10 Chrome V1 related to Debian 10 Safari V1 related to Debian 10 Docker related to Debian 10 Azure 1 related to Debian 10

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

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

    官方 Microsoft Docker 映像:

  • 64位 Debian 10 Docker 镜像用于 .NET Runtime 3.1
  • 64 位 Debian 10 Docker 镜像用于 .NET Runtime 5.0

    手动设置 Debian 10

    如果您希望手动安装或您的应用无法以_sudo_管理员权限运行。

    设置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 related to Debian 9 及以下版本 Test related to Debian 9 及以下版本

Debian 9未经官方测试,且不能与IronPdf即插即用。 然而,如果设置正确,Microsoft 官方支持在 Debian 9 上的 .NET 与 IronPdf 兼容。

(请参阅本文档结尾的“Linux 常见依赖模式”)。

Microsoft 没有为 Debian 9 的 .NET Core 3.1 或 .NET 5.0 提供官方 Docker 镜像。我们强烈推荐迁移到 Debian 10。

CentOS 兼容性

Centos related to CentOS 兼容性 Chrome V1 related to CentOS 兼容性 Safari V1 related to CentOS 兼容性 Test related to CentOS 兼容性

我们非常喜欢并支持 CentOS。

CentOS 8 支持

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

  • 支持基于ChromeWebKit的HTML到PDF渲染引擎
  • 正式支持.NET Core 3.1, 5, 6 (LTS), 7 和 8运行时
  • 我们非官方支持在CentOS上的许多其他.NET Core运行时。
  • 我们在每次发布前对这个平台进行全面的冒烟测试。

    遗憾的是,Microsoft 没有为 CentOS 8 上的 .NET Core 3.1 或 .NET 5.0 提供官方 Docker 镜像。

    手动设置 CentOS 8

    如果您希望手动安装或您的应用无法以_sudo_管理员权限运行。

    设置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兼容。

但是,Microsoft 正式支持的 CentOS 7 上的 .NET 可能会在正确设置的情况下与 IronPdf 配合工作(请阅读下面的“Linux 的常见依赖模式”)。

Microsoft没有为CentOS 7提供.NET Core 3.1或.NET 5.0的官方Docker镜像。

亚马逊 AWS Linux 2 兼容性

Amazon Web Services related to 亚马逊 AWS Linux 2 兼容性 Chrome V1 related to 亚马逊 AWS Linux 2 兼容性 Safari V1 related to 亚马逊 AWS Linux 2 兼容性 Test related to 亚马逊 AWS Linux 2 兼容性

我们支持Amazon AWS Linux 2,它是Amazon云服务(如EC2和Lambda)的基础。

  • Microsoft 没有为 Amazon AWS Linux 2 提供官方的 .NET Core 3.1 或 .NET 5.0 的 Docker 镜像。
  • 我们在开发IronPDF的过程中手动测试其与Amazon AWS Linux 2的兼容性。

    我们建议您阅读我们的IronPDF AWS Lambda指南,其中包含适用于AWS Lambda的IronPdf的可用Docker文件。

    Amazon Linux 2 手动设置

    如果您希望手动安装或您的应用无法以_sudo_管理员权限运行。

    设置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/)

请您也阅读我们官方支持上的文档IronPdf for AWS Lambda,其中包括在亚马逊云平台上的安装和日志记录。

Fedora Linux 兼容性

Fedora Linux 支持。

我们支持开箱即用的Fedora Linux 33,无需任何配置。

  • 支持基于ChromeWebKit的HTML到PDF渲染引擎
  • 正式支持.NET Core 3.1, 5, 6 (LTS), 7 和 8运行时
  • 我们在每次发布前对这个平台进行全面的冒烟测试。

    手动设置 Fedora Linux

    如果您希望手动安装或您的应用无法以_sudo_管理员权限运行。

    这也可能有助于Fedora Linux的旧版本或新版本的构建。

    设置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 兼容性

IronPDF在Alpine Linux上运行不受支持。 我们希望我们能,但我们不能。 坦白说,我们喜欢Alpine,并希望这个项目能继续发展和壮大。 截至2023年,Alpine仍在使用过时的“musl” C语言库,这使得Chromium开发者尚未能完全支持这个操作系统。

在 .NET 6 中使用 Alpine Docker 和 IronPdfEngine

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

步骤1:拉取并运行 IronPdf Engine 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;