Instalar el SDK de .NET con Snap
Este artículo describe cómo instalar el paquete de Snap .NET SDK. Los paquetes de Snap del SDK de .NET son proporcionados y mantenidos por Canonical. Los snaps son una excelente alternativa para el administrador de paquetes integrada en la distribución de Linux.
Un Snap es un paquete de una aplicación y sus dependencias que funciona en diferentes distribuciones de Linux. Los snaps se reconocen y se instalan desde el almacén de snaps. Para obtener más información sobre Snap, consulte el las directivas, consulte el Paseo por el inicio rápido.
Precaución
Las instalaciones de Snap de .NET pueden tener problemas al ejecutar las herramientas de .NET. Si desea usar las herramientas de .NET, se recomienda instalar .NET mediante el dotnet-install
script o el administrador de paquetes para la distribución de Linux concreta.
Que el comando dotnet watch
no funciona cuando .NET se instala mediante Snap es un problema conocido.
Si va a usar las herramientas de .NET o el comando dotnet watch
, se recomienda instalar .NET mediante el dotnet-install
script .
Requisitos previos
- Distribución de Linux que admite Snap.
snapd
demonio del Snap.
Es posible que su distribución de Linux ya incluya el Snap. Pruebe a ejecutar snap
desde un terminal para ver si el comando funciona. Para obtener una lista de las distribuciones de Linux admitidas e instrucciones sobre cómo instalar Snap, consulte Instalaciónsnapd
.
Versiones de .NET
Microsoft publica .NET en dos directivas de soporte técnico diferentes, soporte técnico a largo plazo (LTS) y compatibilidad con términos estándar (STS). La calidad de todas las versiones es la misma. La única diferencia es la duración del soporte técnico. Las versiones LTS obtienen soporte técnico y revisiones gratuitas durante tres años. Las versiones STS obtienen soporte técnico y revisiones gratuitas durante 18 meses. Para más información, consulte Directiva de soporte de .NET.
Las versiones de .NET que actualmente son compatibles con Microsoft son:
- 9.0 (STS): el soporte técnico finaliza mayo de 2026.
- 8.0 (LTS): el soporte técnico finaliza el 10 de noviembre de 2026.
Otras entidades que crean y publican .NET podrían introducir diferentes directivas de soporte. Asegúrese de consultar con ellos para saber cómo se admite .NET.
1. Instalar el SDK
Importante
.NET 9 se publicó el 12 de noviembre de 2024. Los paquetes pueden tardar tiempo en aparecer en las fuentes del administrador de paquetes o en la distribución específica de Linux para incluirlos.
Los paquetes de snaps para el SDK de .NET se publican con el mismo identificador: dotnet-sdk
. Se puede instalar una versión específica del SDK mediante la especificación del canal. El SDK incluye tanto ASP.NET Core como .NET runtime, versionados al SDK.
Sugerencia
La página del paquete Snapcraft .NET SDK incluye instrucciones específicas para cada distribución sobre cómo instalar Snapcraft y .NET.
Abra un terminal.
Utilice
snap install
para instalar el paquete Snap de .NET SDK. Por ejemplo, el siguiente comando instala el canallatest/stable
, que es el predeterminado.sudo snap install dotnet-sdk --classic
- El parámetro
--classic
es obligatorio. - Utilice el parámetro
--channel
para especificar la versión que desea instalar. Si se omite este parámetro, se usalatest/stable
. Por ejemplo,--channel 8.0/stable
instala el SDK de .NET 8.0.
- El parámetro
El alias del Snap dotnet
se crea automáticamente y se asigna al comando del paquete Snap dotnet
.
La siguiente tabla enumera los canales de paquetes que puede instalar:
Versión de .NET | Canal de paquetes de Snap |
---|---|
9 (STS) | *Todavía no disponible |
8 (LTS) | 8.0/stable lts/stable |
7 (STS) | 7.0/stable (fuera de soporte técnico) |
6 (LTS) | 6.0/stable (fuera de soporte técnico) |
5 | 5.0/stable (fuera de soporte técnico) |
3.1 | 3.1/stable (fuera de soporte técnico) |
2.1 | 2.1/stable (fuera de soporte técnico) |
2. Exportación de la ubicación de instalación
Las herramientas suelen usar la variable de entorno DOTNET_ROOT
para determinar dónde está instalado .NET. Cuando .NET se instala mediante Snap, esta variable de entorno no está configurada. Debe configurar la variable de entorno DOTNET_ROOT en el perfil. La ruta a Snap usa el siguiente formato: /snap/{package}/current
.
export DOTNET_ROOT=/snap/dotnet-sdk/current
Exportación permanente de la variable de entorno
El comando export
anterior solo establece la variable de entorno para la sesión de terminal en la que se ha ejecutado.
Puede editar el perfil del shell para agregar los comandos de forma permanente. Hay muchos shells diferentes disponibles para Linux y cada uno tiene un perfil diferente. Por ejemplo:
- Shell de Bash: ~/.bash_profile, ~/.bashrc
- Shell de Korn: ~/.kshrc or .profile
- Z Shell: _~/.zshrc* o .zprofile
Edite el archivo de código fuente adecuado para el shell y agregue export DOTNET_ROOT=/snap/dotnet-sdk/current
.
3. Utilice la CLI de .NET
Abra un terminal y escriba dotnet
.
dotnet
Se muestra el siguiente resultado:
Usage: dotnet [options]
Usage: dotnet [path-to-application]
Options:
-h|--help Display help.
--info Display .NET information.
--list-sdks Display the installed SDKs.
--list-runtimes Display the installed runtimes.
path-to-application:
The path to an application .dll file to execute.
Para obtener información sobre cómo usar la CLI de .NET, consulte Información general sobre la CLI de .NET.
Solución de problemas
- El comando dotnet terminal no funciona
- No se puede instalar Snap en WSL2
- No se puede resolver el comando dotnet ni el SDK
- Errores de certificado TLS/SSL
El comando dotnet terminal no funciona
Los paquetes Snap pueden asignar un alias a un comando proporcionado por el paquete. Por defecto, los paquetes Snap del SDK .NET crean un alias para el comando dotnet
. Si el alias no se creó o se eliminó previamente, el siguiente comando muestra cómo asignar el alias:
sudo snap alias dotnet-sdk.dotnet dotnet
No se puede instalar Snap en WSL2
systemd
debe estar habilitado en la instancia de WSL2 para poder instalar Snap.
Abra
/etc/wsl.conf
en un editor de texto de su elección.Pegue la siguiente configuración:
[boot] systemd=true
Guarde el archivo y reinicie la instancia de WSL2 a través de PowerShell. Use el comando
wsl.exe --shutdown
.
No se puede resolver el comando dotnet o SDK
Es habitual que otras aplicaciones, como un IDE de código o una extensión en Visual Studio Code, intenten resolver la ubicación del SDK .NET. Normalmente, el descubrimiento se realiza comprobando la variable de entorno DOTNET_ROOT
o averiguando dónde se encuentra el ejecutable dotnet
. Un SDK .NET instalado a presión podría confundir a estas aplicaciones. Cuando estas aplicaciones no pueden resolver el SDK .NET, aparece un error similar a uno de los siguientes mensajes:
- No se encontró el SDK "Microsoft.NET.Sdk" especificado
- No se encontró el SDK "Microsoft.NET.Sdk.Web" especificado
- No se encontró el SDK "Microsoft.NET.Sdk.Razor" especificado
Pruebe los siguientes pasos para solucionar el problema:
Asegúrese de exportar la variable
DOTNET_ROOT
de entorno de forma permanente.Intente establecer un vínculo simbólico con el ejecutable de Snap
dotnet
en la ubicación que busca el programa.Dos rutas comunes que busca el comando
dotnet
son:/usr/local/bin/dotnet
/usr/share/dotnet
Utilice el siguiente comando para crear un vínculo simbólico al paquete Snap:
ln -s /snap/dotnet-sdk/current/dotnet /usr/local/bin/dotnet
Errores de certificado TLS/SSL
Cuando .NET se instala a través de Snap, es posible que en algunas distribuciones no se encuentren los certificados TLS/SSL de .NET y reciba un error durante restore
:
Processing post-creation actions...
Running 'dotnet restore' on /home/myhome/test/test.csproj...
Restoring packages for /home/myhome/test/test.csproj...
/snap/dotnet-sdk/27/sdk/2.2.103/NuGet.targets(114,5): error : Unable to load the service index for source https://api.nuget.org/v3/index.json. [/home/myhome/test/test.csproj]
/snap/dotnet-sdk/27/sdk/2.2.103/NuGet.targets(114,5): error : The SSL connection could not be established, see inner exception. [/home/myhome/test/test.csproj]
/snap/dotnet-sdk/27/sdk/2.2.103/NuGet.targets(114,5): error : The remote certificate is invalid according to the validation procedure. [/home/myhome/test/test.csproj]
Para resolver este problema, establezca algunas variables de entorno:
export SSL_CERT_FILE=[path-to-certificate-file]
export SSL_CERT_DIR=/dev/null
La ubicación del certificado varía según la distribución. A continuación se indican las ubicaciones de las distribuciones en las que se ha observado el problema:
Distribución | Ubicación |
---|---|
Fedora | /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem |
OpenSUSE | /etc/ssl/ca-bundle.pem |
Solus | /etc/ssl/certs/ca-certificates.crt |