Slackware

Slackware یک توزیع لینوکس است که توسط Patrick Volkerding در سال 1993 ایجاد شد. این توزیع در ابتدا بر اساس سیستم Softlanding Linux System (SLS) ساخته شده بود و پایه بسیاری از توزیع‌های لینوکس دیگر، به ویژه اولین نسخه‌های SUSE، بوده است. Slackware قدیمی‌ترین توزیع لینوکس است که هنوز پشتیبانی و نگهداری می‌شود.

هدف و فلسفه Slackware

Slackware به ثبات و سادگی طراحی اهمیت می‌دهد و سعی دارد بیشترین شباهت را به سیستم‌های یونیکس داشته باشد. این توزیع تغییرات کمی روی بسته‌های نرم‌افزاری اعمال می‌کند و تلاش می‌کند تصمیمات کاربران را محدود نکند. برخلاف بسیاری از توزیع‌های مدرن لینوکس، Slackware:

  • روند نصب گرافیکی ارائه نمی‌دهد.
  • وابستگی‌های نرم‌افزاری را به صورت خودکار حل نمی‌کند.
  • تنظیمات و مدیریت را با فایل‌های متنی ساده و چند اسکریپت شل انجام می‌دهد.

به صورت پیش‌فرض، Slackware با رابط خط فرمان بوت می‌شود و به همین دلیل معمولاً برای کاربران پیشرفته و فنی لینوکس مناسب است.

معماری و پشتیبانی

  • پشتیبانی از معماری IA-32 و x86_64
  • پورت به معماری ARM
  • معمولاً نرم‌افزارهای Slackware رایگان و متن باز هستند
  • بدون سیستم رسمی ردیابی باگ یا مخزن عمومی کد
  • انتشار نسخه‌ها به صورت دوره‌ای توسط Volkerding اعلام می‌شود

مدیریت و ابزارها

  • مدیریت بسته‌ها: pkgtool و slackpkg
  • رابط کاربری پیش‌فرض: خط فرمان (CLI)
  • هسته: لینوکس مونولیتیک
  • کاربران: GNU
  • وب‌سایت رسمی: www.slackware.com

تاریخچه و نام

نام “Slackware” از این واقعیت آمده است که این توزیع در ابتدا به عنوان یک پروژه جانبی خصوصی و بدون تعهد ایجاد شد. Volkerding برای اینکه پروژه جدی گرفته نشود، نامی طنزآمیز برای آن انتخاب کرد که حتی پس از جدی شدن پروژه باقی ماند.

Slackware به “پویش Slack” اشاره دارد که بخشی از Church of the SubGenius، یک دین پارودی است. برخی از جنبه‌های گرافیکی Slackware این موضوع را منعکس می‌کنند—به عنوان مثال، لوله‌ای که Tux در آن سیگار می‌کشد، از تصویر J. R. “Bob” Dobbs الهام گرفته شده است.

تاریخچه

تولد

Slackware 1.01

Slackware در اصل از سیستم Softlanding Linux System (SLS) گرفته شده بود، که محبوب‌ترین توزیع لینوکس اولیه بود و اولین سیستمی بود که مجموعه‌ای جامع از نرم‌افزارها ارائه می‌کرد، نه تنها هسته و ابزارهای پایه، بلکه شامل رابط گرافیکی X11، شبکه TCP/IP، شبکه UUCP و GNU Emacs نیز بود.

پاتریک وولکرینگ با SLS شروع کرد پس از اینکه برای یک پروژه مدرسه در دانشگاه Moorhead State University (MSU) به یک مفسر LISP نیاز داشت. او متوجه شد CLISP برای لینوکس در دسترس است و SLS را دانلود کرد تا آن را اجرا کند. چند هفته بعد، استاد هوش مصنوعی او در MSU از وولکرینگ خواست تا به او نشان دهد چگونه لینوکس را در خانه و روی برخی از کامپیوترهای دانشگاه نصب کند. وولکرینگ یادداشت‌هایی درباره رفع مشکلاتی که پس از نصب SLS پیدا کرده بود، تهیه کرده بود و استاد و او این تغییرات را روی یک نصب جدید اعمال کردند. با این حال، این تقریباً به همان زمانی که صرف نصب SLS شد طول کشید، بنابراین استاد پرسید آیا می‌توان دیسک‌های نصب را به گونه‌ای تنظیم کرد که اصلاحات در طول نصب اعمال شوند. این آغاز Slackware بود.

وولکرینگ به بهبود SLS ادامه داد – رفع باگ‌ها، ارتقاء نرم‌افزارها، نصب خودکار کتابخانه‌های مشترک و تصویر هسته، اصلاح مجوز فایل‌ها و غیره. در مدت کوتاهی، وولکرینگ تقریباً نیمی از بسته‌ها را فراتر از آنچه SLS ارائه می‌کرد، ارتقاء داده بود.

وولکرینگ قصدی برای ارائه نسخه تغییر یافته SLS به عموم نداشت. دوستانش در MSU او را تشویق کردند تا تغییرات SLS خود را روی یک سرور FTP قرار دهد، اما وولکرینگ تصور می‌کرد که “SLS به زودی نسخه جدیدی ارائه خواهد داد که این تغییرات را شامل شود”، بنابراین چند هفته صبر کرد. در این مدت، بسیاری از کاربران SLS در اینترنت خواستار انتشار نسخه جدید بودند، بنابراین نهایتاً وولکرینگ پستی با عنوان “کسی سیستم شبیه SLS 0.99pl11A می‌خواهد؟” ارسال کرد که پاسخ‌های مثبت زیادی دریافت کرد. پس از بحث با مدیر سیستم محلی در MSU، وولکرینگ اجازه گرفت تا Slackware را روی سرور FTP دانشگاه بارگذاری کند. این اولین انتشار Slackware، نسخه 1.00، در 17 ژوئیه 1993، ساعت 00:16:36 (UTC) منتشر شد و به صورت بیست و چهار تصویر دیسک فلاپی 3+1⁄2 اینچی ارائه شد. پس از اعلام انتشار، وولکرینگ دید که سیل اتصال‌های FTP به طور مداوم سرور را خراب می‌کند. مدتی بعد، شرکت Walnut Creek CDROM فضای بایگانی اضافی روی سرورهای FTP خود ارائه کرد.

اشاره‌های طنز در Slackware

اشاره‌های طنز به Church of the SubGenius در فایل‌های متنی install.end دیده می‌شود، که پایان یک سری نرم‌افزار را به برنامه نصب اعلام می‌کنند. در نسخه‌های جدید، از جمله Slackware 14.1، متن‌ها با ROT13 رمزگذاری شده‌اند.

معرفی اسلک‌ویر

اسلک‌ویر یک توزیع لینوکس است که توسط پاتریک وولکردینگ در سال ۱۹۹۳ ایجاد شد. این توزیع که در ابتدا بر اساس سیستم لینوکس SLS ساخته شده بود، به عنوان پایه‌ای برای بسیاری از توزیع‌های دیگر، به ویژه نسخه‌های اولیه SUSE، عمل کرده و قدیمی‌ترین توزیعی است که هنوز پشتیبانی می‌شود.

هدف اسلک‌ویر پایداری، سادگی و تبدیل شدن به «لینوکس‌وارترین» توزیع لینوکس است. این توزیع تغییرات کمی در بسته‌های نرم‌افزاری آپ‌استریم ایجاد می‌کند و سعی نمی‌کند استفاده‌های کاربران را پیش‌بینی یا محدود کند. برخلاف اکثر توزیع‌های مدرن، اسلک‌ویر هیچ نصب گرافیکی یا حل خودکار وابستگی‌ها ارائه نمی‌دهد و تنها از فایل‌های متنی و تعداد کمی اسکریپت پوسته برای پیکربندی و مدیریت استفاده می‌کند.

بدین ترتیب، سیستم بدون تغییر بیشتر به یک رابط خط فرمان بوت می‌شود و به دلیل ویژگی‌های ساده و محافظه‌کارانه، اغلب برای کاربران پیشرفته و علاقه‌مند به لینوکس مناسب است.

پشتیبانی معماری و نرم‌افزار

اسلک‌ویر برای معماری‌های IA-32 و x86_64 در دسترس است و نسخه‌ای برای معماری ARM نیز ارائه شده است. اگرچه عمدتاً نرم‌افزار آزاد و متن‌باز استفاده می‌کند، اما کد منبع عمومی برخی بسته‌ها یا مخزن رسمی ندارد و نسخه‌ها به صورت دوره‌ای توسط وولکردینگ اعلام می‌شوند. هیچ سیستم رسمی عضویت برای توسعه‌دهندگان وجود ندارد و وولکردینگ اصلی‌ترین مشارکت‌کننده است.

ریشه نام و فلسفه

نام «اسلک‌ویر» به این دلیل انتخاب شد که پروژه در ابتدا یک پروژه جانبی و غیرجدی بود. برای جلوگیری از جدی گرفته شدن پروژه، وولکردینگ نامی طنزآمیز انتخاب کرد که حتی پس از جدی شدن پروژه باقی ماند.
این نام به اصل «تعقیب اسلک» در کلیسای ساب‌جینیوس، یک دین پارودی، اشاره دارد و برخی از جنبه‌های گرافیکی اسلک‌ویر مانند تصویری از پایپی که شخصی به نام J.R. “باب” دابس می‌کشد، این موضوع را منعکس می‌کند.

