dotnetup ile .NET SDK ve Runtime Yönetimi Kolaylaşıyor
macOS ve Linux tarafında.NET kurmanın uzun süredir birden fazla yolu vardı: apt veya brew gibi sistem paket yöneticileri, platforma özel tarball’lar, bir de dotnet-install.sh benzeri bağımsız kabuk betikleri. Microsoft bu dağınıklığı toparlamak için dotnetup adlı.NET toolchain yöneticisini public preview olarak duyurdu. Araç,.NET SDK ve runtime’larını doğrudan kullanıcı hesabınızın içinde kuruyor, yönetiyor ve güncelliyor; ortaya yönetici izni istemeyen, platformlar arasında tutarlı tek bir komut yüzeyi çıkıyor.
dotnetup neyi çözüyor?
Mevcut kurulum yöntemleri işini görüyor ama pratikte sürtünme çıkarıyor: yönetici izinleriyle çakışma, kök dizinlere dağılan dosyalar, yan yana (side-by-side) birden fazla runtime sürümü tutmanın gereğinden zor olması. dotnetup, Rust dünyasındaki rustup ya da Node tarafındaki nvm ile tanışık birine hemen tanıdık gelecek bir yaklaşımı.NET’e taşıyor; bir.NET ortamını ayağa kaldırmak için akılda tutulması gereken kavram sayısını azaltmak istiyor.
Duyuruda sıralanan tasarım hedefleri şöyle:
- Tutarlı kullanıcı deneyimi: kurulumun altyapısal ayrıntıları ne olursa olsun her platformda aynı komutlar, aynı araçlar.
- Varsayılan olarak yönetici gerektirmemek: dosyalar sistem sahipliğindeki dizinlerde değil, kullanıcıya ait klasörlerde durur; yükseltilmiş izne gerek kalmaz.
- Yan yana runtime yönetimi: birden fazla servicing sürümü, preview kanalı ve daily build aynı anda, birbirine karışmadan kurulu kalabilir.
- Sürüm yerine niyeti izlemek: tek tek sürümlerle uğraşmak yerine major sürümleri ya da feature band’leri takip edersiniz, araç her ay sizi güncel tutar.
- Proje sabitlemelerine saygı: mevcut
global.jsondosyalarınızla sorunsuz çalışır, ekip derlemeleri öngörülebilir ve deterministik kalır.
Kurulum ve ilk adımlar
macOS veya Linux üzerinde dotnetup’ı almak için terminalde bootstrap betiğini çalıştırmak yeterli:
macOS (Zsh):
curl -fsSL https://aka.ms/dotnetup/get-dotnetup.sh | zsh
Linux (Bash):
curl -fsSL https://aka.ms/dotnetup/get-dotnetup.sh | bash
PowerShell (pwsh):
irm https://aka.ms/dotnetup/get-dotnetup.ps1 | iex
Betik ikiliyi indirdikten sonra ortamı başlatmak için:
dotnetup init
init komutu kabuk profilinizi düzenliyor, dotnet komutu böylece terminal oturumlarınızda doğrudan çalışır hale geliyor; aynı adımda en güncel kararlı.NET SDK’sı da iniyor.
Yerel ortamda ne kurulu, onu görmek içinse:
dotnetup list
Bu komut, dotnetup’ın ev dizininizde yönettiği SDK ve runtime’ların derli toplu bir envanterini veriyor.
Aylık servicing güncellemelerini takip etmek
.NET ekibi her ay güvenlik düzeltmeleri ve kalite iyileştirmeleri içeren servicing güncellemeleri yayımlıyor; geliştirme makinenizi güncel tutmak da bu düzeltmelere karşı derleme ve test yapabilmenizi sağlıyor. Self-contained uygulamalarda makineyi güncellemek tek başına yetmiyor, güncellenmiş runtime ile yeniden publish edip yeniden dağıtmanız gerekiyor. Makinenizi güncellemek, daha önce yayına aldığınız uygulamaları yamalamıyor.
Sistem kurulumlarında güncelleme kararı her zaman sizin elinizde olmayabiliyor. dotnetup ile güncel kalmak tek satıra iniyor:
dotnetup update
Komut, izlediğiniz SDK ve runtime kanallarını yeniden çözümlüyor, eşleşen en son sürümleri kuruyor. 10.0 kanalı.NET 10 içindeki güncellemeleri izlerken latest, yeni major sürümler dahil olmak üzere en son kararlı SDK’yı takip ediyor. Kesin sürüm gereksinimleri ise sabit kalıyor: 10.0.3 olarak talep edilmiş bir kurulum güncelleme sırasında ileri taşınmaz.
Yalnızca belirli bir runtime türünü kurmak ya da tazelemek istiyorsanız, örneğin.NET 10 üzerindeki ASP.NET Core runtime’ı için:
dotnetup runtime install aspnetcore@10.0
Başarılı bir güncellemenin ardından dotnetup, kalan gereksinimlerin hiçbirinin ihtiyaç duymadığı bileşenleri kendiliğinden kaldırıyor. Başka bir kanalın veya kesin sürüm gereksiniminin hala ihtiyaç duyduğu sürümler ise kurulu kalıyor.
İzlenen bir kanala veya kesin sürüme artık ihtiyacınız kalmadığında ilgili gereksinimi sdk uninstall ya da runtime uninstall komutuyla kaldırabilirsiniz; dotnetup gereksiz hale gelen kurulumları temizler. Ayrıntılar için Microsoft Learn’deki izlenen kurulumları güncelleme sayfasına bakabilirsiniz.
Preview ve daily build’leri denemek
Birçok geliştirici aylık servicing akışıyla yetinmiyor, bir hata düzeltmesini ya da yeni runtime yeteneklerini kararlı kanallara ulaşmadan önce denemek istiyor. Daha önce bir daily runtime build’i test etmek, GitHub üzerindeki ham installer tarball’larını bulmayı, bunları özel dizinlere elle açmayı ve ortam değişkenlerini manuel ayarlamayı gerektiriyordu.
dotnetup, preview ve daily build’leri birinci sınıf vatandaş olarak ele alıyor. Preview SDK’larını kararlı kurulumunuzun yanında tutabilirsiniz:
dotnetup sdk install preview
Bir düzeltmeyi doğrulamak için en son daily runtime build’ini çekmek:
dotnetup runtime install daily
Tüm toolchain’i denemek üzere daily SDK kurmak:
dotnetup sdk install daily
Bu kurulumların tamamı kullanıcı hesabınızın içinde durduğu için denemeniz bittiğinde temizlemek de kolay oluyor.
dotnetup’ı güncellemek
Araca zaman içinde yeni özellikler ve düzeltmeler ekleneceği belirtiliyor. Kendi güncellemesini almak için:
dotnetup self update
Sık sorulan sorular
Bunların çoğunu zaten dotnet-install.[sh|ps1] ile yapamaz mıyım?
Duyuruya göre çoğunu yapabilirsiniz. Kaçırdığınız noktalar ise şunlar: kurulu SDK ve runtime’ların yönetimi, kurulan SDK ve runtime’lar için imza ve checksum doğrulaması, birden fazla SDK ve runtime’ın daha hızlı kurulması ve bunu her platformda yapabileceğiniz birleşik bir CLI yüzeyi.
sudo veya root yetkisi gerekiyor mu?
Hayır. dotnetup şu an yönetici gerektirmeyen, kullanıcı yerelinde çalışan bir araç olarak tasarlanmış; tüm SDK’lar, runtime’lar ve meta veriler tamamen kullanıcı dizininizde duruyor. Windows tarafında sistem düzeyindeki kurulumlar yaygın olduğu için, bunların yönetilebilmesine dönük desteğin ileriki bir sürümde ekleneceği belirtiliyor.
CI pipeline’larında kullanılabilir mi?
Evet. Root ayrıcalığı gerektirmediği ve etkileşimsiz biçimde sorunsuz çalıştığı için, belirli SDK veya daily runtime sürümlerini anında ayağa kaldırmanız gereken konteynerleştirilmiş ya da geçici CI makineleri için uygun bir seçenek olarak anlatılıyor.
Yol haritasında ne var?
Windows yönetici installer’ları için destek araştırılıyor, bunun yanında dotnetup’ın GitHub Actions ve Azure DevOps gibi CI/CD sistemlerine entegre edilmesi hedefleniyor; ideal olarak bugün dotnet-install betiklerine dayanan bazı uygulama parçalarının yerini alacak şekilde. Kullanıcı deneyiminin kullanım biçimlerine göre iyileştirilmesi ve otomatik asistanların aracı daha doğal biçimde, varsayılan olarak tercih etmesini sağlayacak agent skill’lerinin olgunlaştırılması da planlar arasında.
Nereden devam etmeli?
Tam CLI referansı, gelişmiş yapılandırma seçenekleri ve derinlemesine içerik Microsoft Learn üzerindeki dotnetup belgelerinde. Geri bildirim vermek, karşılaştığınız hataları paylaşmak veya deneyimi değerlendirmek isterseniz dotnet/sdk deposundaki tartışma kategorisi bu amaçla açılmış durumda.
Kaynaklar ve İleri Okuma
- Introducing dotnetup: A toolchain manager for.NET (.NET Blog, Chet Husk)
- dotnetup belgeleri – Microsoft Learn
- İzlenen kurulumları güncelleme
- dotnet/sdk GitHub Discussions – dotnetup kategorisi
- .NET Blog







Yorum gönder