IronPDF Linux Compatibility &amp ; Setup Guide (en anglais)

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

IronPDF prend en charge Linux pour les applications .NET 8, 7, 6, 5 et .NET Core, ainsi que Docker, Azure, AWS, macOS et.. (naturellement) Fenêtres.

Nous recommandons l'utilisation de .NET Core 3.1 et de tout autre runtime marqué comme LTS de Microsoft parce qu'ils garantissent une assistance à long terme et qu'ils sont généralement bien testés sous Linux.

Aucune modification du code n'est nécessaire pour faire fonctionner IronPDF sous Linux. En général, IronPDF fonctionne immédiatement grâce à des centaines d'heures de tests et de configuration par nos ingénieurs.

La prise en charge de Linux est importante car de nombreux services en nuage tels que Azure Web Apps, Azure Functions, AWS EC2, AWS Lambda, Azure Devops Docker reposent fortement sur Linux. Chez Iron Software, nous utilisons régulièrement ces outils en nuage et nous savons que c'est aussi le cas de bon nombre de nos clients d'entreprise et SAAS,

Spécifications du matériel

IronPDF utilise Chromium pour convertir HTML en PDF. Le moteur Chromium rend les PDF au pixel près grâce à la fonction d'impression de Chrome. Les spécifications matérielles sont principalement destinées à l'exécution du moteur Chromium, qui utilise la majeure partie de la puissance de calcul.

  • Minimum : 1 cœur et 1,75 Go de RAM
  • Recommandé : 2 cœurs et 8 Go de RAM ou plus

Distros Linux officiellement soutenus

Nous supportons officiellement et recommandons les derniers systèmes d'exploitation Linux 64 bit ci-dessous pour une installation "sans configuration" d'IronPDF.

  • Ubuntu 22
  • Ubuntu 20
  • Ubuntu 18
  • Ubuntu 16
  • Debian 11 [Actuellement, la distribution Linux par défaut de Microsoft Azure]
  • Debian 10
  • CentOS 8
  • Fedora Linux 33
  • Amazon AWS Linux 2 Lire le Guide de configuration d'AWS Lambda pour IronPDF

    Veuillez lire "Other Linux Distros" ci-dessous pour obtenir des conseils sur l'installation d'IronPDF sur une version de Linux qui n'est pas officiellement supportée.

    Nous recommandons d'utiliser le logiciel Images Docker officielles. Les autres distributions Linux sont partiellement prises en charge, mais peuvent nécessiter une configuration manuelle à l'aide d'apt-get. Voir "Modèles de dépendance courants pour Linux"à la fin de ce document.

Installation automatique de Linux

Le paramètre par défaut LinuxAndDockerDependenciesAutoConfig true tentera d'installer automatiquement toutes les dépendances pour qu'IronPDF fonctionne sous Linux. La première opération de conversion de html en pdf peut prendre plus de temps que d'habitude.

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

Paquets NuGet optimisés pour Linux

Install-Package IronPdf.Linux

Des paquets NuGet sont disponibles pour les déploiements d'IronPDF optimisés pour Linux Guide d'installation avancée d'IronPDF sous NuGet.

Vous pouvez utiliser ce paquet optimisé pour Linux et même développer sur une machine Windows ou macOS.

Vous pouvez aussi directement télécharger la DLL pour Linux.

Installation de Docker + Linux

Veuillez lire notre une documentation complète sur l'utilisation d'IronPDF sur Docker si vous avez besoin d'aide pour configurer une image Docker qui utilisera IronPDF.

Compatibilité Ubuntu

Ubuntu est notre système d'exploitation Linux le plus testé. En effet, il est très utilisé dans l'infrastructure Azure que nous utilisons pour les tests et les déploiements continus. Cette plateforme dispose également d'une prise en charge officielle de Microsoft .NET et d'images Docker officielles.

Ubuntu 20