اشاره طنزآمیز به کلیسای ساب‌جینیوس را می‌توان در بسیاری از فایل‌های متنی install.end یافت، که پایان نصب نرم‌افزار را به برنامه راه‌اندازی نشان می‌دهد. در نسخه‌های اخیر، مانند اسلک‌ویر ۱۴.۱، متن این فایل‌ها با رمزگذاری ROT13 محافظت شده است.

به‌روزرسانی و توسعه

Slackware Linux با اینکه قدیمی‌ترین توزیع بازمانده است، هنوز به‌طور مرتب به‌روزرسانی می‌شود و جدیدترین نسخه‌های بسیاری از نرم‌افزارهای رایگان را شامل می‌شود. هدف اصلی حفظ ریشه‌ها و ارزش‌های سنتی یونیکس است، اما با تکامل سیستم، اجتناب‌ناپذیر است که تغییرات و نوآوری‌ها اعمال شوند و مستندات قدیمی شوند.

تاریخچه

اسلک‌ویر از سیستم لینوکس SLS مشتق شده است، که یکی از محبوب‌ترین توزیع‌های اولیه لینوکس بود و اولین توزیعی بود که مجموعه کاملی از نرم‌افزارها، از جمله رابط گرافیکی X11، شبکه TCP/IP، UUCP و GNU Emacs ارائه می‌داد.

پاتریک وولکردینگ پس از نیاز به مفسر LISP برای یک پروژه دانشگاهی، SLS را دانلود کرد. او یادداشت‌هایی برای رفع مشکلات SLS تهیه کرد و این تغییرات را به نصب‌های جدید اعمال کرد. دوستان او او را تشویق کردند تا نسخه اصلاح شده را منتشر کند و اولین نسخه اسلک‌ویر (۱.۰۰) در ۱۷ ژوئیه ۱۹۹۳ منتشر شد، شامل ۲۴ دیسک فلاپی ۳.۵ اینچی.

اندازه Slackware با افزودن نرم‌افزارهای همراه، به سرعت افزایش یافت. تا نسخه 2.1 که در اکتبر 1994 منتشر شد، حجم توزیع بیش از سه برابر شد و شامل ۷۳ دیسک فلاپی ۱.۴۴ مگابایتی بود.

در سال ۱۹۹۹، Slackware از نسخه ۴ به نسخه ۷ پرش کرد. شماره‌های نسخه این توزیع نسبت به دیگر توزیع‌ها کمتر بود و باعث شد برخی کاربران تصور کنند که این توزیع منسوخ شده است. ولکردینگ برای جلب توجه کاربران، نسخه را به عدد ۷ افزایش داد تا نشان دهد Slackware به اندازه دیگر توزیع‌ها به‌روز است.

تغییرات مهم در X.Org و GNOME

در آوریل ۲۰۰۴، ولکردینگ بسته‌های X.Org Server را به شاخه testing اضافه کرد تا جایگزینی برای XFree86 باشد. یک ماه بعد، X.Org به عنوان نسخه پیش‌فرض X معرفی شد، زیرا اکثر کاربران از آن حمایت کردند. Slackware 10.0 اولین نسخه با X.Org Server بود.

در مارس ۲۰۰۵، حذف محیط دسکتاپ GNOME از ChangeLog اعلام شد، زیرا پروژه‌های دیگر نسخه کامل‌تری از GNOME برای Slackware ارائه می‌دادند.

معماری 64 بیتی و Slackware64

در مه ۲۰۰۹، نسخه ۶۴ بیتی رسمی به نام Slackware64 معرفی شد. این نسخه خالص ۶۴ بیتی است و از اجرای برنامه‌های ۳۲ بیتی پشتیبانی نمی‌کند، اما به عنوان “multilib-ready” طراحی شده است. برای اجرای برنامه‌های ۳۲ بیتی، مخزن multilib ارائه شد که توسط اریک هاملرز مدیریت می‌شود. Slackware64 با نسخه ۱۳.۰ اولین نسخه پایدار خود را دید.

فاصله انتشار و بروزرسانی‌ها

بین نوامبر ۲۰۱۳ (نسخه ۱۴.۱) و ژوئن ۲۰۱۶، Slackware بیشترین فاصله بین انتشارها (۳۱ ماه) را داشت. شاخه توسعه در این مدت به مدت ۴۷ روز بدون به‌روزرسانی بود. با این حال، ChangeLog شامل بیش از ۷۰۰ تغییر نرم‌افزاری و بروزرسانی کتابخانه‌های مهم بود.

فلسفه طراحی Slackware

فلسفه طراحی Slackware بر سادگی، پاکی نرم‌افزار و حفظ طراحی اصلی با حداقل تغییر در منابع اصلی تأکید دارد. این فلسفه به میراث سیستم‌های سنتی Unix و اصول KISS بازمی‌گردد. منظور از «ساده»، ساده بودن طراحی سیستم است نه ساده بودن استفاده؛ بنابراین منحنی یادگیری برای کاربران تازه‌کار می‌تواند تند باشد.

بیشتر نرم‌افزارها در Slackware از مکانیسم پیکربندی اصلی ارائه شده توسط نویسندگان استفاده می‌کنند. با این حال، برای برخی وظایف مدیریتی، ابزارهای پیکربندی مخصوص توزیع ارائه می‌شوند.

# بررسی نسخه Slackware و معماری سیستم
uname -a
# بروزرسانی بسته‌ها در Slackware
slackpkg update
slackpkg upgrade-all
# نصب بسته‌های multilib در Slackware64
# ابتدا مخزن multilib اضافه می‌شود
# سپس بسته‌ها نصب می‌شوند
slackpkg install multilib

سیستم مدیریت بسته‌ها در Slackware

در Slackware، سیستم مدیریت بسته‌ها به عنوان pkgtools شناخته می‌شود و شامل ابزارهای مختلفی برای مدیریت بسته‌ها است:

pkgtool # مدیریت بسته‌ها
installpkg # نصب بسته‌ها
upgradepkg # به‌روزرسانی بسته‌ها
removepkg # حذف بسته‌ها
explodepkg # بازگشایی محتویات بسته‌ها
makepkg # ساخت بسته‌ها

توسعه

اندازه Slackware به سرعت با اضافه شدن نرم‌افزارهای موجود افزایش یافت و تا نسخه 2.1، که در اکتبر 1994 منتشر شد، بیش از سه برابر شد و شامل 73 تصویر دیسک فلاپی 1.44 مگابایتی بود.

در سال 1999، Slackware نسخه خود را از 4 به 7 افزایش داد. شماره نسخه‌های Slackware نسبت به سایر توزیع‌ها عقب‌تر بودند و این باعث شد بسیاری از کاربران تصور کنند که نسخه قدیمی است، اگرچه نسخه‌های نرم‌افزار همراه مشابه بودند. وولکرینگ تصمیم گرفت نسخه را به عنوان یک اقدام بازاریابی افزایش دهد تا نشان دهد Slackware به‌روز است، همانند سایر توزیع‌های لینوکس که در آن زمان شماره انتشار آنها 6 بود. او نسخه 7 را انتخاب کرد و تخمین زد که اکثر توزیع‌های دیگر به زودی به این شماره انتشار خواهند رسید.

در آوریل 2004، پاتریک وولکرینگ بسته‌های X.Org Server را به دایرکتوری testing/ در -current اضافه کرد تا جایگزینی برای بسته‌های XFree86 فعلی باشد و از جامعه درخواست نظرات کرد تا مشخص شود آینده سیستم پنجره‌ای X در Slackware چگونه باشد. یک ماه بعد، او از XFree86 به X.Org Server سوئیچ کرد، پس از بیان اینکه نظرها بیش از چهار به یک به نفع استفاده از نسخه X.org به عنوان نسخه پیش‌فرض X بودند. او اعلام کرد که این تصمیم عمدتاً فنی است، زیرا XFree86 باعث ایجاد مشکلات سازگاری می‌شد. Slackware 10.0 اولین نسخه‌ای بود که X.Org Server را داشت.

در مارس 2005، پاتریک وولکرینگ حذف محیط دسکتاپ GNOME را در ChangeLog توسعه اعلام کرد. او بیان کرد که این موضوع بیش از چهار سال در نظر گرفته شده بود و پروژه‌های دیگر نسخه کامل‌تری از GNOME برای Slackware ارائه می‌دادند نسبت به آنچه Slackware ارائه می‌کرد. وولکرینگ اعلام کرد که پشتیبانی آینده GNOME به جامعه واگذار خواهد شد. جامعه پاسخ داد و تا اکتبر 2016، چندین پروژه فعال GNOME (و شاخه‌های آن) برای Slackware در دسترس بودند، از جمله Cinnamon، Dlackware، Dropline GNOME، MATE و SlackMATE. حذف GNOME توسط برخی در جامعه لینوکس به دلیل شایع بودن آن در بسیاری از توزیع‌ها، اهمیت داشت.

