Homebrew 6.0.0 yayınlandı
(brew.sh)- Tüm meta verileri tek bir indirmede birleştiren dahili JSON API varsayılan hale getirildi; böylece güncellemeler hızlandı ve ağ iletişimi azaldı
- Mevcut
HOMEBREW_USE_INTERNAL_APIopt-in değişkeni deprecated olarak işaretlendi
- Mevcut
- Linux’ta Bubblewrap sandbox uygulanarak build, test ve postinstall adımları macOS ile aynı şekilde izole çalıştırılıyor
- Kullanıcı anketi doğrultusunda ask modu geliştiriciler için varsayılan olarak değiştirildi;
brew installvebrew upgradesırasında bağımlılık özeti ile onay istemi gösteriliyor brew bundleiçinde paralel formula kurulumu artık varsayılan olarak otomatik çalışıyor; ayrıca npm ve krew genişletmeleri ile Windowswingetdesteği eklendibrew leaveskomutunda yaklaşık %30 hızlanma dahil olmak üzere başlangıç ve yükseltme süreçlerinde genel performans iyileştirmeleri yapıldı- macOS 27 (Golden Gate) için ilk destek eklendi
- Intel desteğinin sona ermesiyle birlikte macOS Intel
x86_64, Eylül 2026’da Tier 3 seviyesine düşecek ve Eylül 2027’de tamamen destek dışı kalacak
- Intel desteğinin sona ermesiyle birlikte macOS Intel
- 3 güvenlik tavsiyesi yayımlandı ve düzeltildi (HTTPS→HTTP yönlendirme atlatması,
.pkgpostinstall sırasında root kod çalıştırma,/var/tmpplist sahipliğinin ele geçirilmesi) npxbenzeri yeni komutbrew execile kurulu paketlerdeki açıkları denetleyenbrew vulnsgibi yeni komutlar eklendi- Ortak postinstall ve flight davranışlarını literal DSL verisi olarak JSON API üzerinden sunan install steps framework tanıtıldı; basit görevlerde Ruby dosyalarını indirip değerlendirme gerekliliği ortadan kalktı
- npm ve PyPI gibi riskli ekosistemlerde indirmelere cooldown uygulanarak upstream tedarik tarafı güvenlik riski azaltıldı
2 yorum
Intel Mac’leri desteklemeye yetecek kaynak da yok ve GitHub Actions da artık imaj sağlamayacağından, Homebrew de buna uygun şekilde ilerlemek zorunda.
Hacker News yorumları
GitHub'daki @bfontaine benim. 2014~2016 civarında Homebrew bakımına yardımcı olmuştum; Mike'ın 16 yıldan uzun süredir bakımını sürdürüp hâlâ yeni özellikler çıkardığını görmek beni hep şaşırtıyor
Linux paket yöneticilerinin çoğu, kullanıcının kurduğu paketlerle sistem paketlerini ayıramıyor; bu da iş istasyonunu temizlemeyi neredeyse imkânsız hâle getiriyor ve neyin silinmesinin güvenli olduğunu anlamayı zorlaştırıyor
Ayrıca yerel paket yöneticileri Homebrew'dan daha yavaş güncellendiği için çoğu zaman yalnızca eski paketleri alabiliyorsunuz
Deney olarak Homebrew+pipx+npm'den https://mise.jdx.dev/ tarafına tüm OS düzeyi geliştirme ortamımı taşıdım ve gerçekten çok iyi çalıştı
Birçok araç doğrudan GitHub release'lerinden veya ilgili paket yöneticilerinden (uv, pnpm, go get vb.) kurulduğu için yeniden paketleme için yapıştırıcı koda da gerek kalmıyor, sürüm gecikmesi de olmuyor
İstediğiniz herhangi bir sürümü ya da birden çok sürümü aynı anda kurabiliyor, etkin sürümü çalışma klasörüne veya ortama göre dinamik olarak değiştirebiliyorsunuz
İlginç şekilde Mise bağımlılıkları desteklemiyor ama bu çoğunlukla sorun olmadı. Ya pnpm/uv hallediyor ya da statik binary olduğu için doğrudan çalışıyor
Geçmişte bir Python uygulamasını Homebrew için paketlerken 50 bağımlılığı
resourcesolarak içeri almak, hepsini ya kaynaktan derlemek ya da Homebrew'da olup olmadığını elle kontrol etmek, 5 dilin build toolchain'ini bağımlılık olarak tanımlamak ve her güncellemede CI'ın bir saatten fazla sürmesini beklemek zorunda kalmıştım; sonra da upstream güncellemesi yüzünden Homebrew'da çözülemeyen bir “build-time dependency loop” oluşmuştuBu yüzden Mise'in neden “kolay yolu” seçip dil bazlı paket yöneticilerine doğrudan bağımlı olduğunu tamamen anlıyorum
Brewfile'da yerine koyamadığım tek şey, Colima ile konuşmak için gereken Docker CLI oldu; cask tarafında ise hâlâ Homebrew kullanıyorum. Geliştirme ortamınızı denemenizi tavsiye ederim. Bugünlerde harika yeni araçlar var
Homebrew paketleri için Mise kullanmak isteyenler adına https://github.com/kennyg/mise-zerobrew var
Zaten çoğu proje Docker kullanıyor ve yerel PHP de genelde statik analiz gibi Docker gerektirmeyen işler için kullanılıyor
Nix kullanan birkaç projem de var; Nix diğer her şeyi küçümseyecek kadar güçlü ama genel kullanıcı deneyimi git'ten bile daha düşmanca
Belki benim beceriksizliğimdi ama Mise'de sorun çıkaran çok fazla paket vardı
Sistem genelindeki araçlar için de denedim ama Helix, NeoVim, RipGrep gibi kabaca güncel olması yeterli olan ve tam sürümü umursamadığım araçlarda iyi uymadı
Mise'deki bağımlılıklar otomatik değil; hepsini elle tanımlamanız gerekiyor. Amaç, paralel kurulumların doğurduğu sıralama sorunlarını önlemek. Örneğin
pipx:blackkullanıyorsanız Python kurulumu bitene kadar beklemesi gerekir. Araçtakidependsseçeneği bunun için varBu kasıtlı bir tasarım. Mise, Homebrew veya Nix gibi tam bir bootstrap çözümü değil; mevcut sistemin üstüne oturan bir overlay olarak tasarlandı
Bu yüzden Python'ı Brew ile, black'i ise Mise ile yönetmek neredeyse hiçbir ek ayar gerektirmeden çalışabiliyor. Bence bu tasarım kararı büyük ölçüde başarılı oldu. Bir dezavantaj gibi gelebilir ama sonuçta kullanıcıların Mise'i kolay bulmasının en büyük nedeni muhtemelen bu
Homebrew, değiştirilemez Linux dağıtımlarında ortamı hızlıca bootstrap etmek için harika bir yoldu
Kullanıcı sayısı çok fazla değil ama https://formulae.brew.sh/analytics/os-version/365d/ verilerine göre Universal Blue'nun Bazzite (%1,28), Bluefin (%0,49), Aurora (%0,28) gibi işletim sistemleri varsayılan olarak Homebrew'u paketleyip sunuyor
İlgili depo: https://github.com/ublue-os/brew
Root olmayan kullanıcı için olağan durumun “XY'yi kuramazsın ama kaynaktan derlemekte özgürsün” olması komik
Homebrew, Mise ve Nix bugün bu boşluğu dolduruyor. Flatpak daha çok GUI uygulamaları tarafında; Snap ise... var işte
İlk kurduğum üç şey Sublime Text, Homebrew ve en güncel Bash oluyor. Zsh'a geçmeyi düşünmüyorum
İyi araçlar bilgisayarla uğraşmayı keyifli hâle getiriyor
Kısa süre önce Nix'ten Homebrew'e geri döndüm ve bunun üç büyük nedeni var
Brew, sahip olduğu paketler için Nix'ten daha iyi destek sunuyor gibi görünüyor. Nix'te bazı paketler iyi bakım almıyor gibi duruyor
Mac desteği de daha iyi. Bazı Nix paketlerinde macOS'ta işlevler kapalı oluyor; muhtemelen ilgili paket bakımcısının test için bir Mac'i olmadığı içindir
Kullanıcı deneyimi de daha iyi
Elbette Nix ortamlarının yeniden üretilebilirliğini ve belirli paketleri içeren bir flake'i kolayca oluşturabilme yeteneğini özlüyorum, ama genel olarak beni geri getiren Brew oldu. Yine de Nix'i hâlâ seviyorum ve iş yerinde de Nix kullanıyoruz
İş yerinde Nix'i nerede kullandığınızı merak ettim. Nix'in uygun göründüğü birkaç yer var ama tam olarak işaret etmek zor
Ama genelde sadece
defaultsveya aradaki bir aracı çalıştırma seviyesinde kalıyorduSonunda Brew'u korudum ve
bash_profileiçinde idempotent birsetupmac()fonksiyonu yazdım. Bash 5 kullanıyorum ve ChatGPT'nin güzeldefaultskomutlarını iyi bilmesi sayesinde yardım aldımDotfiles içinde tuttuğum Brewfile ile birlikte, yeni hesap veya Mac kurulum sorunlarının neredeyse tamamını çözdüğüm için o kadar büyük araçlara ihtiyaç duymuyorum
Homebrew, çalışanlar tarafından değil tamamen gönüllülerce yürütülen kâr amacı gütmeyen bir proje
Sürekli entegrasyon, gelecekteki iyileştirmeler için gereken yazılım, donanım ve barındırma maliyetlerini karşılamak için fon gerekiyor
Tüm bağışların kullanıcılar için daha iyi bir Homebrew yapmak adına kullanıldığı söylendiğine göre, GitHub Sponsors, OpenCollective ve Patreon üzerinden düzenli destek vermeyi düşünmeye değer
Faydalandığım açık kaynak projelerine çok bağış yaptım ama Homebrew'u hiç derinlemesine düşünmemiştim; artık desteklemem gerek sanırım
Homebrew'e bir tür cooldown mekanizması eklenip eklenemeyeceğini merak ediyorum
Makinama hızlıca yeni kod dağıtma konusunda güvenmek istediğim tek şey Apple ve tarayıcılar. Çünkü tarayıcılar diğer her şeyden daha fazla güvenilmez girdi işliyor
Bunun dışındaki vscode ve eklentileri, npm, homebrew ve otomatik güncellenen uygulamalarda birkaç gün beklemeyi tercih ederim
Bazı istisnai 0-day durumlarında cooldown'ın atlanması gerekebilir, ama zaten bugün de kullanıcı
brew upgradeçalıştırana kadar 0-day'e karşı savunmasız kalıyorAyrıca NPM/PyPI/RubyGems'ten alınıp paketlenen öğeler arasında bu tür saldırıların hedefi olabilecekler için, paketleme sırasında ve yeni sürüm güncelleme PR'ı oluşturulurken zaten cooldown uygulanıyor
--minimum-release-ageveyaminimumReleaseAgegibi bir özellikBu tür saldırılar genellikle ihlalden sonraki birkaç gün içinde tespit ediliyor
Bun'un örneği: https://bun.com/docs/pm/cli/install#minimum-release-age
brew set-channel stable/edgegibiBu hafta Elixir 1.20 duyurusundan sonra onu denemeye sadece birkaç dakikam vardı ve Brew'un geride kalması can sıkıcıydı
erl ve elixir başka yollarla da kurulabiliyor ve ben kişisel olarak kendi toolchain'lerini tercih ediyorum ama o anda buna değmezdi
Brew'da bazı recipe'ler için kaynak seçenekleri vardı ya da hâlâ var; biraz gözünü kısarak bakarsan bu da esasen bir çözüm sayılır
Yazarın Homebrew core'a PR göndermesi veya kendi Tap'ini yayımlaması istisna. Arch'ın bunu nasıl yaptığını merak ediyorum
Homebrew'u mümkün kılan herkese alkış. Projeye destek vermeyi düşünebilirsiniz: https://opencollective.com/homebrew
Intel desteğinin kaldırılması agresif hissettiriyor
Mac'i sunucu olarak kullanan meraklıların neredeyse hepsi eski makineler kullanıyor ve bunların çoğu Intel. Apple'dan 1 yıl önce destek kaybedecekler
Intel desteğinin zahmetli olduğunu ve bunun bir tercih meselesi olduğunu anlıyorum, ama Homebrew'un Intel desteğini mümkün olduğunca uzun sürdürmenin bir yolunu araması gerektiğini düşünüyorum
Eski Mac'leri sunucu olarak kullananların yuvarlama hatasını aşacak kadar bile büyük bir grup olmadığını düşünüyorum
Intel desteğine ihtiyacınız varsa MacPorts hâlâ Leopard'a kadar çalışıyor
--no-quarantinebayrağı desteği de kaldırıldıArtık sadece birkaç cask için Homebrew kullanıyorum ve mümkün olduğunca kaçınmaya çalışıyorum. CLI araçları için Nix, Home-Manager ve Nix-Darwin kullanıyorum
Sabitlenemeyen zorunlu yükseltmeler yüzünden o kadar çok canım yandı ki ben şahsen Homebrew kullanmayı bıraktım.
Şimdi habersiz bozulmaları ve zoraki eskimeyi önlemek için Mise ve MacPorts kombinasyonunu kullanıyorum.
Üstelik Mise ile istediğin herhangi bir yeni sürüme geçebiliyorsun, ama Homebrew'da Tap'in ne zaman yükselteceğini beklemek zorundasın.
llama.cppTap'i bazen 10 sürümde bir atlıyor.Hâlâ Homebrew kullananlar için, yalnızca gerçekten gerektiğinde yükseltme yapılması ve yükseltmeden önce bunun kullanıcıya gösterilmesi için çok emek verildi; bu sürüme de dahil edildi.
Geliştirme araçlarını kurmak için yıllardır MacPorts kullanıyorum; çok daha tutarlı ve Python'un yeni ana sürümü rastgele çıkıp insanı şaşırtmıyor.
Homebrew'ı yalnızca MacPorts'ta olmayan Firefox, Slack, Spotify gibi uygulamaları kurmak için kullanıyorum.
Tabii yıllardır Python için uv'ye, nodejs için pnpm'e geçmeye çalıştığım için artık benim açımdan büyük bir sorun olmayabilir.
Her gün kullandığım iMac artık Tier-3 “defol git” kovasına girdi.
Kullanabildiğim kısa süre boyunca Homebrew'u gerçekten çok sevdim, ama kullanmaya devam etmek için donanım yükseltme koşu bandına çıkmaya niyetim yok.