Nous supportons Ubuntu 20 dès sa sortie de la boîte avec zéro configuration.

  • Prise en charge des moteurs de rendu HTML vers PDF basés sur Chrome et WebKit
  • Prise en charge officielle de **.NET Core 3.1, 5, 6 (LTS)durées d'exécution 7 et 8
  • Officieusement, nous prenons en charge de nombreux autres moteurs d'exécution .NET Core sur Ubuntu 20
  • Nous effectuons plus de 997 tests unitaires sur cette plateforme avant chaque version

    Images Docker officielles de Microsoft:

  • image Docker Ubuntu 20.04 64 bits pour .NET Runtime 3.1 (3.1-focale)
  • image Docker Ubuntu 20.04 64 bits pour .NET Runtime 5.0 (5.0-focale)

    Installation manuelle d'Ubuntu 20

    Si vous souhaitez procéder à une installation manuelle ou si votre application ne peut être exécutée avec les privilèges d'administrateur sudo.

    Set 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 mentionné ci-dessous est un binaire qui se trouve dans le dossier bin de votre application. Vous pouvez avoir besoin de spécifier un chemin exact qui peut se trouver dans le sous-répertoire runtimes de bin.
  • Vous pouvez avoir besoin des privilèges sudo.

Ubuntu 18

Nous supportons Ubuntu 18 dès sa sortie de la boîte avec zéro configuration.

  • Prise en charge des moteurs de rendu HTML vers PDF basés sur Chrome et WebKit
  • Support officiel .NET Core 3.1 LTS et .NET 5 runtimes
  • Officieusement, nous prenons en charge de nombreux autres moteurs d'exécution .NET Core sur Ubuntu 18 et même 16
  • Nous effectuons des tests complets sur cette plateforme avant chaque mise à jour

    Images Docker officielles de Microsoft:

  • image Docker Ubuntu 18.04 64 bits pour .NET Runtime 3.1 (3.1-bionique)
  • Bien qu'il n'y ait pas d'image docker officielle pour .NET 5 sur Ubuntu 18, la compatibilité est très élevée.

    **Manuel d'installation d'Ubuntu 18

    Si vous souhaitez procéder à une installation manuelle ou si votre application ne peut être exécutée avec les privilèges d'administrateur sudo.

    Set 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

Nous n'avons qu'un support limité / non officiel d'Ubuntu 16. Ubuntu 16 n'a pas été rigoureusement testé avec IronPDF.

.NET sur Ubuntu 16 est officiellement pris en charge par Microsoft et de nombreux utilisateurs signalent qu'il fonctionne avec IronPDF for .NET. Les développeurs peuvent avoir à installer manuellement les dépendances apt-get.

  • Chrome et WebKit fonctionnent normalement avec une configuration manuelle.
  • .NET Core 3.1 LTS et .NET 5 runtimes bénéficient de la prise en charge de Microsoft pour Ubuntu 16.
  • Il n'existe actuellement aucune image Docker officielle de Microsoft pour Ubuntu 16.

    **Manuel d'installation d'Ubuntu 16

    Si vous souhaitez procéder à une installation manuelle ou si votre application ne peut être exécutée avec les privilèges d'administrateur sudo.

    Set 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/)

Compatibilité avec Debian

Debian est notre deuxième système d'exploitation Linux le plus testé. Cette plateforme dispose également d'une prise en charge officielle de Microsoft .NET et d'images Docker officielles.

Debian 11

_Debian 11 est la distribution Linux par défaut utilisée par Microsoft lors de l'ajout de la prise en charge de Docker à un projet .NET dans Visual Studio

Nous prenons en charge Debian 11 dès sa sortie de la boîte avec zéro configuration.

  • Prise en charge des moteurs de rendu HTML vers PDF basés sur Chrome et WebKit
  • Prise en charge officielle de **.NET Core 3.1, 5, 6 (LTS)durées d'exécution 7 et 8
  • Officieusement, nous prenons en charge de nombreux autres moteurs d'exécution .NET Core sur Debian 11
  • Nous effectuons plus de 997 tests unitaires sur cette plateforme avant chaque version

    Images Docker officielles de Microsoft:

  • image Docker Debian 11 64 bits pour .NET Runtime 3.1
  • image Docker Debian 11 64 bits pour .NET Runtime 5.0

    Installation manuelle de Debian 11

    Si vous souhaitez procéder à une installation manuelle ou si votre application ne peut être exécutée avec les privilèges d'administrateur sudo.

    Set 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