در مه 2009، پاتریک وولکرینگ انتشار عمومی (نسخه توسعه) یک نسخه رسمی x86_64 را به نام Slackware64 اعلام کرد که به‌طور موازی با توزیع IA-32 نگهداری می‌شود. Slackware64 یک توزیع خالص 64 بیتی است که اجرای یا کامپایل برنامه‌های 32 بیتی را پشتیبانی نمی‌کند، اما به صورت “multilib-ready” طراحی شده بود. اریک هاملیرز، یکی از اعضای تیم اصلی Slackware، مخزن multilib را نگهداری می‌کند که شامل بسته‌های لازم برای تبدیل Slackware64 به multilib و امکان اجرای نرم‌افزار 32 بیتی است. هاملیرز پورت 64 بیتی را در سپتامبر 2008 به عنوان راهی برای سرگرمی در دوران بهبودی از جراحی آغاز کرد. وولکرینگ پورت را در دسامبر 2008 آزمایش کرد و وقتی افزایش سرعت بین 20 تا 40٪ در برخی بنچمارک‌ها نسبت به نسخه 32 بیتی مشاهده کرد، تحت تأثیر قرار گرفت. برای کاهش تلاش اضافی در نگهداری هر دو نسخه به طور موازی، اسکریپت‌های ساخت Slackware، که SlackBuilds نامیده می‌شوند، به تدریج به پشتیبانی از هر دو معماری منتقل شدند تا یک مجموعه منابع برای هر دو نسخه استفاده شود. Slackware64 اولین انتشار پایدار خود را با نسخه 13.0 تجربه کرد.

بین انتشار 14.1 در نوامبر 2013 و ژوئن 2016، Slackware یک فاصله 31 ماهه بین نسخه‌ها داشت که طولانی‌ترین دوره در تاریخ انتشار آن بود. در این مدت، شاخه توسعه به مدت 47 روز بدون به‌روزرسانی بود. با این حال، در 21 آوریل 2015، پاتریک وولکرینگ در ChangeLog بابت عدم به‌روزرسانی‌ها عذرخواهی کرد و بیان داشت که تیم توسعه از این زمان برای “انجام برخی کارهای خوب” استفاده کرده است. بیش از 700 تغییر برنامه در آن ورودی ChangeLog فهرست شد، شامل بسیاری از ارتقاءهای مهم کتابخانه‌ها. در ژانویه 2016، وولکرینگ افزودن اجباری PulseAudio را اعلام کرد، عمدتاً به دلیل اینکه BlueZ پشتیبانی مستقیم ALSA را در نسخه v5.x حذف کرده بود، در حالی که پروژه‌های دیگر به نوبه خود پشتیبانی از BlueZ v4.x را حذف می‌کردند. با اطلاع از اینکه برخی کاربران از این تغییر خوشحال نخواهند شد، گفت: “گزارش‌های باگ، شکایت‌ها و تهدیدها می‌توانند به من برسند.” این تغییرات با انتشار Slackware 14.2 در ژوئن 2016 به نتیجه رسید.

برای به‌روزرسانی Slackware از طریق شبکه یا اینترنت، ابزار slackpkg استفاده می‌شود. این ابزار ابتدا توسط Piter Punk به صورت غیررسمی توسعه یافت و از نسخه 12.2 به طور رسمی در Slackware قرار گرفت. slackpkg تنها نسخه‌ها را بررسی می‌کند و در صورت نیاز امکان نصب نسخه‌های قدیمی‌تر را نیز فراهم می‌کند.

ساختار و فشرده‌سازی بسته‌ها

بسته‌های Slackware به صورت آرشیوهای فشرده ارائه می‌شوند:

  • تا نسخه 13.0: با gzip و پسوند .tgz
  • از نسخه 13.0 به بعد: با xz (الگوریتم LZMA) و پسوند .txz
  • همچنین پشتیبانی از bzip2 و lzip با پسوندهای .tbz و .tlz وجود دارد، اما معمولاً استفاده نمی‌شوند.

بسته‌ها شامل تمام فایل‌های برنامه و فایل‌های متادیتا برای مدیر بسته هستند. فایل‌های متادیتا شامل:

  • slack-desc: توضیحات نرم‌افزار
  • doinst.sh: اسکریپت shell که پس از نصب اجرا می‌شود (ایجاد لینک نمادین، حفظ مجوز فایل‌ها، مدیریت فایل‌های پیکربندی و غیره)
  • douninst.sh: اسکریپت حذف که هنگام پاک‌کردن یا به‌روزرسانی بسته اجرا می‌شود

پایگاه داده و مدیریت نصب

مدیر بسته‌ها یک پایگاه داده محلی نگه می‌دارد که شامل اطلاعات زیر است:

  • دایرکتوری packages/: لاگ نصب هر بسته شامل نسخه، معماری، اندازه و مسیر فایل‌ها
  • دایرکتوری scripts/: اسکریپت‌های پس از نصب
  • دایرکتوری removed_packages/ و removed_scripts/: بسته‌ها و اسکریپت‌های حذف شده
  • دایرکتوری /var/lib/pkgtools/douninst.sh/: اسکریپت‌های حذف فعال در زمان نصب

در نسخه‌های 15.0، Volkerding مسیرهای پایگاه داده و اسکریپت‌ها برای جلوگیری از حذف تصادفی به مسیرهای اختصاصی منتقل شدند.

مخازن بسته‌ها

