اگر تا به حال مجبور به نصب مجدد همه چیز روی مک، یا حتی روی یک سیستم دوم شده باشید، حتماً میدانید که این کار چقدر دردسر دارد. حتی فقط دنبالکردن اینکه چه نرمافزارهایی نصب شدهاند هم میتواند آزاردهنده باشد، بهخصوص زمانی که مرتب در حال امتحانکردن نرمافزارهای جدید هستید.
خبر خوب این است که مدیر بسته محبوب Homebrew میتواند در این زمینه کمک بزرگی باشد. با استفاده از Brewfile میتوان نصب، نصب مجدد و بهروزرسانی کامل سیستم را بهصورت خودکار مدیریت کرد.
Homebrew چیست و brew bundle چه کاری انجام میدهد؟
Homebrew یک مدیر بسته است که بسیاری از کاربران مک به آن وابسته شدهاند. با استفاده از دستور خط فرمان brew میتوان طیف گستردهای از نرمافزارها را نصب کرد؛ از ابزارهای خط فرمان گرفته تا برنامههای گرافیکی کامل. در سادهترین حالت، این کار با اجرای دستور brew install انجام میشود.
این دستور، فایلهای موردنیاز یک بسته را دانلود کرده و سپس آن را نصب میکند. برای مثال، میتوان بستهی hello را نصب کرد که صرفاً یک بستهی نمونه برای اطمینان از عملکرد صحیح Brew است. اگر تاکنون از Homebrew استفاده نشده، بهتر است هرچه زودتر آن را نصب کرد.
Homebrew Bundle قابلیتی در Brew است که امکان مدیریت و خودکارسازی نصبها را فراهم میکند. با استفاده از آن میتوان فهرستی از نرمافزارهای موردنیاز یک سیستم تهیه کرد و سپس با اجرای دستور brew bundle همهچیز را بهصورت خودکار انجام داد. این فرایند شامل نصب بستههای موجود نیست، بهروزرسانی caskها و حتی مدیریت نرمافزارهای نصبشده از طریق Mac App Store میشود.
Bundle با خواندن فایلی به نام Brewfile کار میکند؛ فایلی که لیست بستههای موردنظر برای نصب در آن قرار دارد. میتوان یک Brewfile واحد برای کل سیستم داشت، Brewfileهای مخصوص هر کاربر ایجاد کرد یا حتی برای هر پروژه یک Brewfile جداگانه در نظر گرفت تا وابستگیها از هم جدا شوند.
نحوه ساخت Brewfile
Brewfile یک فایل متنی ساده است که بهراحتی میتوان آن را بهصورت دستی ویرایش کرد. در سادهترین حالت، این فایل فقط شامل نام بستههایی است که باید نصب شوند، برای مثال:
brew "jq"
در ابتدای استفاده از Brew میتوان این فایل را بهصورت دستی ایجاد و بستهها را یکییکی به آن اضافه کرد. دستور brew bundle edit فایل Brewfile را در ویرایشگر پیشفرض سیستم باز میکند. در صورتی که نیازی به باز کردن ویرایشگر نباشد، میتوان از زیردستور add استفاده کرد:
brew bundle add "jq"
بهصورت پیشفرض، اگر فایلی وجود نداشته باشد، Brew فایلی با نام Brewfile در پوشهی فعلی ایجاد میکند. برای استفاده از مسیر دلخواه، میتوان گزینهی –file را مشخص کرد:
brew bundle --file=~/my-brewfile add "jq"
در صورتی که حتی نخواهید به محل فایل فکر کنید، گزینهی –global انتخاب مناسبی است:
brew bundle --global add "jq"
در این حالت، Brew از یک فایل مشترک و مخصوص همان کاربر استفاده میکند که معمولاً در پوشهی home قرار دارد.
پس از آمادهشدن Brewfile، میتوان از آن برای یکسانسازی و بهروز نگهداشتن نرمافزارها استفاده کرد. برای اطمینان از نصب تمام موارد موجود در Brewfile، دستور زیر اجرا میشود:
brew bundle install --file=./my.Brewfile
Brew وضعیت هر بسته را بررسی میکند و مشخص میکند که آیا از قبل نصب شده، نصب جدید انجام شده یا نسخهی آن ارتقا یافته است. توجه داشته باشید که هدف brew bundle الزاماً نصب مجدد نیست، بلکه اطمینان از نصب صحیح نرمافزارها از طریق Brew است. بنابراین بستههایی که از قبل نصب شدهاند، در صورت نیاز نداشتن به بهروزرسانی، بدون تغییر باقی میمانند.
نکات و ترفندها برای مدیریت نصبها با Brewfile
اگر Homebrew از قبل استفاده میشود، میتوان با دستور dump یک Brewfile شامل تمام بستههای فعلی سیستم ایجاد کرد:
brew bundle --global dump
این دستور نقطهی شروع خوبی است، اما معمولاً باعث میشود با تعداد زیادی بستهی فراموششده مواجه شوید. این فرصت مناسبی است تا موارد غیرضروری از Brewfile حذف شوند؛ در این صورت، هنگام اجرای brew bundle آن بستهها نیز حذف خواهند شد.
با استفاده از گزینهی –describe همراه با dump، توضیح کوتاهی برای هر بسته در Brewfile اضافه میشود که در شناسایی نرمافزارهای نصبشده بسیار کاربردی است.
بهطور پیشفرض، Homebrew بستههایی را که از Brewfile حذف شدهاند پاک نمیکند، مگر اینکه دستور پاکسازی صادر شود:
brew bundle cleanup
یا میتوان همزمان با نصب و بهروزرسانی، پاکسازی را انجام داد:
brew bundle install --cleanup
این روش امکان نصب، ارتقا و حذف موارد اضافی را در یک مرحله فراهم میکند.
Brewfile از قابلیتهای پیشرفتهتری هم پشتیبانی میکند، از جمله نصب بستهها بر اساس سیستمعامل، نصب افزونههای VS Code یا مشخصکردن مسیر نصب برنامهها:
brew "gnupg" if OS.mac?
brew "glibc" if OS.linux?
vscode "editorconfig.editorconfig"
cask "firefox", args: { appdir: "~/my-apps/Applications" }
حتی میتوان از Brewfile برای نصب برنامههای Mac App Store با استفاده از ابزار خط فرمان mas بهره برد:
mas "GitBar", id: 6686394657
Homebrew بهتنهایی روشی ساده برای نصب نرمافزارهاست، اما Brewfile این فرایند را به سطح بالاتری میبرد و امکان حفظ یک سیستم بهروز و یکپارچه را فراهم میکند. با اجرای یک دستور ساده brew bundle install میتوان همیشه مطمئن بود که نرمافزارهای مورد انتظار در دسترس هستند.












