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 引擎的渲染效果與 Chrome 的列印功能完美對接。硬體規格主要是用來運行 Chromium 引擎,這是最為耗費計算資源的部分。

  • 最低要求:1 核心 & 1.75 GB 記憶體
  • 推薦配置:2 核心 & 8 GB 記憶體或以上

正式支援的Linux發行版本

我們正式支援並推薦以下最新的64位元Linux作業系統,以便「零配置」安裝IronPDF。

  • Ubuntu 22
  • Ubuntu 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
VB   C#

Linux 優化 NuGet 套件

Install-Package IronPdf.Linux

Linux 優化的 IronPDF 部署有可用的 NuGet 套件記載於我們的 IronPDF 高級 NuGet 安裝指南您可以使用這個針對 Linux 優化的套件,甚至可以在 Windows 或 macOS 機器上進行開發。

或者,您可以直接 下載 Linux 的 DLL.

Docker + Linux 安裝

請閱讀我們的 在 Docker 上使用 IronPDF 的詳細文檔 如果您需要設置將使用IronPDF的Docker映像的幫助。

Ubuntu相容性

Ubuntu是我們測試最多的Linux作業系統。這是因為它在我們用於持續測試和部署的Azure基礎設施中被大量使用。這個平台也有官方的Microsoft .NET支持和官方的Docker鏡像。

Ubuntu 20

我們支持 Ubuntu 20,開箱即用,零配置

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

官方 Microsoft Docker 映像:

手動設置 Ubuntu 20

如果您希望手動安裝或您的應用程序無法以_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
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 版本
  • 非官方支持許多其他 .NET Core 版本在 Ubuntu 18 甚至 16 上運行
  • 在每次發布之前,我們會在此平台上運行全面的煙霧測試

官方 Microsoft 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 16 僅提供有限/非官方支援。 IronPdf 尚未在 Ubuntu 16 上進行嚴格測試。

.NET 在 Ubuntu 16 上獲得 Microsoft 的官方支援,且據許多用戶報告可與 IronPdf 一起運作。開發人員可能需要手動安裝 apt-get 依賴性。

  • ChromeWebKit 通常需要手動配置才能工作。
  • .NET Core 3.1 LTS.NET 5 runtimes 獲得 Microsoft 對 Ubuntu 16 的支援。
  • 目前沒有針對 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 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 映像:

手動 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 10,且零配置

  • 支援 ChromeWebKit 為基礎的 HTML 到 PDF 渲染引擎
  • 官方支援 .NET Core 3.1, 5, 6 (LTS), 7 和 8** 執行階段
  • 雖然非官方,但我們還支持許多其他在 Debian 10 上運行的 .NET Core 執行階段
  • 我們在每次發布之前在該平台上進行超過 997 個單元測試

官方的 Microsoft Docker 映像:

手動 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 9 尚未經官方測試,且無法開箱即用 IronPdf。然而,Microsoft 正式支持 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 管理員權限運行。

設置 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 是由 Microsoft 官方支持的,如果正確設定,可能會與 IronPDF 一起運作。 (請閱讀 "Linux 常見的相依模式"下方")Microsoft 沒有適用於 CentOS 7 的 .NET Core 3.1 或 .NET 5.0 的官方 Docker 映像。

Amazon 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 引擎 Docker 映像

在終端中執行以下命令以拉取並運行 IronPdf 引擎 Docker 映像:

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

第2步:設置控制台應用程式

建立一個針對 .NET 6 的新控制台應用程式。

使用 NuGet 套件管理器安裝 IronPdf.Slim 套件。

其他 Linux 發行版

你也可以使用 apt-get hfsyum 手動安裝 IronPDF 的 Linux 相關前置需求。

這樣可以讓你在許多不受支持的 linux 發行版上使用 IronPDF。

通常在第一次安裝時,IronPDF 會拋出異常信息,告訴你任何必要的系統依賴性。

  • 下文提到的 IronCefSubprocess 是你應用程序的 bin 文件夾中的二進制文件。你可能需要指定一個確切的路徑,該路徑可能位於 binruntimes 子目錄中。
  • 你可能會需要 sudo 權限。

如果你不確定如何在未列出的 Linux 作業系统上進行,請調查該操作系統上 Chromium 瀏覽器的依賴性。

如果你想投票支持其他不同的 linux 發行版,請通過以下郵件地址聯繫 support@ironsoftware.com 並提出你的請求。

Linux 的常見依賴模式

請同時研究上面其他 linux OS 的依賴包。

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 上使用單檔發佈 .NET

如果您選擇將專案匯出為 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#