IronPDF Linux 兼容性及安装指南
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
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,无需任何配置。
- 支持基于Chrome和WebKit的 HTML 转 PDF 渲染引擎
- 正式支持.NET Core 3.1、5、6 (LTS)7 和 8 运行时间
- 我们非正式地支持 Ubuntu 20 上的许多其他 .NET Core 运行时
- 每次发布前,我们都会在该平台上运行超过 997 个单元测试
微软官方 Docker 映像:
- 64 位 Ubuntu 20.04 Docker Image for .NET Runtime 3.1 (3.1-focal)
- 64 位 Ubuntu 20.04 Docker Image for .NET Runtime 5.0 (5.0 焦距)
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 文件夹中的二进制文件。您可能需要指定准确的路径,该路径可能位于
bin
的runtimes
子目录中。 - 您可能需要
sudo
权限。
Ubuntu 18
我们支持 Ubuntu 18 开箱即用,无需任何配置。
- 支持基于Chrome和WebKit的 HTML 转 PDF 渲染引擎
- 正式支持.NET Core 3.1 LTS 和.NET 5 运行时
- 非官方支持 Ubuntu 18 甚至 16 上的许多其他 .NET Core 运行时
- 每次发布前,我们都会在该平台上进行全面的烟雾测试
微软官方 Docker 映像:
- 64 位 Ubuntu 18.04 Docker Image for .NET Runtime 3.1 (3.1 仿生)
- 虽然在 Ubuntu 18 上没有 .NET 5 的官方 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,无需任何配置。
- 支持基于Chrome和WebKit的 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,无需任何配置。
- 支持基于Chrome和WebKit的 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,无需任何配置。
- 支持基于Chrome和WebKit的 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。
- 支持基于Chrome和WebKit的 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 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