Snap ile .NET SDK'sı yükleme

Bu makalede .NET SDK ek bileşeni paketinin nasıl yükleneceği açıklanmaktadır. .NET SDK ek paketleri Canonical tarafından sağlanır ve korunur. Tutturmalar, Linux dağıtımınızda yerleşik olarak bulunan paket yöneticisine harika bir alternatiftir.

Tutturma, bir uygulamanın ve birçok farklı Linux dağıtımında çalışan bağımlılıklarının bir paketidir. Tutturmalar, Snap Store'dan bulunabilir ve yüklenebilir. Snap hakkında daha fazla bilgi için bkz . Hızlı Başlangıç turu.

Dikkat

.NET'in anlık yüklemelerinde .NET araçlarını çalıştırma sorunları olabilir. .NET araçlarını kullanmak istiyorsanız, belirli bir Linux dağıtımı için betiği veya paket yöneticisini dotnet-install kullanarak .NET'i yüklemenizi öneririz.

Snap aracılığıyla .NET yüklendiğinde komutun dotnet watch çalışmaması bilinen bir sorundur.

.NET araçlarını veya dotnet watch komutunu kullanacaksanız betiği kullanarak dotnet-install .NET'i yüklemenizi öneririz.

Önkoşullar

  • Tutturma desteği olan Linux dağıtımı.
  • snapd snap daemon.

Linux dağıtımınız zaten snap içeriyor olabilir. Komutun çalışıp çalışmadığını görmek için terminalden çalıştırmayı snap deneyin. Desteklenen Linux dağıtımlarının listesi ve snap'i yükleme yönergeleri için bkz . Yükleme snapd.

.NET sürümleri

Microsoft, .NET'i uzun vadeli destek (LTS) ve Standart Dönem Desteği (STS) olarak iki farklı destek ilkesi altında yayımlar. Tüm sürümlerin kalitesi aynıdır. Tek fark desteğin uzunluğudur. LTS sürümleri üç yıl boyunca ücretsiz destek ve yamalar alır. STS sürümleri 18 ay boyunca ücretsiz destek ve yamalar alır. Daha fazla bilgi için bkz . .NET Destek İlkesi.

Şu anda Microsoft tarafından desteklenen .NET sürümleri şunlardır:

  • 8.0 (LTS)—Destek 10 Kasım 2026'da sona eriyor.
  • 6.0 (LTS)—Destek 12 Kasım 2024'de sona eriyor.

.NET'i derleyen ve yayımlayan diğer varlıklar farklı destek ilkelerine neden olabilir. .NET'in nasıl desteklendiğinden emin olmak için onlarla birlikte kontrol edin.

1. SDK'yi yükleme

.NET SDK'sı için tutturma paketlerinin tümü aynı tanımlayıcı altında yayımlanır: dotnet-sdk. KANALı belirterek SDK'nın belirli bir sürümü yüklenebilir. SDK hem ASP.NET Core hem de SDK'ya sürümlenmiş .NET çalışma zamanını içerir.

İpucu

Snapcraft .NET SDK paket sayfası Snapcraft ve .NET'in nasıl yükleneceğine ilişkin dağıtıma özgü yönergeler içerir.

  1. Bir terminal açın.

  2. .NET SDK ek bileşenini yüklemek için kullanın snap install . Örneğin, aşağıdaki komut varsayılan olan kanalı yükler latest/stable .

    sudo snap install dotnet-sdk --classic
    
    • --classic parametresi zorunludur.
    • Hangi sürümün --channel yükleneceğini belirtmek için parametresini kullanın. Bu parametre atlanırsa kullanılır latest/stable . Örneğin, --channel 8.0/stable .NET SDK 8.0'ı yükler.

Tutturma dotnet diğer adı otomatik olarak oluşturulur ve tutturma paketinin dotnet komutuyla eşlenir.

Aşağıdaki tabloda yükleyebileceğiniz paket kanalları listelenir:

.NET sürümü Paket kanalını tutturma
8 (LTS) 8.0/stable
latest/stable
lts/stable
7 7.0/stable (destek dışı)
6 (LTS) 6.0/stable
5 5.0/stable (destek dışı)
3.1 3.1/stable (destek dışı)
2.1 2.1/stable (destek dışı)

2. Yükleme konumunu dışarı aktarma

Ortam DOTNET_ROOT değişkeni genellikle araçlar tarafından .NET'in nereye yüklendiğini belirlemek için kullanılır. .NET Snap aracılığıyla yüklendiğinde, bu ortam değişkeni yapılandırılmaz. Profilinizde DOTNET_ROOT ortam değişkenini yapılandırmanız gerekir. Tutturma yolu şu biçimi kullanır: /snap/{package}/current.

