اگر مدتی با لینوکس کار کرده باشید، احتمالا با یکی از بزرگترین تفاوتهای توزیعهای مختلف لینوکس مواجه شدهاید: روش نصب نرمافزارها.
در اوبونتو و توزیعهای مبتنی بر دبیان از apt استفاده میشود، در فدورا و RHEL ابزارهایی مانند dnf وجود دارند و کاربران آرچ لینوکس معمولا با pacman سروکار دارند. این تفاوت باعث میشود آموزشهای نصب نرمافزار گاهی برای یک توزیع خاص کاربرد داشته باشند و روی توزیعهای دیگر کار نکنند.
خوشبختانه راهکاری وجود دارد که این مشکل را تا حد زیادی حل میکند. پروژه Snap و وبسایت Snapcraft امکان نصب هزاران نرمافزار را با یک دستور یکسان روی اکثر توزیعهای لینوکس فراهم میکنند.
در این مقاله با Snapcraft آشنا میشویم و یاد میگیریم چگونه بدون توجه به نوع توزیع لینوکس، نرمافزارهای مورد نیاز خود را نصب کنیم.
Snapcraft چیست؟
Snapcraft یک پلتفرم توزیع نرمافزار است که توسط شرکت Canonical توسعه داده شده است.
در این سیستم، برنامهها به صورت بستههایی به نام Snap منتشر میشوند. هر بسته شامل تمام وابستگیها، کتابخانهها و فایلهای مورد نیاز برنامه است. به همین دلیل توسعهدهنده میتواند یک بار نرمافزار خود را بستهبندی کند و کاربران توزیعهای مختلف لینوکس آن را اجرا کنند.
مزیت اصلی این روش این است که دیگر لازم نیست برای هر توزیع بسته جداگانهای مانند DEB یا RPM منتشر شود.
مزایای استفاده از Snap
استفاده از Snap چند مزیت مهم دارد:
- نصب نرمافزارها روی توزیعهای مختلف با یک روش یکسان
- دریافت بهروزرسانیهای خودکار
- امنیت بیشتر به دلیل اجرای برنامهها در محیط ایزوله
- دسترسی سریع به نسخههای جدید نرمافزارها
- عدم نیاز به نصب دستی بسیاری از وابستگیها
برای مثال فرقی نمیکند از اوبونتو، فدورا، آرچ لینوکس یا openSUSE استفاده کنید؛ دستور نصب بسیاری از برنامهها دقیقا یکسان خواهد بود.
نصب Snap روی توزیعهای مختلف
قبل از نصب برنامهها باید سرویس Snap روی سیستم شما نصب باشد.
اوبونتو
در اکثر نسخههای اوبونتو Snap به صورت پیشفرض نصب شده است.
برای اطمینان میتوانید دستور زیر را اجرا کنید:
snap version
Debian
sudo apt update
sudo apt install snapd
سپس:
sudo systemctl enable --now snapd
Fedora
sudo dnf install snapd
فعالسازی سرویس:
sudo systemctl enable --now snapd.socket
ایجاد لینک نمادین:
sudo ln -s /var/lib/snapd/snap /snap
Arch Linux
ابتدا مخزن Community را فعال کنید و سپس:
sudo pacman -S snapd
فعالسازی سرویس:
sudo systemctl enable --now snapd.socket
ایجاد لینک:
sudo ln -s /var/lib/snapd/snap /snap
openSUSE
sudo zypper install snapd
فعالسازی:
sudo systemctl enable --now snapd
پیدا کردن نرمافزارها در Snapcraft
پس از نصب Snap میتوانید به وبسایت رسمی Snapcraft مراجعه کنید:
در این سایت هزاران نرمافزار مختلف وجود دارد. کافی است نام برنامه مورد نظر خود را جستجو کنید تا دستور نصب آن نمایش داده شود.
برای مثال اگر به دنبال Visual Studio Code باشید، صفحه برنامه دستور نصب را به شما نشان میدهد.
جستجوی برنامه از طریق ترمینال
میتوانید بدون مراجعه به سایت نیز برنامهها را جستجو کنید:
snap find code
یا:
snap find firefox
نمونه خروجی:
Name Version Publisher
code ۱.۱۰۲.۰ vscode
نصب نرمافزارها
فرمت کلی نصب برنامهها بسیار ساده است:
sudo snap install package-name
برای مثال:
نصب Firefox
sudo snap install firefox
نصب Visual Studio Code
sudo snap install code --classic
نصب Spotify
sudo snap install spotify
نصب Discord
sudo snap install discord
نصب Postman
sudo snap install postman
نصب PyCharm
sudo snap install pycharm-community --classic
نکته جالب اینجاست که این دستورات روی اکثر توزیعهای لینوکسی یکسان هستند.
مشاهده نرمافزارهای نصب شده
برای مشاهده تمام بستههای نصب شده:
snap list
نمونه خروجی:
Name Version
firefox ۱۴۰.۰
code ۱.۱۰۲.۰
spotify ۱.۲.۰
بهروزرسانی برنامهها
برای بهروزرسانی همه بستهها:
sudo snap refresh
برای یک بسته خاص:
sudo snap refresh firefox
در بسیاری از موارد Snap این کار را به صورت خودکار انجام میدهد.
حذف برنامهها
حذف یک نرمافزار نیز بسیار ساده است:
sudo snap remove firefox
یا:
sudo snap remove code
چه زمانی از Snap استفاده کنیم؟
Snap زمانی بسیار مفید است که:
- از چند توزیع لینوکس مختلف استفاده میکنید.
- میخواهید آخرین نسخه نرمافزارها را دریافت کنید.
- نمیخواهید درگیر وابستگیهای پیچیده شوید.
- توسعهدهنده نرمافزار نسخه رسمی Snap را منتشر کرده باشد.
البته برخی کاربران به دلیل حجم بیشتر بستهها یا زمان اجرای اولیه کمی طولانیتر، همچنان بستههای بومی توزیع خود را ترجیح میدهند. با این حال برای بسیاری از نرمافزارهای دسکتاپ، Snap راهکاری سریع و ساده محسوب میشود.
سخن پایانی
یکی از چالشهای کاربران لینوکس تفاوت سیستم مدیریت بستهها در توزیعهای مختلف است. Snapcraft این مشکل را تا حد زیادی برطرف کرده و امکان نصب نرمافزارها را با یک روش یکسان روی اکثر توزیعهای لینوکسی فراهم کرده است.
کافی است Snap را روی سیستم خود نصب کنید و سپس با دستور snap install هزاران برنامه مختلف را بدون نگرانی از نوع توزیع لینوکس نصب کنید. این ویژگی بهخصوص برای توسعهدهندگان، مدیران سیستم و کاربرانی که بین چند توزیع جابهجا میشوند، بسیار کاربردی است.
هشتگها: #لینوکس