Guía de instalación y compatibilidad de IronPDF con Linux

IronPDF es compatible con Linux para aplicaciones .NET 8, 7, 6, 5 y .NET Core, así como con Docker, Azure, AWS, macOS y (naturalmente) Ventanas.

Recomendamos utilizar .NET Core 3.1 y cualquier otro tiempo de ejecución marcado como LTS de Microsoft porque tienen garantizado el soporte a largo plazo y suelen estar bien probados en Linux.

No es necesario modificar el código para ejecutar IronPDF en Linux. Por lo general, IronPDF funciona nada más sacarlo de la caja gracias a cientos de horas de pruebas y configuración por parte de nuestros ingenieros.

La compatibilidad con Linux es importante porque muchos servicios en la nube como Azure Web Apps, Azure Functions, AWS EC2, AWS Lambda, Azure Devops Docker dependen en gran medida de Linux. En Iron Software utilizamos estas herramientas en la nube con regularidad y entendemos que muchos de nuestros clientes empresariales y de SAAS también lo hacen,

Distros Linux oficialmente compatibles

Apoyamos oficialmente y recomendamos los últimos sistemas operativos Linux de 64 bits para una configuración "cero" de IronPDF.

  • Ubuntu 22
  • Ubuntu 20
  • Ubuntu 18
  • Ubuntu 16
  • Debian 11 [Actualmente la distribución Linux predeterminada de Microsoft Azure]
  • Debian 10
  • CentOS 8
  • Fedora Linux 33
  • Amazon AWS Linux 2 Lea el Guía de configuración de AWS Lambda para IronPdf

    Lea "Otras distribuciones de Linux" más abajo para obtener consejos sobre la instalación de IronPdf en una versión de Linux que no esté oficialmente soportada.

    Recomendamos utilizar la aplicación de Microsoft Imágenes Docker oficiales. Otras distribuciones de Linux son compatibles en parte, pero pueden requerir una configuración manual mediante apt-get. Ver "Patrones de dependencia habituales en Linux"al final de este documento.

Configuración automática de Linux

La configuración por defecto LinuxAndDockerDependenciesAutoConfig true intentará instalar automáticamente todas las dependencias para que IronPDF funcione en Linux. La primera operación de conversión de html a pdf puede tardar más de lo habitual.

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

Paquetes NuGet optimizados para Linux

Install-Package IronPdf.Linux

Hay paquetes NuGet disponibles para implementaciones IronPDF optimizadas para Linux documentadas en nuestra sección Guía de instalación avanzada de NuGet para IronPDF.

Puede utilizar este paquete optimizado para Linux e incluso desarrollar en una máquina Windows o macOS.

También puede descargar la DLL para Linux.

Configuración de Docker + Linux

Lea nuestro amplia documentación sobre el uso de IronPDF en Docker si necesita ayuda para configurar una imagen Docker que utilice IronPDF.

Compatibilidad con Ubuntu

Ubuntu es nuestro sistema operativo Linux más probado. Esto se debe a que se utiliza en gran medida en la infraestructura de Azure que utilizamos para pruebas y despliegues continuos. Esta plataforma también cuenta con compatibilidad oficial con Microsoft .NET e imágenes Docker oficiales.

Ubuntu 20

Apoyamos Ubuntu 20 fuera de la caja con cero configuración.

  • Compatibilidad con motores de conversión de HTML a PDF basados en Chrome y **WebKit
  • Compatibilidad oficial con .NET Core 3.1, 5, 6 (LTS), 7 y 8 tiempos de ejecución
  • Extraoficialmente admitimos muchos otros tiempos de ejecución de .NET Core en Ubuntu 20
  • Realizamos más de 997 pruebas unitarias en esta plataforma antes de cada lanzamiento.

    Imágenes Docker oficiales de Microsoft:

  • Imagen Docker de Ubuntu 20.04 de 64 bits para .NET Runtime 3.1 (3.1-focal)
  • Imagen Docker Ubuntu 20.04 de 64 bits para .NET Runtime 5.0 (5.0-focal)

    Instalación manual de Ubuntu 20

    Si desea instalar manualmente o su aplicación no se puede ejecutar con sudo privilegios de administrador.

    Establecer 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/)
  • El IronCefSubprocess mencionado a continuación es un binario dentro de la carpeta bin de su aplicación. Es posible que tenga que especificar una ruta exacta que puede estar en el subdirectorio runtimes de bin.
  • Es posible que necesite privilegios sudo.

Ubuntu 18