export DOTNET_ROOT=/snap/dotnet-sdk/current

Ortam değişkenini kalıcı olarak dışarı aktarma

Yukarıdaki export komut yalnızca çalıştırıldığı terminal oturumu için ortam değişkenini ayarlar.

Komutları kalıcı olarak eklemek için kabuk profilinizi düzenleyebilirsiniz. Linux için kullanılabilen birçok farklı kabuk vardır ve her birinin farklı bir profili vardır. Örneğin:

  • Bash Kabuğu: ~/.bash_profile, ~/.bashrc
  • Korn Kabuğu: ~/.kshrc veya .profile
  • Z Kabuğu: _~/.zshrc* veya .zprofile

Kabuğunuz için uygun kaynak dosyasını düzenleyin ve ekleyin export DOTNET_ROOT=/snap/dotnet-sdk/current.

3. .NET CLI kullanın

Bir terminal açın ve yazın dotnet.

dotnet

Aşağıdaki çıktı görüntülenir:

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.

.NET CLI'yı kullanmayı öğrenmek için bkz . .NET CLI'ya genel bakış.

Sorun giderme

dotnet terminal komutu çalışmıyor

Paket tutturma, diğer adı paket tarafından sağlanan bir komutla eşleyebilir. Varsayılan olarak, .NET SDK uydurma paketleri komut için dotnet bir diğer ad oluşturur. Diğer ad oluşturulmadıysa veya daha önce kaldırılmışsa, aşağıdaki komut diğer adın nasıl eşlendiği gösterilir:

sudo snap alias dotnet-sdk.dotnet dotnet

WSL2'ye Snap yüklenemiyor

systemd Snap'in yüklenebilmesi için WSL2 örneğinde etkinleştirilmesi gerekir.

  1. Seçtiğiniz bir metin düzenleyicisinde açın /etc/wsl.conf .

  2. Aşağıdaki yapılandırmayı yapıştırın:

    [boot]
    systemd=true
    
  3. Dosyayı kaydedin ve PowerShell aracılığıyla WSL2 örneğini yeniden başlatın. wsl.exe --shutdown komutunu kullanın.

dotnet komutu veya SDK çözümlenemiyor

.NET SDK'sının konumunu çözümlemeye çalışmak için kod IDE veya Visual Studio Code'daki bir uzantı gibi diğer uygulamalarda yaygın olarak görülür. Bulma işlemi genellikle ortam değişkenini DOTNET_ROOT denetleyerek veya yürütülebilir dosyanın bulunduğu yeri dotnet bularak yapılır. Ek yüklenmiş bir .NET SDK'sı bu uygulamaların kafasını karıştırabilir. Bu uygulamalar .NET SDK'sını çözemezse, aşağıdaki iletilerden birine benzer bir hata görüntülenir:

  • Belirtilen 'Microsoft.NET.Sdk' SDK'sı bulunamadı
  • Belirtilen 'Microsoft.NET.Sdk.Web' SDK'sı bulunamadı
  • Belirtilen 'Microsoft.NET.Sdk.Razor' SDK'sı bulunamadı

Sorunu çözmek için aşağıdaki adımları deneyin:

  1. Ortam değişkenini kalıcı olarak dışarı aktardığınızdan DOTNET_ROOT emin olun.

  2. Tutturma dotnet yürütülebilir dosyasını programın aradığı konuma sembolik olarak bağlamayı deneyin.

    Komutun dotnet aradığı iki yaygın yol şunlardır:

    • /usr/local/bin/dotnet
    • /usr/share/dotnet

    Tutturma paketine sembolik bir bağlantı oluşturmak için aşağıdaki komutu kullanın:

    ln -s /snap/dotnet-sdk/current/dotnet /usr/local/bin/dotnet
    

TLS/SSL Sertifikası hataları

.NET Snap aracılığıyla yüklendiğinde, bazı dağıtımlarda .NET TLS/SSL sertifikaları bulunamayabilir ve sırasında restorebir hata alabilirsiniz:

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]

Bu sorunu çözmek için birkaç ortam değişkeni ayarlayın:

export SSL_CERT_FILE=[path-to-certificate-file]
export SSL_CERT_DIR=/dev/null

Sertifika konumu dağıtıma göre değişir. Sorunun gözlemlendiği dağıtımların konumları şunlardır:

Dağıtım Konum
Fedora /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem
OpenSUSE /etc/ssl/ca-bundle.pem
Solus /etc/ssl/certs/ca-certificates.crt