Nous prenons en charge Debian 10 dès sa sortie de la boîte avec zéro configuration.

  • Prise en charge des moteurs de rendu HTML vers PDF basés sur Chrome et WebKit
  • Prise en charge officielle de **.NET Core 3.1, 5, 6 (LTS)durées d'exécution 7 et 8
  • Officieusement, nous prenons en charge de nombreux autres moteurs d'exécution .NET Core sur Debian 10
  • Nous effectuons plus de 997 tests unitaires sur cette plateforme avant chaque version

    Images Docker officielles de Microsoft:

  • image Docker 64 bits Debian 10 pour .NET Runtime 3.1
  • image Docker 64 bits Debian 10 pour .NET Runtime 5.0

    Installation manuelle de Debian 10

    Si vous souhaitez procéder à une installation manuelle ou si votre application ne peut être exécutée avec les privilèges d'administrateur sudo.

    Set 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 et inférieures

Debian 9 n'a pas été officiellement testée et ne fonctionnera pas avec IronPDF. Cependant, .NET sur Debian 9 est officiellement pris en charge par Microsoft et peut fonctionner avec IronPDF si la configuration est correcte

(Voir "Modèles de dépendance courants pour Linux"à la fin de ce document).

Il n'y a pas d'images Docker officielles de Microsoft pour .NET Core 3.1 ou .NET 5.0 sur Debian 9. Nous recommandons fortement de migrer vers Debian 10.

Compatibilité avec CentOS

Nous aimons et soutenons activement CentOS.

Support de CentOS 8

Nous supportons CentOS 8 dès sa sortie de l'emballage avec zéro configuration.

  • Prise en charge des moteurs de rendu HTML vers PDF basés sur Chrome et WebKit
  • Prise en charge officielle de **.NET Core 3.1, 5, 6 (LTS)durées d'exécution 7 et 8
  • Officieusement, nous prenons en charge de nombreux autres moteurs d'exécution .NET Core sur CentOS
  • Nous effectuons des tests complets sur cette plateforme avant chaque mise à jour

    Malheureusement, il n'existe pas d'images Docker officielles de Microsoft pour .NET Core 3.1 ou .NET 5.0 sur CentOS 8.

    Installation manuelle de CentOS 8

    Si vous souhaitez procéder à une installation manuelle ou si votre application ne peut être exécutée avec les privilèges d'administrateur sudo.

    Set 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 et inférieur

CentOS 7 n'a pas été testé et ne fonctionnera pas avec IronPDF.

Cependant, .NET sur CentOS 7 est officiellement pris en charge par Microsoft et devrait fonctionner avec IronPDF s'il est configuré correctement (lire "Modèles de dépendance courants pour Linux" ci-dessous).

Il n'existe pas d'images Docker officielles de Microsoft pour .NET Core 3.1 ou .NET 5.0 sur CentOS 7.

Compatibilité Amazon AWS Linux 2

Nous prenons en charge Amazon AWS Linux 2, qui constitue la base des services cloud d'Amazon tels que EC2 et Lambda.

  • Il n'existe pas d'images Docker officielles de Microsoft pour .NET Core 3.1 ou .NET 5.0 sur Amazon AWS Linux 2.
  • Nous testons manuellement la compatibilité avec Amazon AWS Linux 2 lors du développement d'IronPDF

    Nous vous recommandons de lire notre IronPDF AWS Lambda guide qui contient un fichier Docker fonctionnel pour IronPDF sur AWS Lambda.

    Amazon Linux 2 Manual Setup

    Si vous souhaitez procéder à une installation manuelle ou si votre application ne peut être exécutée avec les privilèges d'administrateur sudo.

    Set 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/)

Veuillez également consulter notre documentation sur notre support officiel IronPDF pour AWS Lambda qui comprend l'installation et l'enregistrement sur la plateforme cloud d'Amazon.

