Homebrew Yedekleme ve Yapılandırma İşlemleri
macOS paket yöneticisi Homebrew, kurulum ve kullanımı ile ilgili yayınladığım yazıya yeni bir ekleme yapalım.
Yarn yazısında paket ve bağımlılık yöneticilerin projenin / uygulamanın geliştirilmesi, yedeklenmesi ve paylaşımına sağladığı kolaylıklardan bahsetmiştim. Ancak, homebrew bir paket yöneticisi olsa da doğrudan bu tür bir destek sunmamakta. Örneğin, macOS sisteminizi yeniden yapılandırmak istediğinizde kurduğunuz uygulamaları package.json
gibi bir dosyada listeleyememekte ve dolayısıyla yeni bir sisteme olduğu gibi (sürüm farklılıkları gibi) yapılandıramamaktasınız. Bu yazıda, az önce bahsi geçen ihtiyaçlar doğrultusunda neler yapılabileceğine bir bakalım.
Homebrew Bundler
Homebrew Bundler, Homebrew, Homebrew Cask ve Mac App Store için kullanılabilecek bir non-Ruby paketleyicisi (bundler) / bağımlılık (dependency) yöneticisi.
Homebrew Bundler Kurulumu
brew bundle
komutunu girdiğimizde bundler otomatik olarak yüklenecektir ya da tap (formula repository) ile de işlem gerçekleştirebiliriz:
brew bundle
# ya da
brew tap Homebrew/bundle
Kurulum işleminin ardından Error: No Brewfile found hatası alabilirsiniz. Bulunulan dizinde bir Brewfile dosyası oluşturmak için şu komutu kullanabiliriz:
touch Brewfile
Ardından bağımlılıkları bu dosya içerisinde tanımlayabiliriz:
cask_args appdir: "/Applications"
tap "homebrew/cask"
tap "telemachus/brew", "https://telemachus@bitbucket.org/telemachus/brew.git", pin: true
brew "imagemagick"
brew "mysql@5.6", restart_service: true, link: true, conflicts_with: ["mysql"]
brew "emacs", args: ["with-cocoa", "with-gnutls"]
cask "google-chrome"
cask "java" unless system "/usr/libexec/java_home --failfast"
cask "firefox", args: { appdir: "~/my-apps/Applications" }
mas "1Password", id: 113234567
Brewfile dosyası ile artık tüm bağımlılıklar tanımlanmış ve adreslenmiş hale gelmekte. Edindiğimiz ve/veya hazırladığımız bir Brewfile dosyasını kullanmak istediğimizde tek yapmamız gereken brew bundle
komutunu yinelemek. Bulunulan dizinde yer alan dosya içeriği komut ile birlikte işleme alınacak ve bağımlılıklar appdir
olarak tanımlı dizine yüklenmeye başlanacaktır.
Peki, el yordamı ile dosya oluşturmak yerine, sistemde kurulu olan paketleri / uygulamaları / programları nasıl Brewfile dosyası haline getirebiliriz? Cevap oldukça basit. Öncelikle Brew tarafından kullanılan dizini öğrenmeliyiz. Genelde /usr/local/Homebrew/
veya /opt/homebrew
olarak belirlenmiştir. Emin olmak için brew --prefix
ile kontrol edebilirsiniz.
cd $(brew --prefix)
brew bundle dump
# Elbette dizin ve dosya da belirtilebilir
brew bundle --file=/path/to/Brewfile
Artık dosyayı yedekleyebilir, istediğiniz kişi ile paylaşabilirsiniz. Ben, tercihen dosyayı Dropbox hesabımda tutmakta ve sıklıkla güncellemekteyim.
mv Brewfile ~/Dropbox
Yeni bir yapılandırma ihtiyacında ise Dropbox kurulumunun ve klasör eşitlemenin ardından yapmam gereken sadece aşağıdaki adımları izlemek:
cd ~/Dropbox
brew bundle
Yükleme işlemi başladığında console üzerinde ilgili yüklemelere dair bilgiler listelenmeye başlanacaktır.
Using bat
Using git
Using hidapi
Using node
Using webp
Using pillow
...
Şayet, sıklıkla uygulama testleri ve/veya denemeleri yapıyorsanız cleanup
komutunu oldukça seveceğinizi düşünüyorum. Cleanup ile Brewfile dosyası içeriğinde tanımlanmamış ancak kurulu olan tüm paketleri kolaylıkla yönetebilirsiniz. Yapmanız gereken sadece ilgili komutu uygulamak:
brew bundle cleanup
Evet, işlemlerimiz bu kadar. Homebrew Bundle ile ilgili daha detaylı bilgi ve kullanılabilecek diğer komutlar için GitHub > Homebrew Bundle1 sayfasına göz atabilirsiniz.