Instalación del SDK y el entorno de ejecución de .NET en Ubuntu

.NET es compatible con Ubuntu. En este artículo se describe cómo instalar .NET en Ubuntu. Cuando una versión de Ubuntu no es compatible, .NET deja de ser compatible con esa versión.

Instale el SDK (que incluye el entorno de ejecución) si quiere desarrollar aplicaciones .NET. O bien, si solo necesita ejecutar aplicaciones, instale el entorno de ejecución. Si va a instalar el entorno de ejecución, se recomienda instalar el entorno de ejecución de ASP.NET Core, ya que incluye los de .NET y ASP.NET Core.

Si ya ha instalado el SDK o el entorno de ejecución, use los comandos dotnet --list-sdks y dotnet --list-runtimes para ver qué versiones están instaladas. Para obtener más información, vea Cómo comprobar que .NET Core ya está instalado.

Importante

Las instalaciones del administrador de paquetes solo se admiten en la arquitectura x64. Otras arquitecturas, como Arm, deben instalar .NET por otros medios, como Snap, un script de instalador o por medio de una instalación binaria manual.

Para obtener más información sobre cómo instalar .NET sin un administrador de paquetes, consulte uno de los siguientes artículos:

Distribuciones admitidas

En la tabla siguiente se muestra una lista de versiones de .NET actualmente compatibles y las versiones de Ubuntu en las que se admiten.

Ubuntu .NET
22.10 7, 6
22.04 (LTS) 7, 6
20.04 (LTS) 7, 6, 3.1
18.04 (LTS) 7, 6, 3.1
16.04 (LTS) 6, 3.1

Las versiones siguientes de .NET ya ❌ no se admiten:

  • .NET 5
  • .NET Core 3.0
  • .NET Core 2.2
  • .NET Core 2.1
  • .NET Core 2.0

Instalación de versiones preliminares

Las versiones preliminares y las candidatas para lanzamiento de .NET no están disponibles en los administradores de paquetes. Puede instalar las versiones preliminares y versiones candidatas para lanzamiento de .NET de una de las formas siguientes:

Eliminación de versiones preliminares

Cuando se usa un administrador de paquetes para administrar la instalación de .NET, es posible que se produzca un conflicto si previamente se ha instalado una versión preliminar. El administrador de paquetes puede interpretar la versión que no es preliminar como una versión anterior de .NET. Para instalar la versión que no es preliminar, desinstale primero las versiones preliminares. Para obtener más información sobre cómo desinstalar .NET, vea Procedimiento para quitar el entorno de ejecución y el SDK de .NET.

22.10

Importante

.NET 7 aún no está listo en la fuente de Ubuntu y solo está disponible a través de las fuentes de Microsoft. Sin embargo, .NET 6 está disponible en la fuente ubuntu 22.10. Estas instrucciones muestran cómo instalar .NET 7 a través de la fuente del administrador de paquetes de Microsoft.

La instalación con APT puede realizarse con unos pocos comandos. Antes de instalar .NET, ejecute los siguientes comandos para agregar la clave de la firma del paquete de Microsoft a la lista de claves de confianza y agregar el repositorio de paquetes.

Abra un terminal y ejecute los comandos siguientes:

wget https://packages.microsoft.com/config/ubuntu/22.10/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb

Instalación del SDK

El SDK de .NET permite desarrollar aplicaciones con .NET. Si instala el SDK de .NET, no necesita instalar el entorno de ejecución correspondiente. Para instalar el SDK de .NET, ejecute los comandos siguientes:

sudo apt-get update && \
  sudo apt-get install -y dotnet-sdk-7.0

Importante

Si recibe un mensaje de error similar a No se puede encontrar el paquete dotnet-sdk-7.0, consulte la sección de solución de problemas .

Instalación de la instancia en tiempo de ejecución

El entorno de ejecución de ASP.NET Core le permite ejecutar aplicaciones creadas con .NET en las que no se ha proporcionado el entorno de ejecución. Los comandos siguientes instalan el entorno de ejecución de ASP.NET Core, el más compatible con .NET. En el terminal, ejecute los comandos siguientes:

sudo apt-get update && \
  sudo apt-get install -y aspnetcore-runtime-7.0

Importante

Si recibe un mensaje de error similar a No se puede encontrar el paquete aspnetcore-runtime-7.0, consulte la sección de solución de problemas .