Slackware هیچ مخزن رسمی برای اینترنت ندارد و تنها بسته‌های رسمی در رسانه‌های نصب موجود هستند. با این حال، مخازن شخص ثالث زیادی برای Slackware وجود دارند که شامل:

  • مخازن مستقل
  • مخازن (Repositories)

    انتشارات (Releases)

    سیاست انتشار Slackware بر اساس ویژگی‌ها و ثبات است و بر خلاف توزیع‌های دیگر لینوکس که زمان‌بندی مشخصی دارند (مثلاً Ubuntu) یا از مدل انتشار پیوسته استفاده می‌کنند (مثلاً Gentoo Linux)، هیچ زمان مشخصی برای انتشار نسخه جدید وجود ندارد. وولکرینگ نسخه بعدی را زمانی منتشر می‌کند که احساس کند تعداد مناسبی تغییرات نسبت به نسخه قبلی انجام شده و این تغییرات محیطی پایدار ایجاد می‌کنند. همان‌طور که پاتریک وولکرینگ گفته است: “معمولاً سیاست ما این است که درباره تاریخ انتشار حدس نزنیم، زیرا این صرفاً حدس است. همیشه نمی‌توان پیش‌بینی کرد چه مدت طول می‌کشد تا ارتقاءهای لازم انجام شود و همه مسائل مربوطه حل شود. به محض اینکه چیزها برای نسخه بعدی ساخته شوند، در شاخه -current بارگذاری می‌شوند.”

    در طول تاریخ Slackware، معمولاً سعی شده نرم‌افزارهای به‌روز حداقل سالیانه ارائه شوند. از زمان تأسیس تا 2014، Slackware حداقل یک نسخه در سال منتشر کرده است. فعالیت انتشار در سال‌های 1994، 1995، 1997 و 1999 به اوج خود رسید، با سه نسخه در هر سال. از نسخه 7.1 (22 ژوئن 2000) پیشرفت انتشار پایدارتر شد و معمولاً سالی یک بار انجام می‌شد. بعد از آن، تنها سال‌هایی که دو نسخه داشتند، 2003، 2005 و 2008 بودند. با این حال، از انتشار Slackware 14.1 در 2013، انتشار نسخه‌های جدید به شدت کند شد. بین 14.1 و 14.2 بیش از 2 سال فاصله بود و تا 15.0 بیش از 5 سال فاصله افتاد. با انتشار 15.0، وولکرینگ اعلام کرد که انتظار می‌رود چرخه توسعه Slackware 15.1 کوتاه‌تر باشد زیرا “قسمت‌های دشوار” در توسعه 15.0 حل شده بودند.

    آخرین نسخه‌های پایدار 32 بیتی x86 و 64 بیتی x86_64 Slackware نسخه 15.0 (منتشر شده در 2 فوریه 2022) هستند که شامل پشتیبانی از Linux 5.15.19 می‌باشند.

    وولکرینگ همچنین نسخه توسعه‌ای / آزمایشی Slackware را با نام “-current” نگهداری می‌کند که برای استفاده در پیکربندی‌های پیشرفته مناسب است. این نسخه در نهایت به نسخه پایدار بعدی تبدیل می‌شود و در آن زمان وولکرینگ یک شاخه جدید -current ایجاد می‌کند تا توسعه نسخه بعدی Slackware آغاز شود. در حالی که این نسخه معمولاً پایدار است، ممکن است برخی مشکلات پیش آید و بنابراین -current به طور کلی برای سیستم‌های تولیدی توصیه نمی‌شود.

    تاریخچه نسخه‌ها

    نسخه تاریخ انتشار تاریخ پایان پشتیبانی نسخه هسته تغییرات قابل توجه
    1.00 1993-07-17 مشخص نشده 0.99.11 Alpha
    1.1 1993-11-05 مشخص نشده 0.99.13
    1.2 1994-03-19 مشخص نشده 1.0.8
    2.0 1994-07-02 مشخص نشده 1.0.9
    2.1 1994-10-31 مشخص نشده 1.1.59
    2.2 1995-03-30 مشخص نشده 1.2.1
    2.3 1995-05-24 مشخص نشده 1.2.8
    3.0 1995-11-30 مشخص نشده 1.2.13 انتقال از a.out به ELF؛ اولین نسخه ارائه شده روی CD-ROM
    3.1 1996-06-03 مشخص نشده 2.0.0 نامگذاری “Slackware 96″، اشاره به Windows 95
    3.2 1997-02-17 مشخص نشده 2.0.29
    3.3 1997-07-11 مشخص نشده 2.0.30
    3.4 1997-10-14 مشخص نشده 2.0.30 معرفی ZipSlack
    3.5 1998-06-09 مشخص نشده 2.0.34
    3.6 1998-10-28 مشخص نشده 2.0.35
    3.9 1999-05-10 مشخص نشده 2.0.37pre10
    4.0 1999-05-17 مشخص نشده 2.2.6 اولین نسخه نیازمند 1 گیگابایت فضای نصب و افزودن KDE
    7.0 1999-10-25 مشخص نشده 2.2.13
    7.1 2000-06-22 مشخص نشده 2.2.16 افزودن GNOM
    8.0 2001-07-01 مشخص نشده 2.2.19 افزودن مرورگر Mozilla و Linux 2.4 اختیاری
    8.1 2002-06-18 2012-08-01 2.4.18 تغییر نام بسته‌ها و تکامل hdsetup به pkgtools
    9.0 2003-03-19 2012-08-01 2.4.20 (patched به 2.4.21)
    9.1 2003-09-26 2012-08-01 2.4.22 (patched به 2.4.26) تغییر از OSS به ALSA
    10.0 2004-06-23 2012-08-01 2.4.26 تغییر از XFree86 به X.org Server
    10.1 2005-02-02 2012-08-01 2.4.29
    10.2 2005-09-14 2012-08-01 2.4.31 حذف محیط دسکتاپ GNOME
    11.0 2006-10-02 2012-08-01 2.4.33.3 اولین نسخه ارائه شده روی DVD
    12.0 2007-07-01 2012-08-01 2.6.21.5 تغییر از Linux 2.4 به 2.6، افزودن پشتیبانی HAL و حذف نصب با فلاپی
    12.1 2008-05-02 2013-12-09 2.6.24.5
    12.2 2008-12-10 2013-12-09 2.6.27.7 (patched به 2.6.27.31)]
    13.0 2009-08-26 2018-07-05 2.6.29.6 افزودن نسخه 64 بیتی، تغییر KDE 3.5 به 4.x و تغییر بسته‌ها از gzip به xz
    13.1 2010-05-24 2018-07-05 2.6.33.4 افزودن PolicyKit و ConsoleKit و تغییر به subsystems libata
    13.37 2011-04-27 2018-07-05 2.6.37.6 افزودن پشتیبانی GPT و ابزارهای Btrfs
    14.0 2012-09-28 2024-01-01 3.2.29 (patched به 3.2.98)[ افزودن NetworkManager و حذف HAL
    14.1 2013-11-04 2024-01-01 3.10.17 (patched به 3.10.107) پشتیبانی UEFI و تغییر MySQL به MariaDB
    14.2 2016-06-30 2024-01-01 4.4.14 (patched به 4.4.301) افزودن PulseAudio و VDPAU و تغییر از udev به eudev و از ConsoleKit به ConsoleKit2
    15.0 2022-02-02 مشخص نشده 5.15.19 (patched به 5.15.187) تغییر پیش‌فرض encoding از ASCII به UTF-8، تغییر ConsoleKit2 به elogind، تغییر KDE4 به Plasma5، مهاجرت به Python 3 و تغییر پایگاه داده بسته‌ها، افزودن lame، vulkansdk، SDL2، FFmpeg، PAM و Wayland به سیستم اصلی
    -current توسعه 6.12.25]

    افسانه:

    Unsupported = پشتیبانی نشده

    Supported = پشتیبانی شده

    Latest version = آخرین نسخه

    Preview version = نسخه پیش‌نمایش

    Slackware هیچ مخزن رسمی ندارد. تنها بسته‌های رسمی که Slackware ارائه می‌دهد، در رسانه نصب موجود هستند. با این حال، مخازن متعددی از طرف سوم برای Slackware وجود دارد؛ برخی مخزن مستقل هستند و برخی برای توزیع‌هایی هستند که بر پایه Slackware ساخته شده‌اند اما سازگاری بسته‌ها با Slackware را حفظ می‌کنند. بسیاری از این مخازن می‌توانند به طور همزمان با استفاده از pkgs.org، که یک موتور جستجوی بسته‌های لینوکس است، جستجو شوند. با این حال، ترکیب وابستگی‌ها از چند مخزن مختلف می‌تواند منجر به ایجاد دو یا چند بسته شود که نیازمند نسخه‌های متفاوتی از همان وابستگی هستند، که نوعی «جهنم وابستگی» محسوب می‌شود. خود Slackware هیچ راه‌حلی برای حل وابستگی این بسته‌ها ارائه نمی‌دهد، اما برخی پروژه‌ها فهرستی از وابستگی‌هایی که در Slackware موجود نیستند همراه با فایل‌های بسته ارائه می‌کنند، معمولاً با پسوند .dep.

    به دلیل احتمال بروز مشکلات وابستگی، بسیاری از کاربران ترجیح می‌دهند برنامه‌های خود را با استفاده از SlackBuilds که توسط جامعه ارائه می‌شوند، کامپایل کنند. SlackBuilds اسکریپت‌های شل هستند که یک بسته قابل نصب Slackware را از یک بسته نرم‌افزاری ارائه شده (tarball) ایجاد می‌کنند. از آنجا که SlackBuilds اسکریپت هستند، محدود به کامپایل کد منبع برنامه نیستند؛ بلکه می‌توان از آن‌ها برای بازبسته‌بندی باینری‌های از پیش کامپایل شده ارائه شده توسط پروژه‌ها یا مخازن دیگر به بسته‌های مناسب Slackware استفاده کرد.

    # مثال: SlackBuild اسکریپت برای ساخت یک بسته Slackware
    # ./example.SlackBuild

    SlackBuildهایی که منابع را کامپایل می‌کنند، چندین مزیت نسبت به بسته‌های از پیش ساخته شده دارند: از آنجا که آن‌ها از کد منبع نویسنده اصلی ساخته می‌شوند، کاربر نیازی به اعتماد به بسته‌بند شخص ثالث ندارد؛ علاوه بر این، فرایند کامپایل محلی اجازه بهینه‌سازی مخصوص ماشین را می‌دهد. در مقایسه با نصب و کامپایل دستی نرم‌افزار، SlackBuildها یکپارچگی بهتری با سیستم ارائه می‌دهند زیرا از مدیر بسته Slackware استفاده می‌کنند. برخی SlackBuildها همراه با یک فایل اضافی با فراداده ارائه می‌شوند که به ابزارهای خودکار اجازه می‌دهد منابع را دانلود کنند، صحت آن‌ها را بررسی کنند و وابستگی‌های اضافی که بخشی از Slackware نیستند را محاسبه کنند. برخی مخازن هم هم SlackBuildها و هم بسته‌های حاصل از آن‌ها را ارائه می‌دهند، به طوری که کاربران می‌توانند بسته خود را بسازند یا بسته از پیش ساخته شده را نصب کنند.

    تنها مخزن SlackBuilds که به طور رسمی مورد تأیید است]، SlackBuilds.org است که معمولاً به اختصار SBo نامیده می‌شود. این یک پروژه حمایت شده توسط جامعه است که SlackBuildهایی برای ساخت نرم‌افزارهایی ارائه می‌دهد که در Slackware گنجانده نشده‌اند. کاربران می‌توانند SlackBuildهای جدیدی برای نرم‌افزار به سایت ارسال کنند و پس از تأیید، آن‌ها به “نگهدارنده بسته” تبدیل می‌شوند. این افراد مسئول ارائه به‌روزرسانی‌ها برای SlackBuild هستند، چه برای رفع مشکلات و چه برای ساخت نسخه‌های جدید ارائه شده توسط upstream. برای اطمینان از اینکه همه برنامه‌ها قابل کامپایل و استفاده هستند، هر وابستگی مورد نیاز نرم‌افزار که در Slackware موجود نیست باید مستند شده و در سایت در دسترس باشد. تمام ارسال‌ها توسط مدیران سایت قبل از اضافه شدن به مخزن آزمایش می‌شوند. مدیران قصد دارند فرایند ساخت تقریباً مشابه روش ساخت بسته‌های رسمی Slackware باشد، عمدتاً برای اطمینان از اینکه وولکرینگ “با هدف ما همدل است”. این اجازه می‌دهد SlackBuildهایی که وولکرینگ شایسته می‌داند، با تغییرات حداقلی در اسکریپت وارد Slackware معمولی شوند و همچنین از پیشنهاد کاربران برای تغییر اسکریپت‌های وولکرینگ مطابق با SBo جلوگیری می‌کند. SBo قالب‌هایی برای SlackBuildها و فایل‌های فراداده اضافی ارائه می‌دهد و نگهدارندگان بسته را تشویق می‌کند که مگر در صورت نیاز از آن‌ها منحرف نشوند.

    دو عضو تیم Slackware، اریک هاملیرز و رابی ورکمن، هر کدام مخزن خود از بسته‌های از پیش کامپایل شده را همراه با SlackBuildها و فایل‌های منبع مورد استفاده برای ایجاد بسته‌ها نگهداری می‌کنند. در حالی که بیشتر بسته‌ها فقط نرم‌افزار اضافی هستند که در Slackware موجود نبود و آن‌ها ارزش نگهداری داشتند، برخی بسته‌ها به عنوان آزمایش برای ارتقاءهای آینده Slackware استفاده می‌شوند؛ به ویژه، هاملیرز بسته‌های “Ktown” را برای نسخه‌های جدید KDE ارائه می‌دهد. او همچنین مخزن “multilib” Slackware را نگهداری می‌کند که به Slackware64 اجازه می‌دهد بسته‌های 32 بیتی را اجرا و کامپایل کند.

  • مخازن توزیع‌های مبتنی بر Slackware