Apoyamos Ubuntu 18 fuera de la caja con cero configuración.

  • Compatibilidad con motores de conversión de HTML a PDF basados en Chrome y **WebKit
  • Compatibilidad oficial con .NET Core 3.1 LTS y .NET 5 runtimes.
  • Extraoficialmente soportamos muchos otros tiempos de ejecución .NET Core en Ubuntu 18 e incluso 16
  • Realizamos pruebas de humo exhaustivas en esta plataforma antes de cada lanzamiento.

    Imágenes Docker oficiales de Microsoft:

  • Imagen Docker de Ubuntu 18.04 de 64 bits para .NET Runtime 3.1 (3.1-biónico)
  • Aunque no existe una imagen docker oficial para .NET 5 en Ubuntu 18, la compatibilidad es muy alta.

    Instalación manual de Ubuntu 18

    Si desea instalar manualmente o su aplicación no se puede ejecutar con sudo privilegios de administrador.

    Establecer 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

Sólo tenemos soporte limitado / no oficial Ubuntu 16. Ubuntu 16 no ha sido rigurosamente probado con IronPdf.

.NET en Ubuntu 16 está soportado oficialmente por Microsoft y muchos usuarios dicen que funciona con IronPdf. Es posible que los desarrolladores tengan que instalar manualmente las dependencias de apt-get.

  • Chrome y WebKit funcionan normalmente con configuración manual.
  • Los tiempos de ejecución de .NET Core 3.1 LTS y .NET 5 tienen soporte de Microsoft para Ubuntu 16.
  • Actualmente no hay imágenes Docker oficiales de Microsoft para Ubuntu 16.

    Instalación manual de Ubuntu 16

    Si desea instalar manualmente o su aplicación no se puede ejecutar con sudo privilegios de administrador.

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

Compatibilidad con Debian

Debian es nuestro segundo sistema operativo Linux más probado. Esta plataforma también cuenta con compatibilidad oficial con Microsoft.NET e imágenes Docker oficiales.

Debian 11

Debian 11 es la distribución Linux por defecto que utiliza Microsoft cuando añade compatibilidad con Docker a un proyecto .NET en Visual Studio.

Apoyamos Debian 11 fuera de la caja con cero configuración.

  • Compatibilidad con motores de conversión de HTML a PDF basados en Chrome y **WebKit
  • Compatibilidad oficial con .NET Core 3.1, 5, 6 (LTS), 7 y 8 tiempos de ejecución
  • Extraoficialmente admitimos muchos otros tiempos de ejecución de .NET Core en Debian 11
  • Realizamos más de 997 pruebas unitarias en esta plataforma antes de cada lanzamiento.

    Imágenes Docker oficiales de Microsoft:

  • Imagen Docker Debian 11 de 64 bits para .NET Runtime 3.1
  • Imagen Docker Debian 11 de 64 bits para .NET Runtime 5.0

    **Configuración manual de Debian 11

    Si desea instalar manualmente o su aplicación no se puede ejecutar con sudo privilegios de administrador.

    Establecer 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

Apoyamos Debian 10 fuera de la caja con cero configuración.

  • Compatibilidad con motores de conversión de HTML a PDF basados en Chrome y **WebKit
  • Compatibilidad oficial con .NET Core 3.1, 5, 6 (LTS), 7 y 8 tiempos de ejecución
  • Extraoficialmente admitimos muchos otros tiempos de ejecución de .NET Core en Debian 10
  • Realizamos más de 997 pruebas unitarias en esta plataforma antes de cada lanzamiento.

    Imágenes Docker oficiales de Microsoft:

  • Imagen Docker Debian 10 de 64 bits para .NET Runtime 3.1
  • Imagen Docker Debian 10 de 64 bits para .NET Runtime 5.0

    **Configuración manual de Debian 10

    Si desea instalar manualmente o su aplicación no se puede ejecutar con sudo privilegios de administrador.

    Establecer 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 e inferiores

Debian 9 no ha sido probado oficialmente y no funcionará con IronPdf. Sin embargo, Microsoft admite oficialmente .NET en Debian 9 y puede funcionar con IronPdf si se configura correctamente.

(Ver "Patrones de dependencia habituales en Linux"al final de este documento).

No hay imágenes Docker oficiales de Microsoft para .NET Core 3.1 o .NET 5.0 en Debian 9. Recomendamos encarecidamente migrar a Debian 10.

Compatibilidad con CentOS

Nos gusta y apoyamos activamente CentOS.

Soporte CentOS 8

Apoyamos CentOS 8 fuera de la caja con cero configuración.

  • Compatibilidad con motores de conversión de HTML a PDF basados en Chrome y **WebKit
  • Compatibilidad oficial con .NET Core 3.1, 5, 6 (LTS), 7 y 8 tiempos de ejecución
  • Extraoficialmente admitimos muchos otros tiempos de ejecución de .NET Core en CentOS
  • Realizamos pruebas de humo exhaustivas en esta plataforma antes de cada lanzamiento.

    Lamentablemente, no hay imágenes Docker oficiales de Microsoft para .NET Core 3.1 o .NET 5.0 en CentOS 8.

    **Instalación manual de CentOS 8

    Si desea instalar manualmente o su aplicación no se puede ejecutar con sudo privilegios de administrador.

    Establecer 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 e inferiores

CentOS 7 no ha sido probado y no funcionará con IronPdf.