Una alternativa al entorno de ejecución de ASP.NET Core es instalar el de .NET, que no incluye compatibilidad con ASP.NET Core; en el comando anterior, reemplace aspnetcore-runtime-7.0 por dotnet-runtime-7.0:

sudo apt-get install -y dotnet-runtime-7.0

Nota

Ubuntu 22.10 incluye OpenSSL 3 como versión de línea base. Las versiones de .NET anteriores a .NET 6 no admiten OpenSSL 3. Microsoft no prueba ni admite el uso de OpenSSL 1.x en Ubuntu 22.10. Para obtener más información, consulte Mejoras de seguridad de .NET 6.

22.04

Advertencia

Si ya ha instalado .NET desde packages.microsoft.com, es posible que se produzcan problemas al cambiar a las fuentes integradas del administrador de paquetes de Ubuntu para .NET. Para obtener más información, consulte el aviso sobre la instalación de .NET en Ubuntu y Solución de problemas de combinaciones de paquetes de .NET.

.NET 6 se incluye en las fuentes del administrador de paquetes de Ubuntu 22.04.

Importante

.NET 7 no se incluye en las fuentes de Ubuntu y debe usar la fuente de paquetes de Microsoft 22.04.

Instalación del SDK

El SDK de .NET permite desarrollar aplicaciones con .NET. Si instala el SDK de .NET, no necesita instalar el entorno de ejecución correspondiente. Para instalar el SDK de .NET, ejecute los comandos siguientes:

sudo apt-get update && \
  sudo apt-get install -y dotnet-sdk-6.0

Instalación de la instancia en tiempo de ejecución

El entorno de ejecución de ASP.NET Core le permite ejecutar aplicaciones creadas con .NET en las que no se ha proporcionado el entorno de ejecución. Los comandos siguientes instalan el entorno de ejecución de ASP.NET Core, el más compatible con .NET. En el terminal, ejecute los comandos siguientes:

sudo apt-get update && \
  sudo apt-get install -y aspnetcore-runtime-6.0

Una alternativa al entorno de ejecución de ASP.NET Core es instalar el de .NET, que no incluye compatibilidad con ASP.NET Core; en el comando anterior, reemplace aspnetcore-runtime-6.0 por dotnet-runtime-6.0:

sudo apt-get install -y dotnet-runtime-6.0

22.04 (fuente de paquetes de Microsoft)

Importante

.NET 6 se incluye en las fuentes del administrador de paquetes de Ubuntu 22.04, pero .NET 7 no. Para instalar .NET 7, debe usar la fuente de paquetes Microsoft. Si ha instalado anteriormente .NET desde la fuente del administrador de paquetes de Ubuntu, es posible que se produzcan problemas al cambiar a la fuente del administrador de paquetes de Microsoft para .NET. Para obtener más información, consulte el aviso sobre la instalación de .NET en Ubuntu y Solución de problemas de combinaciones de paquetes de .NET.

La instalación con APT puede realizarse con unos pocos comandos. Antes de instalar .NET, ejecute los siguientes comandos para agregar la clave de la firma del paquete de Microsoft a la lista de claves de confianza y agregar el repositorio de paquetes.

Abra un terminal y ejecute los comandos siguientes:

wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb

Instalación del SDK

El SDK de .NET permite desarrollar aplicaciones con .NET. Si instala el SDK de .NET, no necesita instalar el entorno de ejecución correspondiente. Para instalar el SDK de .NET, ejecute los comandos siguientes:

sudo apt-get update && \
  sudo apt-get install -y dotnet-sdk-7.0

Importante

Si recibe un mensaje de error similar a No se puede encontrar el paquete dotnet-sdk-7.0, consulte la sección de solución de problemas .

Instalación de la instancia en tiempo de ejecución

El entorno de ejecución de ASP.NET Core le permite ejecutar aplicaciones creadas con .NET en las que no se ha proporcionado el entorno de ejecución. Los comandos siguientes instalan el entorno de ejecución de ASP.NET Core, el más compatible con .NET. En el terminal, ejecute los comandos siguientes:

sudo apt-get update && \
  sudo apt-get install -y aspnetcore-runtime-7.0

Importante

Si recibe un mensaje de error similar a No se puede encontrar el paquete aspnetcore-runtime-7.0, consulte la sección de solución de problemas .