Compatibilité avec Fedora Linux

Fedora Linux est pris en charge.

Nous prenons en charge Fedora Linux 33 dès sa sortie de l'emballage avec zéro configuration.

  • Prise en charge des moteurs de rendu HTML vers PDF basés sur Chrome et WebKit
  • Prise en charge officielle de **.NET Core 3.1, 5, 6 (LTS)durées d'exécution 7 et 8
  • Nous effectuons des tests complets sur cette plateforme avant chaque mise à jour

    Installation manuelle de Fedora Linux

    Si vous souhaitez procéder à une installation manuelle ou si votre application ne peut être exécutée avec les privilèges d'administrateur sudo.

    Cela peut également s'avérer utile avec des versions plus anciennes ou plus récentes de Fedora Linux.

    Set 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/)

Compatibilité Alpine Linux

L'exécution d'IronPDF sur Alpine Linux n'est pas prise en charge. Nous aimerions pouvoir le faire, mais nous ne le pouvons pas. Franchement, nous aimons Alpine et nous espérons que ce projet se poursuivra et se développera. En 2023, Alpine utilise encore des bibliothèques de langage C "musl" dépassées qui ne permettent pas encore aux développeurs de chrome de prendre pleinement en charge ce système d'exploitation.

Utiliser Alpine Docker avec IronPdfEngine dans .NET 6

IronPdf fournit une image conteneur contenant toutes les fonctionnalités d'IronPdf. Cela permet aux projets fonctionnant sur Alpine d'accéder aux fonctionnalités d'IronPDF en se connectant au conteneur IronPdfEngine.

Étape 1 : Tirer et exécuter l'image Docker du moteur IronPDF

Exécutez les commandes suivantes dans votre terminal pour tirer et exécuter l'image Docker du moteur IronPDF :

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

Étape 2 : Configuration de l'application Console

Créez une nouvelle application console ciblant .NET 6.

Installez le package NuGet IronPdf.Slim à l'aide du gestionnaire de packages NuGet.

Autres distributions Linux

Vous pouvez également installer manuellement les prérequis d'IronPDF pour Linux en utilisant apt-get hfs et yum

Cela vous permet d'utiliser IronPDF sur de nombreuses distros linux non supportées.

Généralement, lors de la première installation, IronPDF lance des exceptions pour vous indiquer les dépendances nécessaires au système.

  • IronCefSubprocess mentionné ci-dessous est un binaire qui se trouve dans le dossier bin de votre application. Vous pouvez avoir besoin de spécifier un chemin exact qui peut se trouver dans le sous-répertoire runtimes de bin.
  • Vous pouvez avoir besoin des privilèges sudo.

    Si vous ne savez pas comment procéder avec un système d'exploitation Linux non répertorié ; rechercher les dépendances du navigateur Chromium sur ce système d'exploitation.

    Si vous souhaitez voter pour le soutien officiel d'une distro linux différente, veuillez contacter support@ironsoftware.com pour lui faire part de votre demande.

    Common Dependency Patterns for Linux (modèles de dépendance communs pour Linux)

    Veuillez également étudier les paquets de dépendance pour les autres systèmes d'exploitation linux ci-dessus.

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

IronCefSubprocessus

IronCefSubprocess est un fichier binaire qui se trouve dans le dossier bin de votre application. Il doit être exécutable par le processus .NET.

Par exemple (le chemin peut varier)

chmod 755 bin/runtimes/linux-64/IronCefSubprocess

publication d'un fichier unique sous Linux avec dotnet

Si vous choisissez d'exporter votre projet sous forme de publication de fichier unique sous Linux, voici comment procéder.

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

Chemins d'accès aux fichiers temporaires

Les développeurs peuvent avoir besoin de spécifier un répertoire accessible en écriture dans lequel des fichiers temporaires peuvent être créés pour certains cas d'utilisation.

Une valeur courante et sûre pour ce chemin est /tmp/ sous Linux, mais il doit s'agir d'un chemin où l'utilisateur peut lire et écrire des fichiers.

//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#