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.
Bir terminal açın.
.NET SDK ek bileşenini yüklemek için kullanın
snap install
. Örneğin, aşağıdaki komut varsayılan olan kanalı yüklerlatest/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ırlatest/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
- WSL2'ye Snap yüklenemiyor
- dotnet komutu veya SDK çözümlenemiyor
- TLS/SSL Sertifikası hataları
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.
Seçtiğiniz bir metin düzenleyicisinde açın
/etc/wsl.conf
.Aşağıdaki yapılandırmayı yapıştırın:
[boot] systemd=true
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:
Ortam değişkenini kalıcı olarak dışarı aktardığınızdan
DOTNET_ROOT
emin olun.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 restore
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 |