استفاده از چند مخزن می‌تواند باعث ایجاد مشکلات وابستگی شود. Slackware خود راه‌حلی برای مدیریت وابستگی‌ها ندارد، اما برخی پروژه‌ها فایل‌های وابستگی با پسوند .dep ارائه می‌دهند.

نمونه دستورات مدیریت بسته‌ها

# بروزرسانی لیست بسته‌ها
slackpkg update

# ارتقای تمام بسته‌ها
slackpkg upgrade-all

# نصب یک بسته جدید
installpkg package.txz

# به‌روزرسانی بسته خاص
upgradepkg package.txz

# حذف یک بسته
removepkg package

# ساخت بسته جدید از سورس
makepkg -l y -c n /path/to/package

معماری‌های سخت‌افزاری در Slackware

در ابتدا، Slackware تنها بر روی معماری IA-32 تمرکز داشت و نسخه‌های آن فقط 32 بیتی بودند. از نسخه 13.0 به بعد، نسخه 64 بیتی x86_64 نیز به طور رسمی همراه با نسخه 32 بیتی توسعه یافت. پیش از انتشار Slackware64، کاربران علاقه‌مند به 64 بیت مجبور بودند از پورت‌های غیررسمی مانند slamd64 استفاده کنند.

Slackware همچنین برای سایر معماری‌ها ارائه شده است:

  • IBM S/390 به صورت Slack/390
  • ARM تحت عنوان Slackware ARM (که در ابتدا ARMedslack نام داشت)

این پورت‌ها توسط پاتریک وولکردینگ رسمی اعلام شدند، اما پورت S/390 از سال 2009 به‌روزرسانی نشده است. پشتیبانی از نسخه 14.2 ARM تا آینده قابل پیش‌بینی ادامه دارد، در حالی که نسخه 14.1 پایان عمر خود را اعلام کرده است.

در سال 2016، ابزارهای توسعه و ساخت پورت ARM بهبود یافتند و یک پورت شناور سخت‌افزاری 32 بیتی نیز در آگوست 2016 منتشر شد.
در 28 دسامبر 2020، کار بر روی پورت 64 بیتی ARM (AArch64) آغاز شد، با هدف سخت‌افزارهای RockPro64 و Pinebook Pro. این پروژه تا ماه مه 2021 عملیاتی شد و فرآیندهای نصب و بوت بهبود یافت.

در 29 مارس 2022، Slackware AArch64 به صورت عمومی در شاخه -current منتشر شد و از RockPro64، Pinebook Pro و Raspberry Pi 3 و 4 پشتیبانی می‌کند. همچنین، مستندات نصب آنلاین و راهنماهای ویدیویی ارائه شدند. پروژه غیر رسمی slarm64 پورت AArch64 و riscv64 را نیز ارائه می‌دهد.

در مارس 2022، توسعه رسمی پورت 32 بیتی ARM متوقف شد و تمرکز بر پورت AArch64/ARM64 قرار گرفت، زیرا سخت‌افزار 32 بیتی محدودیت‌هایی ایجاد می‌کرد و با توسعه Slackware همگام نبود. با این حال، پروژه غیر رسمی BonSlack همچنان پورت‌های ARMv5 و ARMv7 32 بیتی را ارائه می‌دهد و همچنین پشتیبانی از معماری‌های دیگر مانند Alpha، HPPA، LoongArch 64 بیتی، MIPS 32/64، OpenRISC، PowerPC، RISC-V، S/390x، SH-4، SPARC و x86 32 بیتی با time_t 64 بیتی را فراهم می‌کند.

معماری‌های سخت‌افزاری (Hardware Architectures)

تاریخچه نشان می‌دهد که Slackware در ابتدا تنها بر روی معماری IA-32 تمرکز داشت و نسخه‌ها فقط به صورت 32 بیتی ارائه می‌شدند. با این حال، از نسخه Slackware 13.0، نسخه 64 بیتی x86_64 نیز در دسترس و به صورت رسمی و به طور همزمان با نسخه 32 بیتی پشتیبانی می‌شود. پیش از انتشار Slackware64، کاربرانی که به 64 بیت نیاز داشتند مجبور به استفاده از پورت‌های غیررسمی مانند slamd64 بودند.

