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: Başlarken.
Önemli
Snap ile .NET yüklerseniz, tüm .NET yüklemelerinizi yönetmek için Uydur'u kullanın. Birleştirme yöntemleri çakışmalara neden olabileceğinden Paket yöneticisi veya betikli yükleme gibi diğer yükleme yöntemleriyle Snap'i karıştırmaktan kaçının.
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
.NET SDK'sını yüklemek için sürüme özgü tutturma paketi tanımlayıcılarını kullanın çünkü bu yaklaşım birden çok SDK sürümünü yan yana yüklemenize ve yönetmenize olanak tanır. Örneğin, .NET 8 için dotnet-sdk-80 ve .NET 10 için dotnet-sdk-100 kullanın. 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. Bu makalede .NET 10 SDK snap paketi kullanılmıştır; farklı bir paket kullanıyorsanız, onunla değiştirin.
İpucu
Snapcraft .NET SDK paket sayfası (.NET 8, .NET 9, .NET 10), Snapcraft ve .NET'ın nasıl yükleneceğine ilişkin 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.Aşağıdaki komut .NET SDK 10'u yükler:
sudo snap install dotnet-sdk-100
Aşağıdaki tabloda, yükleyebileceğiniz .NET SDK snap paketleri listelenir:
| .NET sürümü | Snap paketi |
|---|---|
| 10 (LTS) | dotnet-sdk-100 |
| 9 (STS) | dotnet-sdk-90 |
| 8 (LTS) | dotnet-sdk-80 |
2. dotnet komutunu eşleme
Snap, tersine çevrilmemiş dotnet bir komut oluşturmadığından, sistem genelinde kullanılabilir hale getirmek dotnet için sembolik bir bağlantı oluşturun. Bu bağlantıyı yalnızca dotnet komutunu bu belirli Snap kurulumuna eşlemek istiyorsanız oluşturun. .NET’i zaten başka bir yöntemle yüklediyseniz ve bu bağlantıyı oluşturursanız, bu eşlemeyi geçersiz kılar.
Zaten /usr/local/bin/dotnet varsa, bağlantıyı oluşturmadan önce kaldırın.
sudo ln -s /snap/dotnet-sdk-100/current/usr/bin/dotnet /usr/local/bin/dotnet
3. Yükleme konumunu dışarı aktarma
Araçlar, .NET'in nereye yüklü olduğunu belirlemek için bunu kullandığından, DOTNET_ROOT ortam değişkenini shell profilinizde yapılandırın. Snap kurulumları bu değişkeni otomatik olarak ayarlamaz. Yol şu biçimi kullanır: /snap/{package}/current/usr/lib/dotnet.
export DOTNET_ROOT=/snap/dotnet-sdk-100/current/usr/lib/dotnet
100 öğesini, yüklediğiniz SDK sürümüyle değiştirin; örneğin, .NET 8 için 80 veya .NET 9 için 90 kullanın.
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, yüklü .NET sürümünüz için dışarı aktarma komutunu ekleyin ve değişikliklerinizi kaydedin.
Örneğin: export DOTNET_ROOT=/snap/dotnet-sdk-100/current/usr/lib/dotnet.
4. .NET CLI kullanın
Bir terminal açın ve komutunu çalıştırı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
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:
- Tamamlandı 2. dotnet komutunu eşleyin.
-
Ortam değişkenini kalıcı olarak dışa aktarma bölümündeki adımları izleyerek
DOTNET_ROOTortam değişkenini kalıcı olarak ayarlayın.
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 |