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.

AA

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.