No obstante, Microsoft admite oficialmente .NET en CentOS 7 y es probable que funcione con IronPdf si se configura correctamente. (lea por favor "Patrones de dependencia habituales en Linux"a continuación).

No hay imágenes Docker oficiales de Microsoft para .NET Core 3.1 o .NET 5.0 en CentOS 7.

Compatibilidad con Amazon AWS Linux 2

Tenemos soporte de trabajo para Amazon AWS Linux 2 que forma la base de los servicios en la nube de Amazon como EC2 y Lambda.

  • No existen imágenes Docker oficiales de Microsoft para .NET Core 3.1 o .NET 5.0 en Amazon AWS Linux 2.
  • Probamos manualmente la compatibilidad con Amazon AWS Linux 2 a medida que desarrollamos IronPDF.

    Le recomendamos que lea nuestro IronPDF AWS Lambda que contiene un archivo Docker funcional para IronPdf en AWS Lambda.

    ** Configuración manual de Amazon Linux 2

    Si desea instalar manualmente o su aplicación no se puede ejecutar con sudo privilegios de administrador.

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

Lea también nuestra documentación en nuestro soporte oficial IronPdf para AWS Lambda que incluye la instalación y el registro en la plataforma en la nube de Amazon.

Compatibilidad con Fedora Linux

Fedora Linux es compatible.

Apoyamos Fedora Linux 33 fuera de la caja con cero configuración.

  • Compatibilidad con motores de conversión de HTML a PDF basados en Chrome y **WebKit
  • Compatibilidad oficial con .NET Core 3.1, 5, 6 (LTS), 7 y 8 tiempos de ejecución
  • Realizamos pruebas de humo exhaustivas en esta plataforma antes de cada lanzamiento.

    **Configuración manual de Fedora Linux

    Si desea instalar manualmente o su aplicación no se puede ejecutar con sudo privilegios de administrador.

    Esto también puede ayudar con versiones antiguas o nuevas de Fedora Linux.

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

Compatibilidad Alpine Linux

No es posible ejecutar IronPDF en Alpine Linux. Ojalá pudiéramos, pero no podemos. Francamente, nos gusta Alpine y esperamos que este proyecto continúe y crezca. A partir de 2023, Alpine todavía utiliza librerías de lenguaje C "musl" obsoletas que no permiten a los desarrolladores de chromium soportar completamente este SO todavía.

Uso de Alpine Docker con IronPdfEngine en .NET 6

IronPdf proporciona una imagen contenedora que contiene todas las funcionalidades de IronPdf. Esto permite a los proyectos que se ejecutan en Alpine acceder a las funcionalidades de IronPdf conectándose al contenedor IronPdfEngine.

Paso 1: Extraer y ejecutar la imagen Docker del motor IronPdf

Ejecute los siguientes comandos en su terminal para extraer y ejecutar la imagen Docker del motor IronPdf:

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

Paso 2: Configurar la aplicación de consola

Cree una nueva aplicación de consola orientada a .NET 6.

Instale el paquete NuGet IronPdf.Slim mediante el gestor de paquetes NuGet.

Otras distribuciones de Linux

También puede instalar manualmente los requisitos previos de IronPDF para Linux utilizando apt-get hfs y yum.

Esto le permite utilizar IronPDF en muchas distribuciones Linux no compatibles.

Generalmente durante la instalación por primera vez IronPDF lanzará excepciones para informarle de cualquier dependencia necesaria del sistema.

  • El IronCefSubprocess mencionado a continuación es un binario dentro de la carpeta bin de su aplicación. Es posible que tenga que especificar una ruta exacta que puede estar en el subdirectorio runtimes de bin.
  • Es posible que necesite privilegios sudo.

    Si no está seguro de cómo proceder con un sistema operativo Linux no incluido en la lista; investigue las dependencias del navegador Chromium en ese sistema operativo.

    Si desea votar a favor del apoyo oficial a otra distribución Linux, póngase en contacto con support@ironsoftware.com.

    Patrones de dependencia comunes para Linux

    Por favor, estudie también los paquetes de dependencia para otros sistemas operativos 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 es un archivo binario dentro de la carpeta bin de su aplicación. Tiene que ser ejecutable por el proceso .NET.

Por ejemplo (la trayectoria puede variar)

chmod 755 bin/runtimes/linux-64/IronCefSubprocess

dotnet single-file publishing en Linux

Si decide exportar su proyecto como publicación de archivo único en Linux, así es como debe hacerlo.

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

Rutas de archivos temporales

Los desarrolladores pueden necesitar especificar un directorio con permisos de escritura donde se puedan crear archivos temporales para algunos casos de uso.

Un valor común y seguro para esta ruta es /tmp/ en Linux, pero en última instancia debe ser una ruta donde el usuario pueda leer y escribir archivos.

//Establecer ruta temporal de IronPDF
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;
//Establecer ruta temporal de IronPDF
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;
'Establecer ruta temporal de IronPDF
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#