Aracılığıyla paylaş


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ğidotnet-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ğidotnet-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 iki yıl 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:

  • 10.0 (LTS)—Destek 14 Kasım 2028'de sona eriyor.
  • 9.0 (STS)—Destek 10 Kasım 2026'da sona eriyor.
  • 8.0 (LTS)—Destek 10 Kasım 2026'da 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

Önemli

.NET 10, 11 Kasım 2025'te yayımlandı. Paketlerin paket yöneticisi akışlarında görünmesi veya belirli Linux dağıtımınızın dahil olması zaman alabilir.

.NET 9'dan başlayarak, .NET SDK'sı için snap paketleri sürüme özgü tanımlayıcılar (örneğin, dotnet-sdk-90 .NET 9 ve dotnet-sdk-100 .NET 10 için) altında yayımlanır. .NET 9'tan önce, tüm SDK sürümleri aynı tanımlayıcı dotnet-sdkaltında yayımlanmıştı ve sürümü bir kanal üzerinden belirttiniz. Buna ek olarak, .NET 9 ve sonraki snap paketleri hem x64 hem de Arm64 mimarilerini desteklerken, önceki sürümler ise yalnızca x64 destekler. 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 .

    --classic parametresi zorunludur.

    • .NET 9 ve üzeri için

      Belirli bir sürüme ait paketi yükleyin. Örneğin, aşağıdaki komut .NET SDK 10'u yükler:

      sudo snap install dotnet-sdk-100 --classic
      
    • .NET 8 ve öncesi için

      Paketinden dotnet-sdk yükleyin ve bir kanal belirtin. Bu parametre atlanırsa kullanılır latest/stable . Örneğin, aşağıdaki komut .NET SDK 8'i yükler:

      sudo snap install dotnet-sdk --classic --channel 8.0/stable
      

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

Aşağıdaki tabloda yükleyebileceğiniz snap paketleri ve kanalları listelenmiştir.

.NET sürümü Snap paketi veya kanalı
10 (LTS) dotnet-sdk-100 (önizleme)
9 (STS) dotnet-sdk-90
8 (LTS) dotnet-sdk --channel 8.0/stable
7 dotnet-sdk --channel 7.0/stable (destek dışı)
6 dotnet-sdk --channel 6.0/stable (destek dışı)
5 dotnet-sdk --channel 5.0/stable (destek dışı)
3.1 dotnet-sdk --channel 3.1/stable (destek dışı)
2.1 dotnet-sdk --channel 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.

.NET 9 ve üzeri için sürüme özgü paket adını kullanın:

export DOTNET_ROOT=/snap/dotnet-sdk-100/current

.NET 8 ve önceki sürümler için paylaşılan paket adını kullanın:

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 yüklü .NET sürümünüz için dışarı aktarma komutunu ekleyin. .NET 9+ için kullanın export DOTNET_ROOT=/snap/dotnet-sdk-100/current (sürüm numarasını gerektiği gibi ayarlayın). .NET 8 ve öncesi için kullanın 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. Takma ad oluşturulmadıysa veya daha önce kaldırıldıysa, takma adı eşleştirmek için aşağıdaki komutu kullanın.

.NET 9 ve üzeri için:

sudo snap alias dotnet-sdk-100.dotnet dotnet

.NET 8 ve öncesi için:

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ı olarakDOTNET_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

    "Snap paketine sembolik bir bağlantı oluşturmak için aşağıdaki komutu kullanın." .NET 9 ve üzeri için sürüme özgü paket adını kullanın:

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

    .NET 8 ve öncesi için:

    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