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

En este artículo se describe cómo instalar .NET en Debian. Cuando una versión de Debian no es compatible, .NET deja de ser compatible con esa versión. Pero estas instrucciones pueden ayudarle a conseguir que .NET se ejecute en esas versiones, aunque no se admita.

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.

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

El uso de un administrador de paquetes para instalar .NET desde la fuente de paquetes de Microsoft solo admite la arquitectura x64. Otras arquitecturas, como la Arm, no son compatibles con la Fuente de paquetes de Microsoft.

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 Debian en las que se admiten. Estas versiones siguen siendo compatibles hasta que la versión de .NET llegue al final del soporte técnico o la versión de Debian llegue al final del ciclo de vida.

Debian .NET
12 8, 7, 6
11 8, 7, 6
10 7, 6

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

  • .NET 5
  • .NET Core 3.1
  • .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 candidatas para lanzamiento de .NET no están disponibles en los repositorios 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.

Debian 12

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/debian/12/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-8.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-8.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-8.0 por dotnet-runtime-8.0:

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

Debian 11

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/debian/11/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-8.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-8.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-8.0 por dotnet-runtime-8.0:

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

Debian 10

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

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

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

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 intentar 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 (solo disponible para el producto dotnet )
    • runtime
  • version
    Versión del SDK o del entorno de ejecución que se va a instalar. Las opciones válidas son cualquier versión de lanzamiento, como las siguientes:

    • 8.0
    • 6.0
    • 3.1
    • 2.1

    Es posible que el SDK o el entorno de ejecución que intenta descargar no esté disponible para la 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 8.0: aspnetcore-runtime-8.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

Nota:

Es posible que algún paquete no esté disponible en la distribución de Linux.

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 para ASP.NET Core se incluyen con el SDK de .NET. El valor aspnetcore-sdk-8.0 es no es correcto y debe ser dotnet-sdk-8.0. 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

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

El uso de un administrador de paquetes para instalar .NET desde la fuente de paquetes de Microsoft solo admite la arquitectura x64. Otras arquitecturas, como la Arm, no son compatibles con la Fuente de paquetes de Microsoft.

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

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-8.0. Se usa en el comando sudo apt-get install siguiente.

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:

Si usa Debian 12 o posterior, pruebe los siguientes comandos:

# Define the OS version, name, and codename
source /etc/os-release

# Download the Microsoft keys
sudo apt-get install -y gpg wget
wget https://packages.microsoft.com/keys/microsoft.asc
cat microsoft.asc | gpg --dearmor -o microsoft.asc.gpg

# Add the Microsoft repository to the system's sources list
wget https://packages.microsoft.com/config/$ID/$VERSION_ID/prod.list
sudo mv prod.list /etc/apt/sources.list.d/microsoft-prod.list

# Move the key to the appropriate place
sudo mv microsoft.asc.gpg $(cat /etc/apt/sources.list.d/microsoft-prod.list | grep -oP "(?<=signed-by=).*(?=\])")

# Update packages and install .NET
sudo apt-get update && \
  sudo apt-get install -y {dotnet-package}

Si usa una versión de Debian anterior a la 12, pruebe los siguientes comandos:

# Define the OS version, name, and codename
source /etc/os-release

# Download the Microsoft keys
sudo apt-get install -y gpg wget
wget https://packages.microsoft.com/keys/microsoft.asc
cat microsoft.asc | gpg --dearmor -o microsoft.asc.gpg
sudo mv microsoft.asc.gpg /etc/apt/trusted.gpg.d/

# Add the Microsoft repository to the system's sources list
wget https://packages.microsoft.com/config/$ID/$VERSION_ID/prod.list
sudo mv prod.list /etc/apt/sources.list.d/microsoft-prod.list

# Set ownership
sudo chown root:root /etc/apt/trusted.gpg.d/microsoft.asc.gpg
sudo chown root:root /etc/apt/sources.list.d/microsoft-prod.list

# Update packages and install .NET
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 (para 10.x)
  • libgcc-s1 (para 11.x y 12.x)
  • libgssapi-krb5-2
  • libicu63 (para 10.x)
  • libicu67 (para 11.x)
  • libicu72 (para 12.x)
  • libssl1.1
  • libstdc++6
  • zlib1g

Las dependencias se pueden instalar con el comando apt install. En el fragmento de código siguiente se muestra cómo instalar la biblioteca libc6:

sudo apt install libc6

Si la aplicación de .NET usa el ensamblado System.Drawing.Common, también será necesario instalar libgdiplus. Dado que System.Drawing.Common ya no se admite en Linux, solo funciona en .NET 6 y requiere que se establezca el conmutador de configuración en tiempo de ejecución System.Drawing.EnableUnixSupport.

Puede instalar una versión reciente de libgdiplusagregando el repositorio Mono al sistema.

Pasos siguientes