Slackware همچنین برای معماری IBM S/390 به صورت Slack/390 و برای معماری ARM تحت Slackware ARM (که ابتدا به نام ‘ARMedslack’ شناخته می‌شد) در دسترس است. هر دو پورت توسط پاتریک وولکرینگ به عنوان “رسمی” اعلام شده‌اند.[[ با این حال، پورت S/390 هنوز در نسخه 10.0 برای نسخه پایدار و 11.0 برای نسخه توسعه‌ای است و از سال 2009 به‌روزرسانی نشده است. همچنین در 7 مه 2016، توسعه‌دهنده Slackware ARM اعلام کرد که 14.1 در 1 سپتامبر 2016 به EOL خواهد رسید و توسعه -current با انتشار 14.2 متوقف خواهد شد، اما پشتیبانی از 14.2 برای آینده نزدیک ادامه خواهد داشت. اعلام EOL برای 14.1 در 25 ژوئن 2016 به ChangeLog اضافه شد و اعلام EOL برای 14.2 در 21 دسامبر 2022 اضافه شد.

در ژوئیه 2016، توسعه‌دهنده Slackware ARM اعلام کرد که ابزارهای توسعه و ساخت بهبود یافته‌اند تا تلاش دستی در نگهداری پورت ARM کاهش یابد و اعلام کرد که یک پورت سخت‌افزار 32 بیتی در حال توسعه است. این پورت در آگوست 2016 در قالب “current” منتشر شد.]

در 28 دسامبر 2020، کار بر روی پورت Slackware برای معماری ARM 64 بیتی (AArch64) آغاز شد، با اهداف اولیه سخت‌افزاری RockPro64 و Pinebook Pro از PINE64. این پورت تا مه 2021 به صورت عملیاتی کامل شد و بهبودهای زیادی نسبت به طراحی اولیه پورت ARM داشت، به ویژه در مدیریت و فعال‌سازی مدل‌های سخت‌افزاری جدید توسط جامعه Slackware ARM. همچنین فرایند بوت و نصب به طور قابل توجهی بهبود یافت و نصب ساده‌تر و روان‌تر شد.

در 29 مارس 2022، Slackware AArch64 به صورت عمومی در شاخه -current (توسعه‌ای) منتشر شد و از RockPro64، Pinebook Pro و Raspberry Pi 3 & 4 پشتیبانی می‌کرد، همراه با مستندات نصب آنلاین و ویدئوهای راهنمای نصب. همچنین پروژه غیررسمی slarm64[119] یک پورت برای AArch64 و یک پورت اضافی برای معماری riscv64 دارد.

در مارس 2022، توسعه رسمی پورت ARM 32 بیتی Slackware متوقف شد و توسعه آینده تنها بر روی پورت AArch64/ARM64 متمرکز شد. دلیل این تصمیم این بود که سخت‌افزار 32 بیتی قادر به همگامی با توسعه Slackware نبود و مانع توسعه می‌شد و محدودیت‌های سخت‌افزاری باعث محدودیت در استفاده از تکنولوژی‌های جدید شده بود. همچنین از آنجایی که اکثر توزیع‌های اصلی دیگر پشتیبانی از ARM 32 بیتی را متوقف کرده بودند، برخی برنامه‌ها دیگر ساخته نمی‌شدند و قابل پشتیبانی نبودند. با این حال، پورت غیررسمی Slackware به نام BonSlack هم نسخه‌های soft (ARMv5) و hard float (ARMv7) را ارائه می‌دهد و توسعه و به‌روزرسانی‌ها از نسخه 14.2 همسو با Slackware رسمی انجام می‌شود. این پروژه همچنین پورت‌هایی برای Aarch64 (ARM64)، Alpha، HPPA (PA-RISC 1.1)، LoongArch (64 بیت)، MIPS (32/64 بیت)، OpenRISC، PowerPC (32/64 بیت)، RISC-V (64 بیت)، S/390x، SH-4، SPARC (32/64 بیت) و x86 (32 بیت با time_t 64 بیت) ارائه می‌دهد.

در 21 دسامبر 2022، Slackware ARM 14.2 پایان عمر (EOL) خود را در 1 مارس 2023 اعلام کرد.

Slackintosh یک پورت Slackware Linux برای معماری PowerPC Macintosh با New World ROM است که توسط خطوط Apple Power Macintosh، PowerBook، iMac، iBook و Xserve از 1994 تا 2006 استفاده می‌شد. آخرین نسخه Slackintosh 12.1 در 7 ژوئن 2008 منتشر شد. وب‌سایت Slackintosh هنوز فعال است و نسخه 12.1 برای دانلود در دسترس است برای کسانی که کامپیوترهای قدیمی PowerPC Macintosh دارند. توسعه‌دهندگان پروژه در فوریه 2012 اعلام کردند که توسعه متوقف شده و 12.1 تنها برای یک ماه پچ‌های امنیتی دریافت خواهد کرد. ماه بعد، اعلام شد که انتشار پایدار متوقف شده و دیگر به‌روزرسانی دریافت نمی‌کند مگر کسی تصمیم به ادامه توسعه بگیرد. این اتفاق نیفتاد و وولکرینگ رسماً پروژه را در ژوئیه 2021 مرده اعلام کرد.

چرا از Slackware استفاده کنیم؟

Slackware دارای سابقه‌ای طولانی و معتبر است. این توزیع از سال 1992 شروع شد و اولین نسخه آن در سال 1993 منتشر شد، که آن را به قدیمی‌ترین توزیع لینوکس تجاری تبدیل می‌کند. تمرکز Slackware بر ایجاد یک سیستم ساده، تمیز و شبیه یونیکس است، که آن را برای کسانی که می‌خواهند عمیقاً درباره لینوکس و سیستم‌های مشابه یونیکس بیاموزند، ایده‌آل می‌کند.

پاتریک وولکردینگ، بنیانگذار Slackware، درباره فلسفه خود گفته است که سعی می‌کند تغییرات بی‌جهت در سیستم ایجاد نکند تا کاربران که به Slackware باز می‌گردند، مجبور به یادگیری مجدد روش‌های کار با سیستم نشوند. این باعث ایجاد یک جامعه وفادار از کاربران شده است.

سادگی Slackware آن را برای کاربرانی که می‌خواهند سیستم‌های سفارشی خود را بسازند، ایده‌آل می‌کند. این سیستم می‌تواند به عنوان دسکتاپ، ایستگاه کاری یا سرور مورد استفاده قرار گیرد.

تفاوت‌ها با سایر توزیع‌های لینوکس

Slackware در مقایسه با توزیع‌های دیگری مانند Red Hat، Debian و Ubuntu تفاوت‌های مهمی دارد:

  • فقدان ابزارهای گرافیکی گسترده برای مدیریت سیستم؛ Slackware انتظار دارد که مدیر سیستم خودش تغییرات را انجام دهد.
  • هیچ ابزار راه‌اندازی عمومی یا پیکربندی خودکار فراتر از ابزارهای رسمی ارائه‌شده توسط توسعه‌دهندگان اصلی وجود ندارد.
  • منحنی یادگیری تندتر است، اما به کاربر آزادی کامل در مدیریت سیستم داده می‌شود.

همچنین ممکن است شنیده باشید که Slackware “مدیریت بسته ندارد”. این کاملاً نادرست است. Slackware سیستم مدیریت بسته دارد، اما برخلاف بسیاری از توزیع‌ها، وابستگی‌ها را به‌صورت خودکار حل نمی‌کند. این رویکرد به حفظ سادگی، کنترل و قابلیت اطمینان کمک می‌کند.

صدور مجوز

هر قطعه از Slackware توسط افراد یا تیم‌های مختلف توسعه یافته است و مجوزهای مختلفی دارد. بیشتر نرم‌افزارهای Slackware تحت مجوز GPL یا BSD منتشر می‌شوند.

  • GPL: اجازه استفاده و تغییر نرم‌افزار را می‌دهد، اما توزیع مجدد یا تغییرات باید مطابق با شرایط GPL انجام شود.
  • BSD: تقریباً هیچ محدودیتی برای آثار مشتق ندارد و تنها نیاز به حفظ حقوق کپی‌رایت و سلب مسئولیت دارد.

نصب توزیع

نصب Slackware شبیه نصب سیستم‌های BSD است و برای کاربران آشنا با آن‌ها راحت است. حتی اگر تجربه نصب‌کننده‌های گرافیکی لینوکس را داشته باشید، ابتدا ممکن است کمی پیچیده به نظر برسد، اما پس از فهمیدن روند نصب، بسیار ساده است.

Slackware معمولاً از طریق DVD یا CD توزیع می‌شود، اما نصب از USB و PXE نیز ممکن است. برای نصب از USB یا شبکه، فایل‌های README موجود در دایرکتوری usb-and-pxe-installers بهترین منبع اطلاعات هستند.

راه‌اندازی نصب‌کننده

راه‌اندازی نصب‌کننده شامل قرار دادن دیسک نصب در درایو CD/DVD و راه‌اندازی مجدد سیستم است. ممکن است نیاز باشد ترتیب بوت در BIOS تغییر کند تا درایو نوری در اولویت قرار گیرد.

پس از بوت، می‌توانید پارامترهای هسته (kernel parameters) را وارد کنید. این امکان به شما اجازه می‌دهد نصب‌کننده را به عنوان یک دیسک نجات نیز استفاده کنید. در اکثر موارد، کافی است اینتر را فشار دهید تا بوت انجام شود.

dmesg

هنگامی که هسته سخت‌افزار را شناسایی می‌کند، پیام‌هایی روی صفحه ظاهر می‌شوند که کاملاً طبیعی هستند. این پیام‌ها اطلاعات مهمی برای عیب‌یابی سخت‌افزار هستند. پس از شناسایی کامل سخت‌افزار، می‌توانید پشتیبانی از صفحه‌کلیدهای غیر معمول را فعال کنید.

ورود به سیستم Slackware: root

برخلاف برخی توزیع‌های لینوکس که شما را مستقیماً به یک نصب‌کننده گرافیکی هدایت می‌کنند، نصب‌کننده Slackware شما را وارد یک توزیع محدود لینوکس می‌کند که در حافظه رم بارگذاری شده است. در این محیط، می‌توانید تمام مراحل نصب را به صورت دستی انجام دهید و حتی در مواقع اضطراری برای تعمیر سیستم از آن استفاده کنید.

در نصب‌کننده، به عنوان root وارد می‌شوید و نیازی به رمز عبور نیست. در این مرحله می‌توانید پشتیبانی از RAID، LVM یا پارتیشن روت رمزگذاری‌شده را فعال کنید، اما این موارد خارج از محدوده این کتاب هستند. برای اطلاعات بیشتر می‌توانید به فایل‌های README_RAID.TXT، README_LVM.TXT و README_CRYPT.TXT مراجعه کنید.

پارتیشن بندی

Slackware از ابزار پارتیشن‌بندی گرافیکی استفاده نمی‌کند و به جای آن ابزارهای سنتی لینوکس را در اختیار شما قرار می‌دهد. ابزارهای اصلی شامل:

fdisk
cfdisk
sfdisk
gdisk

در این کتاب، ما از fdisk استفاده می‌کنیم. ابتدا باید هارد دیسک خود را شناسایی کنیم. در لینوکس همه دستگاه‌ها با فایل‌های دستگاه در دایرکتوری /dev/ مشخص می‌شوند. معمولاً هارد دیسک‌ها به صورت SCSI شناسایی می‌شوند و به آنها نام‌هایی مانند /dev/sda اختصاص می‌یابد.

root@slackware:/# fdisk -l
Disk /dev/sda: 72.7 GB, 72725037056 bytes
255 heads, 63 sectors/track, 8841 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

برای پارتیشن‌بندی واقعی، باید به fdisk بگوییم روی کدام درایو کار کند:

root@slackware:/# fdisk /dev/sda

fdisk اکنون دیسک انتخاب‌شده را بررسی کرده و آماده دریافت دستورات شماست. با تایپ m می‌توانید فهرست دستورات را مشاهده کنید:

Command (m for help): m

Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition’s system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)

ما حداقل به یک پارتیشن روت / و یک پارتیشن swap نیاز داریم. اگر می‌خواهید فایل‌های کاربران جدا باشند، می‌توانید یک پارتیشن /home نیز بسازید.

Command: n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-8841, default 1): 1
Last cylinder or +size or +sizeM or +sizeK (1-8841, default 8841): +8G
Command: n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (975-8841, default 975): 975
Last cylinder or +size or +sizeM or +sizeK (975-8841, default 8841): +1G

اکنون دو پارتیشن ایجاد شده‌اند: اولی 8 گیگابایت برای / و دومی 1 گیگابایت برای swap. برای تغییر نوع پارتیشن swap از 83 به 82 از دستور t استفاده می‌کنیم:

Command (m for help): t
Partition number (1-4): 2
Hex code (type L to list codes): 82

اگر بخواهید یک پارتیشن /home اضافه کنید:

Command: n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 3
First cylinder (1098-8841, default 1098): 1098
Last cylinder or +size or +sizeM or +sizeK (1098-8841, default 8841): 8841

در پایان تغییرات را با دستور w روی دیسک می‌نویسیم:

Command: w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.

اکنون پارتیشن بندی کامل شده و آماده شروع نصب هستیم. اگر پارتیشن‌های توسعه یافته ایجاد کرده‌اید، ممکن است بخواهید یک بار سیستم را ریبوت کنید تا اطمینان حاصل شود هسته آن‌ها را به درستی می‌خواند.