Una alternativa al entorno de ejecución de ASP.NET Core es instalar el de .NET, que no incluye compatibilidad con ASP.NET Core; en el comando anterior, reemplace aspnetcore-runtime-7.0 por dotnet-runtime-7.0:

sudo apt-get install -y dotnet-runtime-7.0

Nota

Ubuntu 22.04 incluye OpenSSL 3 como versión de línea base. Las versiones de .NET anteriores a .NET 6 no admiten OpenSSL 3. Microsoft no prueba ni admite el uso de OpenSSL 1.x en Ubuntu 22.10. Para obtener más información, consulte Mejoras de seguridad de .NET 6.

20.04

La instalación con APT puede realizarse con unos pocos comandos. Antes de instalar .NET, ejecute los siguientes comandos para agregar la clave de la firma del paquete de Microsoft a la lista de claves de confianza y agregar el repositorio de paquetes.

Abra un terminal y ejecute los comandos siguientes:

wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb

Instalación del SDK

El SDK de .NET permite desarrollar aplicaciones con .NET. Si instala el SDK de .NET, no necesita instalar el entorno de ejecución correspondiente. Para instalar el SDK de .NET, ejecute los comandos siguientes:

sudo apt-get update && \
  sudo apt-get install -y dotnet-sdk-6.0

Importante

Si recibe un mensaje de error similar a No se puede encontrar el paquete dotnet-sdk-6.0, consulte la sección de solución de problemas .

Instalación de la instancia en tiempo de ejecución

El entorno de ejecución de ASP.NET Core le permite ejecutar aplicaciones creadas con .NET en las que no se ha proporcionado el entorno de ejecución. Los comandos siguientes instalan el entorno de ejecución de ASP.NET Core, el más compatible con .NET. En el terminal, ejecute los comandos siguientes:

sudo apt-get update && \
  sudo apt-get install -y aspnetcore-runtime-6.0

Importante

Si recibe un mensaje de error similar a No se puede encontrar el paquete aspnetcore-runtime-6.0, consulte la sección de solución de problemas .

Una alternativa al entorno de ejecución de ASP.NET Core es instalar el de .NET, que no incluye compatibilidad con ASP.NET Core; en el comando anterior, reemplace aspnetcore-runtime-6.0 por dotnet-runtime-6.0:

sudo apt-get install -y dotnet-runtime-6.0

18,04

La instalación con APT puede realizarse con unos pocos comandos. Antes de instalar .NET, ejecute los siguientes comandos para agregar la clave de la firma del paquete de Microsoft a la lista de claves de confianza y agregar el repositorio de paquetes.

Abra un terminal y ejecute los comandos siguientes:

wget https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb

Instalación del SDK

El SDK de .NET permite desarrollar aplicaciones con .NET. Si instala el SDK de .NET, no necesita instalar el entorno de ejecución correspondiente. Para instalar el SDK de .NET, ejecute los comandos siguientes:

sudo apt-get update && \
  sudo apt-get install -y dotnet-sdk-6.0

Importante

Si recibe un mensaje de error similar a No se puede encontrar el paquete dotnet-sdk-6.0, consulte la sección de solución de problemas .

Instalación de la instancia en tiempo de ejecución

El entorno de ejecución de ASP.NET Core le permite ejecutar aplicaciones creadas con .NET en las que no se ha proporcionado el entorno de ejecución. Los comandos siguientes instalan el entorno de ejecución de ASP.NET Core, el más compatible con .NET. En el terminal, ejecute los comandos siguientes:

sudo apt-get update && \
  sudo apt-get install -y aspnetcore-runtime-6.0

Importante

Si recibe un mensaje de error similar a No se puede encontrar el paquete aspnetcore-runtime-6.0, consulte la sección de solución de problemas .

Una alternativa al entorno de ejecución de ASP.NET Core es instalar el de .NET, que no incluye compatibilidad con ASP.NET Core; en el comando anterior, reemplace aspnetcore-runtime-6.0 por dotnet-runtime-6.0:

sudo apt-get install -y dotnet-runtime-6.0

16.04

La instalación con APT puede realizarse con unos pocos comandos. Antes de instalar .NET, ejecute los siguientes comandos para agregar la clave de la firma del paquete de Microsoft a la lista de claves de confianza y agregar el repositorio de paquetes.

Abra un terminal y ejecute los comandos siguientes:

wget https://packages.microsoft.com/config/ubuntu/16.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb

Instalación del SDK

El SDK de .NET permite desarrollar aplicaciones con .NET. Si instala el SDK de .NET, no necesita instalar el entorno de ejecución correspondiente. Para instalar el SDK de .NET, ejecute los comandos siguientes:

sudo apt-get update && \
  sudo apt-get install -y dotnet-sdk-6.0

Importante

Si recibe un mensaje de error similar a No se puede encontrar el paquete dotnet-sdk-6.0, consulte la sección de solución de problemas .

Instalación de la instancia en tiempo de ejecución

El entorno de ejecución de ASP.NET Core le permite ejecutar aplicaciones creadas con .NET en las que no se ha proporcionado el entorno de ejecución. Los comandos siguientes instalan el entorno de ejecución de ASP.NET Core, el más compatible con .NET. En el terminal, ejecute los comandos siguientes:

sudo apt-get update && \
  sudo apt-get install -y aspnetcore-runtime-6.0

Importante

Si recibe un mensaje de error similar a No se puede encontrar el paquete aspnetcore-runtime-6.0, consulte la sección de solución de problemas .

Una alternativa al entorno de ejecución de ASP.NET Core es instalar el de .NET, que no incluye compatibilidad con ASP.NET Core; en el comando anterior, reemplace aspnetcore-runtime-6.0 por dotnet-runtime-6.0:

sudo apt-get install -y dotnet-runtime-6.0

Procedimiento para instalar otras versiones

Todas las versiones de .NET están disponibles para la descarga en https://dotnet.microsoft.com/download/dotnet, pero requieren la instalación manual. Puede probar y usar el administrador de paquetes para instalar una versión diferente de .NET. Sin embargo, es posible que la versión solicitada no esté disponible.

Los paquetes agregados a las fuentes del administrador de paquetes se denominan con un formato susceptible de intrusiones, como, por ejemplo: {product}-{type}-{version}.

  • product
    Tipo de producto .NET que se va a instalar. Las opciones válidas son:

    • dotnet
    • aspnetcore
  • type
    Elige el SDK o el entorno de ejecución. Las opciones válidas son:

    • sdk
    • motor en tiempo de ejecución
  • version
    Versión del SDK o del entorno de ejecución que se va a instalar. En este artículo se proporcionarán siempre las instrucciones para la última versión admitida. Las opciones válidas son cualquier versión de lanzamiento, como las siguientes:

    • 5.0
    • 3.1
    • 3.0
    • 2.1

    Es posible que el SDK o el entorno de ejecución que intenta descargar no esté disponible para su distribución de Linux. Para obtener una lista de las distribuciones admitidas, vea Instalación de .NET en Linux.

Ejemplos

  • Instalación del entorno de ejecución de ASP.NET Core 5.0: aspnetcore-runtime-5.0
  • Instalación del entorno de ejecución de ASP.NET Core 2.1: dotnet-runtime-2.1
  • Instalación del SDK de .NET 5: dotnet-sdk-5.0
  • Instalación del SDK de .NET Core 3.1: dotnet-sdk-3.1

Falta el paquete

Si la combinación de paquete y versión no funciona, no está disponible. Por ejemplo, no hay un SDK de ASP.NET Core; los componentes del SDK se incluyen en el SDK de .NET. El valor aspnetcore-sdk-2.2 es no es correcto y debe ser dotnet-sdk-2.2. Para obtener una lista de las distribuciones de Linux compatibles con .NET, vea Dependencias y requisitos de .NET.

Uso de APT para actualizar .NET

Cuando hay disponible una nueva versión de revisión para .NET, basta con actualizarla mediante APT con los comandos siguientes:

sudo apt-get update
sudo apt-get upgrade

Si ha actualizado la distribución de Linux desde la instalación de .NET, es posible que tenga que volver a configurar el repositorio de paquetes de Microsoft. Ejecute las instrucciones de instalación de la versión de distribución actual a fin de actualizar al repositorio de paquetes adecuado para las actualizaciones de .NET.

Solución de problemas

