Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, .NET SDK snap paketinin nasıl yükleneceği açıklanır. .NET SDK ek paketleri Canonical tarafından sağlanır ve korunur. Snap'ler, Linux dağıtımınızda bulunan paket yöneticisine harika bir alternatiftir.
Snap, bir uygulama ve çeşitli Linux dağıtımlarıyla uyumlu olan bağımlılıkların bir paketidir. Snap paketleri, Snap Store'da keşfedilebilir ve yüklenebilir. Snap hakkında daha fazla bilgi için bkz . Hızlı Başlangıç turu.
Dikkat
.NET anlık yüklemelerinde .NET araçları çalıştırma sorunları olabilir. .NET araçları kullanmak istiyorsanız dotnet-install betiğini veya belirli Linux dağıtımı için paket yöneticisini kullanarak .NET yüklemenizi öneririz.
dotnet watch komutunun, .NET Snap aracılığıyla yüklendiğinde çalışmaması bilinen bir sorundur.
.NET araçlarını veya dotnet watch komutunu kullanacaksanız dotnet-install betiğini kullanarak .NET yüklemenizi öneririz.
Önkoşullar
- Snap desteği olan Linux dağıtımı.
-
snapdsnap hizmet programı.
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, uzun vadeli destek (LTS) ve Standart Dönem Desteği (STS) gibi iki farklı destek ilkesi altında .NET 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 oluşturan ve yayımlayan diğer kuruluşlar farklı destek politikalarını benimseyebilir. .NET 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 tutturma paketleri sürüme özgü tanımlayıcılar altında yayımlanır (örneğin, .NET 9 için dotnet-sdk-90 ve .NET 10 için dotnet-sdk-100). .NET 9'tan önce, tüm SDK sürümleri aynı tanımlayıcı dotnet-sdk altında yayımlandı ve sürümü bir kanal üzerinden belirttiniz. Ayrıca, .NET 9 ve üzeri snap paketleri hem x64 hem de Arm64 mimarilerini desteklerken, önceki sürümler yalnızca x64'i destekler. SDK, hem ASP.NET Core hem de .NET çalışma zamanını içerir ve ikisi de SDK'ya göre sürümlenmiştir.
İpucu
Snapcraft .NET SDK paket sayfası Snapcraft ve .NET yükleme hakkında dağıtıma özgü yönergeler içerir.
Bir terminal açın.
.NET SDK ek bileşeni paketini yüklemek için
snap installkullanın.--classicparametresi gereklidir.9 ve sonraki .NET 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-sdkyükleyin ve bir kanal belirtin. Bu parametre atlanırsa kullanılırlatest/stable. Örneğin, aşağıdaki komut .NET SDK 8'i yükler:sudo snap install dotnet-sdk --classic --channel 8.0/stable
Snap dotnet takma adı otomatik olarak oluşturulur ve snap 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
DOTNET_ROOT ortam değişkeni genellikle araçlar tarafından .NET 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. Snap yolu şu formatı 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 öncesi 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: ~/.bash_profile, ~/.bashrc
- Korn Shell: ~/.kshrc ya da .profile
- Z Shell: _~/.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 export DOTNET_ROOT=/snap/dotnet-sdk-100/current kullanın (sürüm numarasını gerektiği gibi ayarlayın). .NET 8 ve öncesi için export DOTNET_ROOT=/snap/dotnet-sdk/current kullanın.
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
- WSL2'ye Snap yüklenemiyor
- dotnet komutu veya SDK çözümlenemiyor
- TLS/SSL Sertifikası hataları
dotnet terminal komutu çalışmıyor
Snap paketleri, paket tarafından sağlanan bir komuta bir takma adlı eşleyebilir. Varsayılan olarak, .NET SDK snap paketleri dotnet komutu için 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.
Seçtiğiniz bir metin düzenleyicisinde açın
/etc/wsl.conf.Aşağıdaki yapılandırmayı yapıştırın:
[boot] systemd=trueDosyayı kaydedin ve PowerShell aracılığıyla WSL2 örneğini yeniden başlatın.
wsl.exe --shutdownkomutunu kullanın.
dotnet komutu veya SDK çözümlenemiyor
.NET SDK'sının konumunu çözümlemeye çalışmak, kod IDE'si veya Visual Studio Code'daki bir uzantı gibi diğer uygulamalar için yaygındı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. Snap ile yüklenen .NET SDK, 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 SDK 'Microsoft.NET.Sdk' bulunamadı.
- SDK 'Microsoft.NET.Sdk.Web' belirtildiği gibi bulunamadı
- SDK 'Microsoft.NET.Sdk.Razor' belirtildiği gibi bulunamadı
Sorunu çözmek için aşağıdaki adımları deneyin:
Ortam değişkenini kalıcı olarak dışa aktardığınızdan emin olun.
Programın aradığı konuma
dotnetyürütülebilir dosyasına sembolik bağlantı oluşturmayı deneyin.Komutun
dotnetaradığı 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 restore sırasında bir 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 |