برنامه راه‌اندازی Slackware

پس از ایجاد پارتیشن‌ها، زمان اجرای برنامه نصب و راه‌اندازی Slackware فرا می‌رسد. این برنامه قالب‌بندی پارتیشن‌ها، نصب بسته‌ها و اجرای اسکریپت‌های پیکربندی اولیه را به صورت مرحله به مرحله انجام می‌دهد. برای شروع، کافیست دستور زیر را در پوسته وارد کنید:

# setup

اگر قبلاً Slackware را نصب نکرده‌اید، می‌توانید از منوی Help برای دریافت یک نمای کلی از نصب‌کننده استفاده کنید. این منو به شما کمک می‌کند با پیمایش در نصب‌کننده آشنا شوید.

نقشه کلید

Slackware به شما اجازه می‌دهد نقشه صفحه‌کلید خود را انتخاب کنید. اگر از صفحه‌کلید استاندارد ایالات متحده استفاده می‌کنید، می‌توانید این مرحله را رد کنید. برای صفحه‌کلیدهای بین‌المللی، نقشه صحیح تضمین می‌کند که کلیدهای فشرده شده همان عملکرد مورد انتظار را دارند.

فعال‌سازی Swap

اگر پارتیشن swap ایجاد کرده‌اید، این مرحله آن را فعال می‌کند. Swap به عنوان حافظه مجازی عمل می‌کند و زمانی که RAM پر شود، بخش‌هایی از حافظه فعال روی هارد دیسک کپی می‌شوند. نصب‌کننده همچنین پارتیشن swap را در /etc/fstab اضافه می‌کند تا برای سیستم عامل قابل دسترسی باشد.

انتخاب هدف (پارتیشن‌ها)

در این مرحله باید پارتیشن روت و هر پارتیشن دیگری که مایل به استفاده هستید انتخاب کنید. به شما اجازه داده می‌شود نوع سیستم فایل را مشخص کنید و تصمیم بگیرید که پارتیشن را فرمت کنید یا خیر. برای مثال، پارتیشن /home معمولاً بدون فرمت باقی می‌ماند تا داده‌های کاربر حفظ شوند.

منبع بسته‌ها

به نصب‌کننده بگویید که بسته‌ها کجا قرار دارند. رایج‌ترین روش استفاده از DVD یا CD نصب است. همچنین می‌توانید بسته‌ها را از پارتیشن‌های محلی یا مسیرهای شبکه مانند NFS، FTP، HTTP یا Samba نصب کنید. در این راهنما، نصب از DVD پوشش داده می‌شود.

انتخاب مجموعه بسته‌ها

Slackware بسته‌ها را در مجموعه‌هایی تقسیم می‌کند. نصب‌کننده به شما اجازه می‌دهد انتخاب کنید کدام مجموعه‌ها نصب شوند. مجموعه “A” همیشه ضروری است، اما می‌توانید سایر مجموعه‌ها مانند X و KDE را مطابق نیاز خود انتخاب کنید.

نصب بسته‌ها

برای اولین نصب، روش کامل توصیه می‌شود. این روش تمام بسته‌های مورد نیاز را نصب می‌کند. روش‌های دیگر شامل:

  • Menu و Expert: انتخاب بسته‌های جداگانه برای کاربران پیشرفته.
  • Newbie: نصب مرحله‌ای با نمایش محتویات بسته‌ها، مناسب کاربران تازه‌کار.
  • Custom / Tag: نصب از فایل‌های تگ سفارشی، فقط برای کاربران حرفه‌ای.

پیکربندی سیستم

پس از نصب بسته‌ها، Slackware وظایف پیکربندی سیستم را پیشنهاد می‌دهد. برخی اختیاری هستند، اما موارد مهم باید تنظیم شوند:

دیسک بوت

Slackware معمولاً از فلش USB قابل بوت استفاده می‌کند. توجه داشته باشید که محتویات فلش پاک می‌شود.

بوت لودر LILO

LILO مسئول بوت کردن هسته لینوکس و اتصال به سیستم فایل root است. گزینه‌های ارائه شده:

  • Simple: پیکربندی خودکار برای سیستم‌های ساده، مناسب اگر Slackware تنها سیستم عامل است.
  • Expert: پیکربندی دقیق، شامل دوگانه بوت و پارامترهای هسته.

پیکربندی ماوس کنسول

راه‌اندازی ماوس کنسول برای استفاده در ترمینال، کپی و جایگذاری راحت‌تر را ممکن می‌کند. کاربران معمولاً یکی از سه گزینه اول را انتخاب می‌کنند، حتی موش‌های سریال دو دکمه قدیمی نیز کار می‌کنند.

پیکربندی شبکه

مرحله بعدی در نصب Slackware، پیکربندی شبکه است. اگر نمی‌خواهید شبکه خود را در این مرحله پیکربندی کنید، می‌توانید این مرحله را رد کنید. در غیر این صورت، ابتدا از شما خواسته می‌شود یک نام میزبان (hostname) برای رایانه خود وارد کنید.

در مراحل بعدی، یک نام دامنه مانند example.org از شما خواسته می‌شود. اگر از سرویس DNS داخلی یا فایل /etc/hosts استفاده می‌کنید، ترکیب نام میزبان و نام دامنه به شما کمک می‌کند بین رایانه‌های شبکه مسیریابی کنید. اگر پیکربندی شبکه را رد کنید، Slackware به‌طور پیش‌فرض نام رایانه را hossein انتخاب می‌کند.

تنظیم آدرس IP

برای آدرس IP سه گزینه وجود دارد:

  • استفاده از IP ثابت (Static IP)
  • استفاده از DHCP
  • راه‌اندازی اتصال حلقه‌بک (Loopback)

معمولاً DHCP ساده‌ترین و رایج‌ترین گزینه است. اگر یک IP ثابت انتخاب کنید، باید IP، Subnet Mask، Gateway و DNS Server را مشخص کنید. یک صفحه نهایی به شما امکان تأیید و ویرایش تنظیمات یا تغییر به DHCP را می‌دهد.

پیکربندی سرویس‌ها

پس از پیکربندی شبکه، Slackware از شما می‌خواهد سرویس‌هایی را که می‌خواهید به‌طور خودکار در زمان بوت اجرا شوند، انتخاب کنید. توضیحات هر سرویس در سمت راست و پایین صفحه نمایش داده می‌شود. سرویس‌ها را می‌توان بعداً با pkgtool تغییر داد.

تنظیم زمان و منطقه زمانی

هر کامپیوتر باید زمان فعلی را ردیابی کند. اگر ساعت سخت‌افزاری روی UTC تنظیم شده باشد، آن را انتخاب کنید و سپس منطقه زمانی خود را از لیست ارائه شده انتخاب کنید.

انتخاب محیط دسکتاپ

اگر مجموعه دیسک X نصب شده باشد، از شما خواسته می‌شود یک مدیر پنجره یا محیط دسکتاپ پیش‌فرض انتخاب کنید. این انتخاب برای تمام کاربران اعمال می‌شود مگر اینکه کاربر دیگری xwmconfig را اجرا کند.

تنظیم رمز عبور Root

کاربر Root در Slackware کاربر «ابرکاربر» است و تمامی مجوزها را دارد. ایجاد یک رمز عبور قوی برای Root الزامی است.

خروج از نصب‌کننده و راه‌اندازی مجدد

پس از تکمیل مراحل، می‌توانید نصب‌کننده را ترک کنید و با CTRL + ALT + DELETE سیستم را ریبوت کنید. دیسک نصب را بردارید تا سیستم Slackware جدید شما بوت شود. اگر مشکلی پیش آمد، معمولاً مربوط به پیکربندی LILO است.

ایجاد کاربر جدید

پس از راه‌اندازی، تنها کاربر موجود Root است. استفاده از Root برای کار روزمره خطرناک است. ساده‌ترین روش ایجاد کاربر معمولی:

# adduser

این دستور به‌صورت تعاملی کاربر جدید را ایجاد می‌کند.

توابع بوت و راه‌اندازی

Slackware به شما کنترل کامل بر فرآیند بوت می‌دهد و حتی بوت دوگانه با سایر سیستم‌ها مانند Windows را آسان می‌کند. با ویرایش فایل‌های پیکربندی و اجرای مجدد نصب‌کننده بوت لودر می‌توانید تنظیمات را تغییر دهید.

هسته لینوکس و mkinitrd

Slackware معمولاً چند هسته مختلف دارد. برای مشاهده هسته‌ها:

# ls -1 /boot/vmlinuz*

نمونه خروجی ممکن است به شکل زیر باشد:

/boot/vmlinuz-huge-2.6.29.4
/boot/vmlinuz-generic-2.6.29.4

هسته‌های Huge برای راه‌اندازی در هر سخت‌افزار قابل تصور است و اغلب توسط نصب‌کننده استفاده می‌شوند. هسته‌های Generic سبک‌تر هستند و با استفاده از initrd (با دستور mkinitrd) ماژول‌های ضروری بارگذاری می‌شوند.