A partir de Ubuntu 22.04, puede encontrarse con una situación en la que parece que solo hay disponible una parte de .NET. Por ejemplo, cuando ha instalado el entorno de ejecución y el SDK, pero cuando se ejecuta dotnet --info el SDK no aparece en la lista. Esto puede estar relacionado con el uso de dos orígenes de paquete diferentes. Las fuentes de paquetes oficiales de Ubuntu 22.04 y Ubuntu 22.10 incluyen .NET, pero es posible que también haya instalado .NET desde las fuentes de Microsoft. Para obtener más información sobre cómo corregir este problema, consulte Solución de problemas de fxr, libhostfxr.so y errores deFrameworkList.xml

Problemas de APT

En esta sección se proporciona información sobre los errores comunes que puede recibir al usar APT para instalar .NET.

No se puede encontrar el paquete

Importante

Las instalaciones del administrador de paquetes solo se admiten en la arquitectura x64. Otras arquitecturas, como Arm, deben instalar .NET por otros medios, como Snap, un script de instalador o por medio de una instalación binaria manual.

Para obtener más información sobre cómo instalar .NET sin un administrador de paquetes, consulte uno de los siguientes artículos:

No se ha podido encontrar \ No se han podido instalar algunos paquetes

Nota

Esta información solo se aplica cuando .NET está instalado desde la fuente de paquetes de Microsoft.

Si recibe un mensaje de error similar a No se puede encontrar el paquete {dotnet-package} o No se han podido instalar algunos paquetes, ejecute los comandos siguientes.

Hay dos marcadores de posición en el siguiente conjunto de comandos.

  • {dotnet-package}
    Representa el paquete de .NET que va a instalar, como aspnetcore-runtime-3.1. Se usa en el comando sudo apt-get install siguiente.

  • {os-version}
    Representa la versión de distribución en la que se encuentra. Se usa en el comando wget siguiente. La versión de distribución es el valor numérico, como 20.04 en Ubuntu o 10 en Debian.

Primero, pruebe a purgar la lista de paquetes:

sudo dpkg --purge packages-microsoft-prod && sudo dpkg -i packages-microsoft-prod.deb
sudo apt-get update

Después, intente volver a instalar .NET. Si eso no funciona, puede ejecutar una instalación manual con los comandos siguientes:

sudo apt-get install -y gpg
wget -O - https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor -o microsoft.asc.gpg
sudo mv microsoft.asc.gpg /etc/apt/trusted.gpg.d/
wget https://packages.microsoft.com/config/ubuntu/{os-version}/prod.list
sudo mv prod.list /etc/apt/sources.list.d/microsoft-prod.list
sudo chown root:root /etc/apt/trusted.gpg.d/microsoft.asc.gpg
sudo chown root:root /etc/apt/sources.list.d/microsoft-prod.list
sudo apt-get update && \
  sudo apt-get install -y {dotnet-package}

No se pudo capturar el elemento

Al instalar el paquete de .NET, puede ver un error similar a Failed to fetch ... File has unexpected size ... Mirror sync in progress?. Este error podría significar que la fuente de paquetes de .NET se está actualizando con versiones de paquetes más recientes y que debe volver a intentarlo más tarde. Durante una actualización, la falta de disponibilidad de la fuente de paquetes no debe ser superior a 30 minutos. Si recibe este error continuamente durante más de 30 minutos, abra una incidencia en https://github.com/dotnet/core/issues.

Dependencias

Al realizar la instalación con un administrador de paquetes, estas bibliotecas se instalan automáticamente. Pero si instala manualmente .NET o publica una aplicación independiente, deberá asegurarse de que estas bibliotecas estén instaladas:

  • libc6
  • libgcc1
  • libgcc-s1 (para 22.x)
  • libgssapi-krb5-2
  • libicu52 (para 14.x)
  • libicu55 (para 16.x)
  • libicu60 (para 18.x)
  • libicu66 (para 20.x)
  • libicu70 (para 22.04)
  • libicu71 (para 22.10)
  • liblttng-ust1 (para 22.x)
  • libssl1.0.0 (para 14.x, 16.x)
  • libssl1.1 (para 18.x, 20.x)
  • libssl3 (para 22.x)
  • libstdc++6
  • libunwind8 (para 22.x)
  • zlib1g

Para las aplicaciones de .NET en las que se usa el ensamblado System.Drawing.Common, también se necesita la dependencia siguiente:

  • libgdiplus (versión 6.0.1 o posteriores)

    Advertencia

    Puede instalar una versión reciente de libgdiplus agregando el repositorio Mono al sistema. Para obtener más información, vea https://www.mono-project.com/download/stable/.

Pasos siguientes