在 Linux 上使用 IronPDF
兼容性和设置指南
IronPDF 支持适用于 .NET 9, 8, 7, 6, 5 和 .NET Core 应用程序的 Linux,以及 Docker、Azure、AWS、macOS 和(那是)视窗
官方支持的容器化和托管
正式支持的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客户也是如此。
硬件规格
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
Amazon AWS Linux 2 阅读IronPdf 的 AWS Lambda 设置指南
请阅读下面的“其他Linux发行版”,以获取在非官方支持的Linux版本上安装IronPdf的建议。
我们建议使用Microsoft的官方 Docker 映像. 其他 Linux 发行版部分支持,但可能需要使用 apt-get 手动配置。 查看"Linux 的常见依赖模式本文件结尾处的"......"。
Linux 自动设置
默认设置 LinuxAndDockerDependenciesAutoConfig
为 true 将自动尝试安装所有 IronPDF 在 Linux 上运行所需的依赖项。 首次 HTML 转 PDF 操作可能比平常要长。
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = true;
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = true;
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = True
Linux 优化的 NuGet 软件包
Install-Package IronPdf.Linux
您可以使用这个为Linux优化的包,在Windows或macOS机器上进行开发。
或者,您可以直接 下载 Linux 下的 DLL.
Docker + Linux 设置
请阅读我们的有关在 Docker 上使用 IronPDF 的大量文档如果您需要帮助设置将使用 IronPDF 的 Docker 映像,请访问
Ubuntu 兼容性
Ubuntu 是我们测试最多的 Linux 操作系统。 这是因为它在我们用于持续测试和部署的Azure基础设施中被大量使用。 此平台还提供官方 Microsoft .NET 支持和官方 Docker 镜像。
乌班图 20
我们支持开箱即用的Ubuntu 20,无需任何配置。
- 支持 Chrome 和 WebKit 基于的 HTML 到 PDF 渲染引擎
- 正式支持 .NET Core 3.1, 5, 6(LTS), 7 和 8** 运行时
- 非官方地,我们还支持在Ubuntu 20上运行的许多其他.NET Core运行时。
我们在每次发布前会在此平台上运行超过997个单元测试。
官方 Microsoft Docker 镜像:
- 64 位 Ubuntu 20.04 Docker 镜像用于 .NET Runtime 3.1 (3.1-focal)
64 位 Ubuntu 20.04 Docker 镜像,用于 .NET 运行时 5.0 (5.0 焦距)
手动设置 Ubuntu 20
如果您希望手动安装或您的应用无法以_sudo_管理员权限运行。
将
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = false;
设置为 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文件夹中的一个二进制文件。 您可能需要指定一个确切的路径,该路径可能位于
bin
的runtimes
子目录中。 - 您可能需要使用
sudo
权限。
Ubuntu 18
我们支持开箱即用的Ubuntu 18,无需任何配置。
- 支持 Chrome 和 WebKit 基于的 HTML 到 PDF 渲染引擎
- 官方支持 .NET Core 3.1 LTS 和 .NET 5 运行时
- 非官方支持在 Ubuntu 18 甚至 16 上运行的许多其他 .NET Core 运行时。
我们在每次发布前对这个平台进行全面的冒烟测试。
官方 Microsoft Docker 镜像:
- 64 位 Ubuntu 18.04 Docker 镜像,用于 .NET 运行时 3.1 (3.1 仿生)
尽管Ubuntu 18上没有官方的.NET 5 Docker镜像,但兼容性非常高。
手动设置 Ubuntu 18
如果您希望手动安装或您的应用无法以_sudo_管理员权限运行。
将
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = false;
设置为 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 的严格测试。
.NET 在 Ubuntu 16 上得到了微软的官方支持,并且据许多用户报告,它可以与 IronPdf 协同工作。 开发者可能需要手动安装apt-get依赖。
- Chrome 和 WebKit 通常需要手动配置。
- .NET Core 3.1 LTS 和 .NET 5 运行时 支持 Ubuntu 16 的 Microsoft 支持。
目前没有适用于 Ubuntu 16 的官方 Microsoft Docker 镜像。
手动设置Ubuntu 16
如果您希望手动安装或您的应用无法以_sudo_管理员权限运行。
将
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = false;
设置为 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 11 是 Microsoft 在 Visual Studio 中为 .NET 项目添加 Docker 支持时使用的默认 Linux 发行版。
我们支持开箱即用的 Debian 11,无需任何配置。
- 支持 Chrome 和 WebKit 基于的 HTML 到 PDF 渲染引擎
- 正式支持 .NET Core 3.1, 5, 6(LTS), 7 和 8** 运行时
- 非官方地,我们还支持在 Debian 11 上运行许多其他的 .NET Core 运行环境。
我们在每次发布前会在此平台上运行超过997个单元测试。
官方 Microsoft Docker 镜像:
- .NET Runtime 3.1 的 64 位 Debian 11 Docker 映像
.NET 运行时 5.0 的 64 位 Debian 11 Docker 映像
手动设置 Debian 11
如果您希望手动安装或您的应用无法以_sudo_管理员权限运行。
将
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = false;
设置为 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开箱即用,无需任何配置。
- 支持 Chrome 和 WebKit 基于的 HTML 到 PDF 渲染引擎
- 正式支持 .NET Core 3.1, 5, 6(LTS), 7 和 8** 运行时
- 我们非官方地支持在Debian 10上运行的许多其他.NET Core运行时。
我们在每次发布前会在此平台上运行超过997个单元测试。
官方 Microsoft Docker 镜像:
- .NET Runtime 3.1 的 64 位 Debian 10 Docker 映像
.NET Runtime 5.0 的 64 位 Debian 10 Docker 映像
手动设置 Debian 10
如果您希望手动安装或您的应用无法以_sudo_管理员权限运行。
将
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = false;
设置为 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即插即用。 然而,如果设置正确,Microsoft 官方支持在 Debian 9 上的 .NET 与 IronPdf 兼容。
(查看"Linux 的常见依赖模式本文件结尾处的"......"。).
Microsoft 没有为 Debian 9 的 .NET Core 3.1 或 .NET 5.0 提供官方 Docker 镜像。我们强烈推荐迁移到 Debian 10。
CentOS 兼容性
我们非常喜欢并支持 CentOS。
CentOS 8 支持
我们支持开箱即用的CentOS 8,无需任何配置。
- 支持 Chrome 和 WebKit 基于的 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;
设置为 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兼容。
然而,.NET 在 CentOS 7 上得到了微软的官方支持,如果设置正确,很可能与 IronPdf 兼容。(请阅读"Linux 的常见依赖模式"如下).
Microsoft没有为CentOS 7提供.NET Core 3.1或.NET 5.0的官方Docker镜像。
亚马逊 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;
设置为 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,无需任何配置。
- 支持 Chrome 和 WebKit 基于的 HTML 到 PDF 渲染引擎
- 正式支持 .NET Core 3.1, 5, 6(LTS), 7 和 8** 运行时
我们在每次发布前对这个平台进行全面的冒烟测试。
手动Fedora Linux设置
如果您希望手动安装或您的应用无法以_sudo_管理员权限运行。
这也可能有助于Fedora Linux的旧版本或新版本的构建。
将
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = false;
设置为 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、hfs 和 yum 手动安装 Linux 上的 IronPDF 先决条件。
这使您能够在许多不受支持的Linux发行版上使用IronPDF。
通常在首次安装IronPDF时,它会抛出异常来告知您任何必要的系统依赖。
- IronCefSubprocess是您应用程序bin文件夹中的一个二进制文件。 您可能需要指定一个确切的路径,该路径可能位于
bin
的runtimes
子目录中。 您可能需要使用
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