استفاده از هسته Generic مزایای زیادی دارد: صرفه‌جویی در حافظه و کاهش تضادهای سخت‌افزاری. با این حال، برای بوت هسته Generic نیاز به ماژول‌های initrd است، به‌خصوص اگر از SCSI، RAID، رمزگذاری دیسک یا LVM استفاده می‌کنید.

مستندات سیستم

سیستم لینوکس Slackware دارای اسناد داخلی بسیاری است که تقریباً برای هر برنامه نصب شده موجود است. رایج‌ترین روش برای دسترسی به این اسناد استفاده از دستور man است.

استفاده از man

دستور man (مخفف manual) صفحه راهنمای یک برنامه، تماس سیستمی، فایل پیکربندی یا کتابخانه را نمایش می‌دهد. به عنوان مثال:

# man man

برای جستجوی اسناد با کلیدواژه خاص، می‌توانید از سوئیچ -k استفاده کنید:

# man -k printf

printf (1) – format and print data
printf (3) – formatted output conversion

برای مشاهده صفحه یک بخش مشخص، شماره بخش را بعد از دستور وارد کنید:

# man 3 printf

بخش‌های صفحات man

بخش فهرست
1 دستورات کاربر
2 تماس‌های سیستمی
3 C کتابخانه‌ها
4 دستگاه‌ها
5 فرمت‌های فایل / پروتکل‌ها
6 بازی‌ها
7 کنوانسیون‌ها / بسته‌های کلان
8 مدیریت سیستم
9 توضیحات Kernel API
n جدید – معمولاً برای Tcl/Tk استفاده می‌شود

فهرست کردن فایل‌ها و دایرکتوری‌ها

برای مشاهده فایل‌ها و دایرکتوری‌ها از دستور ls استفاده می‌شود:

# ls /
bin/ dev/ home/ lost+found/ mnt/ proc/ sbin/ sys/ usr/
boot/ etc/ lib/ media/ opt/ root/ srv/ tmp/ var/

برای مشاهده اطلاعات بیشتر مانند مجوزها، مالک و اندازه، از گزینه -l استفاده کنید:

# ls -l /home/alan/Desktop

-rw-r–r– 1 alan alan 15624161 2007-09-21 13:02 9780596510480.pdf
-rw-r–r– 1 alan alan 3829534 2007-09-14 12:56 imgscan.zip
drwxr-xr-x 3 alan root 168 2007-09-17 21:01 ipod_hack/
drwxr-xr-x 2 alan users 200 2007-12-03 22:11 libgpod/

نمایش فایل‌های مخفی

فایل‌های مخفی با نقطه شروع می‌شوند. برای مشاهده آن‌ها از گزینه -a استفاده کنید:

# ls -a
xine/ xinitrc-backup .xscreensaver .xsession-errors SBo/
xinitrc .xinitrc-xfce .xsession .xwmconfig/ Shared/

در Slackware، فایل‌ها و دایرکتوری‌ها اغلب با رنگ‌های متفاوت نمایش داده می‌شوند. این ویژگی‌ها با متغیرهای محیطی LS_OPTIONS و LS_COLORS کنترل می‌شوند.

حرکت در اطراف سیستم فایل

برای تغییر دایرکتوری‌ها از دستور cd استفاده می‌شود. این دستور یک پوسته داخلی است و صفحه man جداگانه ندارد. برای مشاهده مسیر فعلی دایرکتوری کاری:

# pwd
/usr/local

مدیریت بسته‌ها در Slackware

مدیریت بسته‌ها بخش مهمی از هر توزیع لینوکس است. Slackware بسته‌های نرم‌افزاری را به صورت کد منبع ارائه می‌دهد، اما کامپایل هزاران برنامه وقت‌گیر است. برای راحتی، از بسته‌های پیش‌کامپایل شده استفاده می‌کنیم.

ابزار pkgtool

ساده‌ترین ابزار برای مدیریت بسته‌ها pkgtool است. این برنامه رابطی منو محور ارائه می‌دهد تا بتوانید بسته‌ها را نصب، حذف یا محتوای آن‌ها را مشاهده کنید.

# pkgtool

نصب بسته‌ها با installpkg

برای نصب سریع بسته‌ها یا مجموعه‌های کامل، از installpkg استفاده می‌کنیم:

# installpkg blackbox-0.70.1-i486-2.txz

برای نصب چند بسته به صورت همزمان، می‌توان از wildcard استفاده کرد:

# installpkg /mnt/cdrom/slackware/n/*.txz

بررسی بسته‌های نصب شده

برای دیدن بسته‌های نصب شده و شماره نسخه‌ها، محتویات /var/log/packages را بررسی کنید:

# cat /var/log/packages/foo-1.0-x86_64.txz

حذف و ارتقاء بسته‌ها

حذف بسته‌ها با دستور removepkg انجام می‌شود:

# removepkg blackbox-0.70.1-i486-2.txz

ارتقاء بسته‌ها با upgradepkg انجام می‌شود:

# upgradepkg blackbox-0.70.1-i486-2.txz

فرمت‌های فشرده سازی بسته

بسته‌های Slackware قدیمی با gzip (.tgz) و جدید با xz (.txz) فشرده می‌شوند. تمام فایل‌های .t?z بسته Slackware نیستند؛ تنها فایل‌های معتبر با ابزار installpkg نصب می‌شوند.

ابزار slackpkg

slackpkg ابزاری برای مدیریت خودکار بسته‌هاست. با آن می‌توان بسته‌ها را از اینترنت دانلود و نصب کرد. ابتدا باید یک آینه (mirror) مناسب در /etc/slackpkg/mirrors پیکربندی شود.

# slackpkg update
# slackpkg install foo

ابزار rpm2tgz

برای تبدیل بسته‌های RPM به بسته‌های Slackware از rpm2tgz استفاده می‌شود. این ابزار اجازه می‌دهد بسته‌های RPM را بدون ایجاد مشکل وابستگی نصب کنید.

# rpm2tgz foo-xxxx.rpm
# installpkg foo-xxxx.tgz

هشدار: rpm2tgz همیشه وابستگی‌ها را به طور کامل حل نمی‌کند و ممکن است برخی بسته‌ها کار نکنند.

به‌روزرسانی‌ها و نسخه پایدار

پس از انتشار نسخه جدید Slackware، تیم توسعه بسته‌های به‌روزرسانی برای رفع آسیب‌پذیری‌ها و باگ‌های جدی منتشر می‌کند. این بسته‌ها معمولاً برای شاخه -stable عرضه می‌شوند. شاخه current تغییرات جدید و آزمایشی دارد و ممکن است ناپایدار باشد.

به‌روزرسانی‌های پایدار از اینترنت دریافت می‌شوند. می‌توانید از آینه‌های رسمی Slackware استفاده کنید. بهتر است از آینه‌ای نزدیک محل زندگی خود استفاده کنید تا سرعت انتقال و مصرف منابع کمتر باشد.

بررسی به‌روزرسانی‌ها

برای مشاهده تغییرات و به‌روزرسانی‌های نسخه Slackware، فایل ChangeLog.txt در آینه‌ها قابل بررسی است:

# wget -O – \
ftp://slackware.osuosl.org/pub/slackware/slackware64-current/ChangeLog.txt | less

لیست پستی به‌روزرسانی‌های امنیتی

برای دریافت اعلان‌های امنیتی می‌توانید در لیست پستی Slackware Security عضو شوید. کافی است ایمیلی به majordomo@slackware.com ارسال کنید و متن پیام شامل عبارت subscribe slackware-security باشد.

ارتقاء نسخه‌های Slackware

ارتقاء از یک نسخه Slackware به نسخه دیگر پیچیده‌تر از نصب چند بسته است. قبل از ارتقاء باید:

  • تصمیم بگیرید که آیا ارتقاء لازم است یا خیر.
  • فایل CHANGES_AND_HINTS.TXT را مطالعه کنید.
  • فایل UPGRADE.TXT را مطالعه و از داده‌ها و پیکربندی‌های خود نسخه پشتیبان تهیه کنید.

هسته لینوکس

هسته، مرکز سیستم عامل است و به عنوان پل بین سخت‌افزار و برنامه‌ها عمل می‌کند. وظایف هسته شامل مدیریت هارد دیسک، کارت شبکه و سایر دستگاه‌های سخت‌افزاری است. هسته مدرن لینوکس بسیار پیچیده است و بسیاری از بخش‌های آن به صورت ماژول ساخته می‌شوند.

کار با ماژول‌ها

ماژول‌ها قطعاتی از هسته هستند که می‌توانند به صورت پویا بارگذاری یا حذف شوند. اکثر ماژول‌ها هنگام بوت سیستم توسط udevd به صورت خودکار بارگذاری می‌شوند. ابزارهای مهم مدیریت ماژول عبارتند از:

  • lsmod: فهرست ماژول‌های بارگذاری شده
  • insmod و modprobe: بارگذاری ماژول‌ها (modprobe ترجیح داده می‌شود)
  • rmmod و modprobe -r: حذف ماژول‌ها
# lsmod
# modprobe module_name
# modprobe -r module_name

ابزار modprobe به دلیل مدیریت وابستگی‌ها و ساده‌تر بودن نسبت به insmod و rmmod توصیه می‌شود.


✍️ نویسنده: حسین سیلانی

🔗 درباره من: seilany.ir

📢 نویسندگی و مشارکت در وبلاگ: t.me/seilany