چرا از Slackware استفاده کنیم؟
تفاوت ها در مقایسه با سایر توزیع های لینوکس
فهرست کردن فایل ها و محتویات دایرکتوری
اسلکویر
اسلکویر یک توزیع لینوکس است که توسط پاتریک وولکردینگ در سال ۱۹۹۳ ایجاد شد. اسلکویر که در ابتدا بر اساس سیستم لینوکس سافتلندینگ (SLS) ساخته شده بود، اساس بسیاری از توزیعهای لینوکس دیگر، به ویژه نسخههای اولیه توزیعهای لینوکس SUSE بوده است و قدیمیترین توزیعی است که هنوز هم پشتیبانی میشود.
اسلکویر به دنبال پایداری و سادگی طراحی و تبدیل شدن به «لینوکسوارترین» توزیع لینوکس است. این توزیع تا حد امکان تغییرات کمی در بستههای نرمافزاری از آپاستریم ایجاد میکند و سعی نمیکند موارد استفاده را پیشبینی کند یا تصمیمات کاربر را محدود کند. برخلاف اکثر توزیعهای مدرن لینوکس، اسلکویر هیچ رویه نصب گرافیکی و هیچ حل خودکار وابستگی بستههای نرمافزاری ارائه نمیدهد. از فایلهای ساده متنی و تنها یک مجموعه کوچک از اسکریپتهای پوسته برای پیکربندی و مدیریت استفاده میکند. بدون تغییر بیشتر، آن را به یک محیط رابط خط فرمان بوت میکند. به دلیل بسیاری از ویژگیهای محافظهکارانه و سادهگرایانه، اسلکویر اغلب برای کاربران پیشرفته و علاقهمند به فناوری لینوکس مناسبتر در نظر گرفته میشود.
اسلکویر برای معماریهای IA-32 و x86_64 در دسترس است، با یک پورت به معماری ARM. در حالی که اسلکویر عمدتا نرمافزار آزاد و متنباز است، اما امکان ردیابی اشکال رسمی یا مخزن کد عمومی ندارد و نسخهها توسط وولکردینگ به صورت دورهای اعلام میشوند. هیچ رویه عضویت رسمی برای توسعهدهندگان وجود ندارد و وولکردینگ اصلیترین مشارکتکننده در نسخهها است.
نام «اسلکویر» از این واقعیت ناشی میشود که این توزیع به عنوان یک پروژه جانبی خصوصی بدون تعهد در نظر گرفته شده بود. برای جلوگیری از جدی گرفته شدن آن در ابتدا، وولکردینگ به آن نام طنزآمیزی داد که حتی پس از تبدیل شدن اسلکویر به یک پروژه جدی باقی ماند.
اسلکویر به «تعقیب اسلک»، یک اصل کلیسای سابجینیوس، یک دین پارودی، اشاره دارد. برخی جنبههای گرافیک اسلکویر این موضوع را منعکس میکنند – پایپی که تاکس میکشد، تحت تأثیر تصویر سر J. R. “باب” دابس است.
یک اشاره طنزآمیز به کلیسای سابجینیوس را میتوان در بسیاری از نسخههای فایلهای متنی install.end یافت که پایان یک سری نرمافزار را به برنامه راهاندازی نشان میدهد. در نسخههای اخیر، از جمله اسلکویر نسخه ۱۴.۱، متن رمزگذاری شده ROT13 است.
Slackware Linux ممکن است یکی از قدیمیترین توزیعهای لینوکس بازمانده باشد، اما هنوز بهطور مرتب بهروزرسانی میشود و آخرین نسخههای بسیاری از محبوبترین برنامههای نرمافزار رایگان را شامل میشود. در حالی که هدف Slackware حفظ ریشهها و ارزشهای سنتی یونیکس خود است، هیچ راه فراری از “پیشرفت” وجود ندارد. سیستم های فرعی تغییر می کنند، مدیران پنجره می آیند و می روند و راه های جدیدی برای مدیریت پیچیدگی های یک سیستم عامل مدرن ابداع می شود. در حالی که ما در مقابل تغییر به خاطر تغییر مقاومت می کنیم، اجتناب ناپذیر است که با تکامل همه چیز، اسناد کهنه می شوند – کتاب ها نیز از این قاعده مستثنی نیستند.
تاریخچه
اسلکویر در ابتدا از سیستم لینوکس سافتلندینگ (SLS) مشتق شد، محبوبترین توزیعهای اصلی لینوکس و اولین توزیعی که مجموعه نرمافزاری جامعی را ارائه میداد که شامل بیش از هسته و ابزارهای اساسی، از جمله رابط گرافیکی X11، شبکهسازی TCP/IP، UUCP و GNU Emacs میشد.
پاتریک وولکردینگ پس از نیاز به یک مفسر LISP برای یک پروژه مدرسه در دانشگاه ایالتی مورهد (MSU) با SLS شروع کرد. او دریافت که CLISP برای لینوکس در دسترس است و SLS را برای اجرای آن دانلود کرد. چند هفته بعد، از وولکردینگ توسط استاد هوش مصنوعی خود در MSU خواسته شد تا به او نحوه نصب لینوکس در خانه و روی برخی از کامپیوترهای مدرسه را نشان دهد. وولکردینگ یادداشتهایی در مورد رفع مشکلاتی که پس از نصب SLS پیدا کرده بود نوشته بود و او و استادش این تغییرات را در یک نصب جدید اعمال کردند. با این حال، این کار تقریباً به اندازه نصب SLS طول کشید، بنابراین استاد پرسید که آیا دیسکهای نصب میتوانند تنظیم شوند تا اصلاحات در حین نصب اعمال شوند. این آغاز اسلکویر بود. وولکردینگ به بهبود SLS ادامه داد: رفع اشکال، ارتقای نرمافزار، نصب خودکار کتابخانههای مشترک و تصویر هسته، رفع مجوزهای فایل و موارد دیگر. در مدت کوتاهی، وولکردینگ حدود نیمی از بستهها را فراتر از آنچه SLS در دسترس داشت ارتقا داد.
وولکردینگ قصد نداشت نسخه اصلاح شده SLS خود را برای عموم ارائه دهد. دوستان او در MSU او را تشویق کردند تا اصلاحات SLS خود را روی یک سرور FTP قرار دهد، اما وولکردینگ تصور میکرد که «SLS به زودی نسخه جدیدی منتشر خواهد کرد که شامل این موارد میشود»، بنابراین چند هفته صبر کرد. در طول این مدت، بسیاری از کاربران SLS در اینترنت از SLS درخواست انتشار نسخه جدید کردند، بنابراین در نهایت وولکردینگ پستی با عنوان “آیا کسی سیستم SLS-like 0.99pl11A میخواهد؟” منتشر کرد که با پاسخهای مثبت زیادی مواجه شد. پس از گفتگو با مدیر سیستم محلی در MSU، وولکردینگ اجازه آپلود اسلکویر به سرور FTP دانشگاه را دریافت کرد. این اولین نسخه اسلکویر، نسخه ۱.۰۰، در ۱۷ ژوئیه ۱۹۹۳ ساعت ۰:۱۶:۳۶ (UTC) توزیع شد و به عنوان ۲۴ تصویر دیسک فلاپی ۳.۵ اینچی عرضه شد. پس از اعلام این خبر، وولکردینگ شاهد سیل اتصالات FTP بود که دائماً سرور را خراب میکرد. مدت کوتاهی بعد، Walnut Creek CDROM فضای آرشیو اضافی را در سرورهای FTP خود ارائه کرد.
توسعه
اندازه Slackware با افزودن نرمافزارهای همراه، به سرعت افزایش یافت و تا نسخه 2.1 که در اکتبر 1994 منتشر شد، بیش از سه برابر شده و شامل هفتاد و سه تصویر دیسک فلاپی 1.44 مگابایتی شد.
در سال 1999، Slackware از نسخه 4 به نسخه 7 پرش کرد. شمارههای نسخه Slackware پسمانده نسبت به توزیعهای دیگر بود و این باعث شد که بسیاری از کاربران فکر کنند که این توزیع منسوخ شده است، حتی اگر نسخههای نرمافزارهای همراه مشابه باشند. ولکردینگ تصمیم گرفت نسخه را به عنوان یک تلاش بازاریابی افزایش دهد تا نشان دهد که Slackware بههمان اندازه توزیعهای لینوکس دیگر بهروز است، که بسیاری از آنها در آن زمان شماره نسخه 6 داشتند. او عدد 7 را انتخاب کرد و تخمین زد که بیشتر توزیعهای دیگر به زودی به این شماره نسخه خواهند رسید.
در آوریل 2004، پاتریک ولکردینگ بستههای X.Org Server را به دایرکتوری testing/ نسخه فعلی Slackware اضافه کرد تا به عنوان جایگزینی برای بستههای XFree86 که در حال حاضر استفاده میشدند، عمل کند. یک ماه بعد، او از XFree86 به X.Org Server تغییر داد و اظهار کرد که نظرات بیش از 4 به 1 به نفع استفاده از نسخه X.org به عنوان نسخه پیشفرض X بودند. او اعلام کرد که تصمیم اصولاً فنی بود، زیرا XFree86 در حال ثابت کردن مشکلات سازگاری بود. Slackware 10.0 اولین نسخه با X.Org Server بود.
در مارس 2005، پاتریک ولکردینگ حذف محیط دسکتاپ GNOME را در ChangeLog توسعه اعلام کرد. او اظهار کرد که این موضوع بیش از چهار سال در نظر گرفته شده بود و در حال حاضر پروژههایی وجود داشت که نسخه کاملتری از GNOME را برای Slackware ارائه میدادند
در ماه مه 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 اولین نسخه پایدار خود را دید.
بین انتشار نوامبر 2013 نسخه 14.1 و ژوئن 2016، Slackware یک بازه 31 ماهه بین انتشارها داشت، که بیشترین مدت در تاریخ انتشار بود. در این مدت، شاخه توسعه بدون بهروزرسانی به مدت 47 روز بود. با این حال، در 21 آوریل 2015، پاتریک ولکردینگ در ChangeLog به عذرخواهی از عدم بهروزرسانیها اعلام کرد و اظهار کرد که تیم توسعه از این زمان برای انجام “کارهای خوبی” استفاده کردهاند. در آن ورودی ChangeLog بیش از 700 تغییر برنامه ذکر شده بود، از جمله بروزرسانیهای کتابخانههای مهم. در ژانویه 2016، ولکردینگ افزودن ناخواسته PulseAudio را اعلام کرد،
به فارسی، “فلسفه طراحی” در Slackware به سادگی، پاکی نرمافزار و یک طراحی اصلی که بر عدم تغییر در منابع اصلی تأکید دارد، متمایل است¹. انتخابهای طراحی در Slackware میتواند به عنوان یک میراث از سادگی سیستمهای Unix سنتی و نمونههای اصول KISS در نظر گرفته شود². در این زمینه، “ساده” به سادگی در طراحی سیستم اشاره دارد، نه در استفاده از سیستم. بنابراین، سطح استفاده آسان ممکن است بین کاربران متفاوت باشد: کاربرانی که دانش واسط خط فرمان و ابزارهای کلاسیک Unix را ندارند، با استفاده از Slackware با منحنی یادگیری تندی مواجه میشوند، در حالی که کاربران با پیشزمینه Unix ممکن است از محیط سیستم کمتر انتزاعی بهرهبرند³. با توجه به فلسفه طراحی Slackware و روح پاکی آن، بیشتر نرمافزارها در Slackware از مکانیسمهای پیکربندی اصلی ارائه شده توسط نویسندگان نرمافزار استفاده میکنند؛ با این حال، برای برخی از وظایف مدیریتی، ابزارهای پیکربندی مخصوص توزیع ارائه میشوند⁴.
به فارسی، “فلسفه طراحی” در Slackware به سادگی، پاکی نرمافزار و یک طراحی اصلی که بر عدم تغییر در منابع اصلی تأکید دارد، متمایل است¹. انتخابهای طراحی در Slackware میتواند به عنوان یک میراث از سادگی سیستمهای Unix سنتی و نمونههای اصول KISS در نظر گرفته شود². در این زمینه، “ساده” به سادگی در طراحی سیستم اشاره دارد، نه در استفاده از سیستم. بنابراین، سطح استفاده آسان ممکن است بین کاربران متفاوت باشد: کاربرانی که دانش واسط خط فرمان و ابزارهای کلاسیک Unix را ندارند، با استفاده از Slackware با منحنی یادگیری تندی مواجه میشوند، در حالی که کاربران با پیشزمینه Unix ممکن است از محیط سیستم کمتر انتزاعی بهرهبرند³. با توجه به فلسفه طراحی Slackware و روح پاکی آن، بیشتر نرمافزارها در Slackware از مکانیسمهای پیکربندی اصلی ارائه شده توسط نویسندگان نرمافزار استفاده میکنند؛ با این حال، برای برخی از وظایف مدیریتی، ابزارهای پیکربندی مخصوص توزیع ارائه میشوند⁴.
در Slackware، سیستم مدیریت بستهها به عنوان pkgtools شناخته میشود و شامل ابزارهایی برای مدیریت بستهها است. این ابزارها شامل موارد زیر هستند:
– `pkgtool`: برای مدیریت بستهها
– `installpkg`: برای نصب بستهها
– `upgradepkg`: برای بهروزرسانی بستهها
– `removepkg`: برای حذف بستهها
– `explodepkg`: برای بازگشایی بستهها
– `makepkg`: برای ایجاد بستهها
برای بهروزرسانی Slackware از طریق شبکه یا اینترنت، ابزار slackpkg استفاده میشود. این ابزار ابتدا توسط Piter Punk به عنوان یک روش غیررسمی برای بهروز نگهداشتن Slackware توسعه یافت و در نسخههای Slackware 12.2 بهصورت رسمی در درخت اصلی قرار گرفت⁵. slackpkg تنها تأیید میکند که شمارههای نسخه متفاوت هستند، بنابراین اگر نیاز باشد، میتوان بسته را به نسخه قدیمیتر .
بستههای Slackware به صورت تاربالهای فشردهشده با روشهای مختلف ارائه میشوند. از نسخه 13.0 به بعد، بیشتر بستهها با استفاده از xz (بر اساس الگوریتم فشردهسازی LZMA) فشردهسازی میشوند و از پسوند .txz استفاده میکنند¹. قبل از نسخه 13.0، بستهها با استفاده از gzip (بر اساس الگوریتم فشردهسازی DEFLATE) و پسوند .tgz فشردهسازی میشدند². همچنین، پشتیبانی از فشردهسازی bzip2 و lzip نیز اضافه شده است و از پسوندهای .tbz و .tlz بهره میبرند، اگرچه اینها به طور معمول استفاده نمیشوند.
بستهها شامل تمام فایلهای برنامه هستند، همچنین فایلهای متادیتا اضافی که توسط مدیر بسته استفاده میشوند. تاربال بسته حاوی ساختار کامل دایرکتوری فایلها است و در زمان نصب باید در دایرکتوری ریشه سیستم استخراج شود. فایلهای متادیتا اضافی، که در دایرکتوری خاص install/ درون تاربال قرار دارند، معمولاً شامل یک فایل slack-desc هستند. این فایل یک متن به فرمت خاص است که توسط مدیر بسته برای ارائه توضیحات نرمافزار بستهشده به کاربران خوانده میشود³. همچنین، یک فایل doinst.sh نیز وجود دارد که یک اسکریپت shell پس از بازگشایی است. این اسکریپت اجازه ایجاد لینکهای نمادین، حفظ مجوزها در فایلهای راهاندازی، کنترل مناسب فایلهای پیکربندی جدید و سایر جنبههای نصب را میدهد که نمیتواند از طریق ساختار دایرکتوری بسته پیادهسازی شود⁴. در طول توسعه نسخه 15.0، Volkerding پشتیبانی از یک اسکریپت حذف douninst.sh را معرفی کرد که میتواند هنگام حذف یا بهروزرسانی یک بسته اجرا شود⁵. این امکان به نگهدارندگان بسته اجازه میدهد تا دستوراتی را هنگام حذف یک بسته اجرا کنند.
مدیر بستهها یک پایگاه داده محلی را در کامپیوتر نگه میدارد که در چندین پوشه ذخیره میشود. در سیستمهای 14.2 و قدیمیتر، پایگاه داده اصلی بستههای نصب شده در /var/log/ نگهداری میشد، اما در طول توسعه نسخه 15.0، Volkerding دو دایرکتوری را به یک مکان اختصاصی تحت /var/lib/pkgtools/ منتقل کرد تا جلوگیری از حذف تصادفی در هنگام پاککردن لاگهای سیستم⁵. هر نصب Slackware شامل دایرکتوریهای packages/ و scripts/ در مکان پایگاه داده اصلی است. دایرکتوری اولیه جایی است که هر بسته نصب شده یک فایل لاگ نصب متناظر (بر اساس نام بسته، نسخه، معماری و ساخت) دارد که حاوی اندازه بسته (فشردهشده و فشردهنشده)، توضیحات نرمافزار و مسیر کامل تمام فایلهای نصبشده است. اگر بسته شامل اسکریپت اختیاری پس از نصب doinst.sh باشد، محتوای آن اسکریپت به یک فایل در دایرکتوری scripts/ با نام فایل متناظر در دایرکتوری packages/ اضافه میشود، که به مدیر اجازه میدهد اسکریپت پس از نصب را در زمانی آینده مشاهده کند. هنگامی که یک بسته حذف یا بهروزرسانی میشود، لاگهای نصب قدیمی و اسکریپتهای موجود در packages/ و scripts/ به removed_packages/ و removed_scripts/ منتقل میشوند، که امکان مرور بستههای قبلی و مشاهده زمان حذف آنها را فراهم میکند. این دایرکتوریها در سیستمهای 14.2 و قدیمیتر در /var/log/ یافت میشوند، اما در طول توسعه نسخه 15.0 به /var/log/pkgtools/ منتقل شدند. در سیستمهایی که اسکریپت حذف douninst.sh را پشتیبانی میکنند، این اسکریپتها در دایرکتوری /var/lib/pkgtools/douninst.sh/ در حالی که بسته نصب شده است، ذخیره میشوند. پس از حذف، اسکریپت douninst.sh به /var/log/pkgtools/removed_uninstall_scripts/ منتقل میشود.
در Slackware، هیچ مخزن رسمی وجود ندارد. تنها بستههای رسمی Slackware در رسانههای نصب در دسترس هستند. با این حال، برای Slackware تعداد زیادی مخازن شخص ثالث وجود دارد؛ برخی از آنها مخازن مستقل هستند و برخی دیگر برای توزیعهای مبتنی بر Slackware با سازگاری بسته با Slackware هستند. بسیاری از این مخازن میتوانند با استفاده از pkgs.org، یک موتور جستجوی بستههای لینوکس، به صورت همزمان جستجو شوند. با این حال، ترکیب و تطابق وابستگیها از چندین مخزن میتواند منجر به دو یا چند بسته شود که نیاز به نسخههای مختلف یک وابستگی دارند، که این یک نوع از مشکلات وابستگی است. Slackware خود به تنهایی هیچ راهحل وابستگی برای این بستهها ارائه نمیدهد، با این حال برخی از پروژهها لیستی از وابستگیها را که در Slackware وجود ندارند، با فایلهای بسته ارائه میدهند، معمولاً با پسوند .dep.
معماریهای سختافزاری
در گذشته، 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 هنوز در نسخه 10.0 برای نسخه پایدار و 11.0 برای نسخه آزمایشی/توسعهای قرار دارد و از سال 2009 بهروزرسانی نشده است. همچنین، در 7 مه 2016، توسعهدهنده Slackware ARM اعلام کرد که نسخه 14.1 در 1 سپتامبر 2016 پایان عمر خواهد داشت و توسعه نسخه -current با انتشار نسخه 14.2 متوقف خواهد شد، اما پشتیبانی از نسخه 14.2 برای آینده قابل پیشبینی ادامه خواهد داشت. اعلام پایان عمر برای نسخه 14.1 در 25 ژوئن 2016 و اعلام پایان عمر برای نسخه 14.2 در 21 دسامبر 2022 به لیست تغییرات اضافه شد.
در جولای 2016، توسعهدهنده Slackware ARM اعلام کرد که ابزارهای توسعه و ساخت برای کاهش تلاش دستی در نگهداری پورت ARM بهبود یافتهاند و در ادامه اعلام کرد که یک پورت شناور سختافزاری 32 بیتی در حال توسعه است. این پورت در آگوست 2016 به صورت “جاری” منتشر شد.
در 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 دارای پورت برای AArch64 و پورت اضافی برای معماری riscv64 است.
در مارس 2022، توسعه رسمی پورت 32 بیتی ARM از Slackware متوقف شد و توسعه آینده صرفاً بر روی پورت AArch64/ARM64 متمرکز شد. دلیل این امر این بود که سختافزار 32 بیتی نمیتوانست با توسعه Slackware همگام شود و مانع توسعه میشد و محدودیتهای سختافزار به مانعی برای پذیرش آخرین فناوریها تبدیل شد. علاوه بر این، از آنجایی که اکثر توزیعهای اصلی دیگر پشتیبانی از ARM 32 بیتی را متوقف کردند، برخی از برنامهها قابل ساخت نبودند و دیگر قابل پشتیبانی نبودند. با این حال، پورت غیر رسمی Slackware به نام BonSlack وجود دارد که پورتهای نرمافزاری (ARMv5) و سختافزاری (ARMv7) را برای ARM 32 بیتی ارائه میدهد، با توسعه و بهروزرسانیها (از نسخه 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 بیتی) ارائه میدهد.
مقدمه ای بر Slackware
چرا از Slackware استفاده کنیم؟
Slackware دارای یک سنت عالی عالی است. Slackware که در سال 1992 آغاز شد و اولین بار در سال 1993 منتشر شد، قدیمی ترین توزیع تجاری لینوکس است. تمرکز Slackware بر ایجاد یک توزیع ساده و تمیز لینوکس که تا حد امکان شبیه یونیکس باشد، آن را به یک انتخاب طبیعی برای افرادی تبدیل میکند که واقعاً میخواهند درباره لینوکس و سایر سیستمعاملهای مشابه یونیکس بیاموزند. در مصاحبه ای در سال 2012، پاتریک فولکردینگ، بنیانگذار Slackware و دیکتاتور خیرخواه مادام العمر، آن را به این شکل بیان کرد.
“من سعی می کنم اجازه ندهم همه چیز صرفاً به خاطر متفاوت کردن آنها به هم بخورد. افرادی که پس از مدتی به Slackware برمی گردند از اینکه نیازی به یادگیری مجدد نحوه انجام همه کارها ندارند به طرز خوشایندی متعجب می شوند. این به ما کمک کرده است. یک دنبال کننده کاملا وفادار، که من از آن سپاسگزارم.”
سادگی Slackware آن را برای آن دسته از کاربرانی که می خواهند سیستم های سفارشی خود را ایجاد کنند ایده آل می کند. البته Slackware در نوع خود به عنوان دسکتاپ، ایستگاه کاری یا سرور نیز عالی است.
تفاوت ها در مقایسه با سایر توزیع های لینوکس
تفاوت های زیادی بین Slackware و سایر توزیع های اصلی مانند Red Hat، Debian و Ubuntu وجود دارد. شاید بزرگترین تفاوت، فقدان «دست گرفتن» است که Slackware برای مدیر انجام میدهد. بسیاری از این توزیعهای دیگر با ابزارهای پیکربندی گرافیکی سفارشی برای همه نوع خدمات عرضه میشوند. در بسیاری از موارد، این ابزارهای پیکربندی روش ترجیحی برای راهاندازی برنامهها در این سیستمها هستند و هر تغییری را که در فایلهای پیکربندی از طریق روشهای دیگر ایجاد میکنید، بازنویسی میکنند. این ابزارها اغلب راه اندازی سرویس های اولیه را برای یک تازه کار بدون درک عمیق از سیستم خود آسان می کنند (یا حداقل ممکن). با این حال، آنها همچنین انجام هر کاری غیرعادی را دشوار می کنند. در مقابل، Slackware از شما، مدیر سیستم، انتظار دارد که این وظایف را به تنهایی انجام دهید. Slackware هیچ ابزار راهاندازی عمومی را فراتر از ابزارهایی که با کد منبع منتشر شده توسط توسعهدهندگان بالادستی ارائه میشود، ارائه نمیکند. این بدان معناست که اغلب یک منحنی یادگیری تا حدی تندتر در ارتباط با Slackware وجود دارد، حتی برای آن دسته از کاربرانی که با سایر توزیعهای لینوکس آشنا هستند، اما انجام هر کاری را که میخواهید با سیستم عامل خود بسیار آسانتر میکند.
همچنین، ممکن است از کاربران توزیعهای دیگر بشنوید که میگویند Slackware هیچ سیستم مدیریت بستهای ندارد. این کاملا و آشکارا نادرست است. Slackware همیشه مدیریت بسته را داشته چیزی که ندارد تفکیک وابستگی خودکار است – ابزارهای بسته Slackware مدیریت وابستگی را برای سادگی، سهولت استفاده و قابلیت اطمینان تجارت می کنند.
صدور مجوز
هر قطعه از Slackware (این در مورد همه توزیعهای لینوکس صادق است) توسط افراد مختلف (یا تیمهایی از افراد) توسعه مییابد، و هر گروه ایدههای خاص خود را در مورد معنای “رایگان” بودن دارد. به همین دلیل، به معنای واقعی کلمه ده ها و ده ها مجوز مختلف وجود دارد که مجوزهای مختلفی را در مورد استفاده یا توزیع آنها به شما می دهند. خوشبختانه برخورد با مجوزهای نرم افزار آزاد آنقدرها که ممکن است در ابتدا به نظر می رسد دشوار نیست. بیشتر موارد با مجوز عمومی عمومی Gnu یا مجوز BSD مجوز دارند. گاهی اوقات با یک نرم افزار با مجوز متفاوت مواجه می شوید، اما تقریباً در همه موارد به طور قابل توجهی شبیه به مجوز GPL یا BSD هستند.
احتمالاً محبوب ترین مجوز مورد استفاده در جامعه نرم افزار آزاد، مجوز عمومی عمومی گنو است .که فعالانه برای ایجاد و توزیع نرم افزاری کار می کند که آزادی هایی را که به اعتقاد آنها حقوق اساسی است تضمین می کند. در واقع، این همان گروهی است که اصطلاح «نرم افزار آزاد» را ابداع کردند. GPL هیچ محدودیتی برای استفاده از نرم افزار اعمال نمی کند. در واقع، برای استفاده از نرم افزار حتی مجبور نیستید شرایط مجوز را بپذیرید، اما مجاز به توزیع مجدد نرم افزار یا هرگونه تغییر در آن بدون رعایت شرایط توافق نامه مجوز نیستید. تعداد زیادی از پروژه های نرم افزاری ارسال شده با Slackware، از خود هسته لینوکس گرفته تا پروژه Samba، تحت شرایط GPL منتشر می شوند.
مجوز بسیار رایج دیگر مجوز BSD است که مسلماً «رایگانتر» از GPL است زیرا عملاً هیچ محدودیتی برای آثار مشتق ایجاد نمیکند. مجوز BSD به سادگی مستلزم آن است که حق نسخه برداری به همراه یک سلب مسئولیت ساده دست نخورده باقی بماند. بسیاری از برنامه های کاربردی خاص Slackware دارای مجوز به سبک BSD هستند و این مجوز برای بسیاری از پروژه ها و ابزارهای کوچکتر است.
نصب توزیع
نصب Slackware کمی ساده تر از سایر توزیع های لینوکس است و بسیار یادآور نصب یکی از انواع سیستم عامل های BSD است. اگر با آن ها آشنا هستید، باید احساس کنید که در خانه هستید. اگر هرگز Slackware را نصب نکردهاید یا فقط از توزیعهایی استفاده کردهاید که از نصبکنندههای گرافیکی استفاده میکنند، ممکن است در ابتدا کمی احساس ناراحتی کنید. وحشت نکنید! نصب آن به محض درک آن بسیار آسان است و تقریباً روی هر پلتفرم x86 یا x86_64 کار می کند.
آخرین نسخههای لینوکس Slackware بر روی رسانههای DVD یا CD توزیع میشوند، اما Slackware را میتوان به روشهای مختلف دیگری نصب کرد. ما فقط بر روی رایج ترین روش – بوت کردن از DVD – در این کتاب تمرکز می کنیم. اگر درایو سیدی یا دیویدی ندارید، ممکن است بخواهید نگاهی به فایلهای مختلف README در دایرکتوری usb-and-pxe-installers در آینه Slackware مورد علاقه خود بیندازید. این فهرست شامل فایلها و دستورالعملهای لازم برای راهاندازی نصبکننده Slackware از درایو فلش USB یا کارت شبکهای است که از PXE پشتیبانی میکند. فایلهای موجود بهترین منبع اطلاعاتی برای چنین روشهای بوت هستند.
راه اندازی نصب کننده
راهاندازی نصبکننده صرفاً فرآیند قرار دادن دیسک نصب Slackware در درایو CD یا DVD و راهاندازی مجدد است. ممکن است مجبور شوید بایوس رایانه خود را وارد کرده و ترتیب راهاندازی را تغییر دهید تا درایو نوری در اولویت بوت بالاتری نسبت به هارد دیسکهای خود قرار گیرد. برخی از رایانهها به شما اجازه میدهند تا با فشار دادن یک کلید عملکردی خاص در هنگام راهاندازی سیستم، ترتیب راهاندازی را تغییر دهید. از آنجایی که هر رایانه متفاوت است، نمیتوانیم دستورالعملهایی در مورد نحوه انجام این کار ارائه دهیم، اما روش تقریباً در همه ماشینها ساده است.
هنگامی که رایانه شما از سی دی بوت می شود، به صفحه ای هدایت می شوید که به شما امکان می دهد هر پارامتر هسته خاصی را وارد کنید. این در درجه اول به شما امکان می دهد از نصب کننده به عنوان نوعی دیسک نجات استفاده کنید. برخی از سیستم ها ممکن است برای بوت شدن به پارامترهای هسته خاصی نیاز داشته باشند، اما این موارد استثناهای بسیار نادری هستند. اکثر کاربران می توانند به سادگی اینتر را فشار دهند تا اجازه بوت شدن هسته را بدهند.
پس از فشار دادن ENTER، متن زیادی را مشاهده خواهید کرد که در سراسر صفحه نمایش شما در حال پرواز است. نگران نباشید، همه اینها کاملا طبیعی است. متنی که مشاهده می کنید توسط هسته در هنگام بوت آپ تولید می شود، زیرا سخت افزار شما را کشف می کند و برای بارگذاری سیستم عامل (در این مورد، نصب کننده) آماده می شود. در صورت تمایل می توانید بعداً این پیام ها را با دستور dmesg(1) بخوانید. اغلب این پیام ها برای عیب یابی مشکلات سخت افزاری شما بسیار مهم هستند. هنگامی که هسته کشف سخت افزار خود را کامل کرد، پیام ها باید متوقف شوند و گزینه ای برای بارگیری پشتیبانی از صفحه کلیدهای غیر ما به شما داده می شود.
ورود به سیستم Slackware: root
برخلاف سایر توزیعهای لینوکس که شما را مستقیماً در یک برنامه نصب اختصاصی راهاندازی میکنند، نصبکننده Slackware شما را در یک توزیع محدود لینوکس قرار میدهد که در رم سیستم شما بارگذاری شده است. سپس از این توزیع محدود برای اجرای دستی همه برنامه های نصب استفاده می شود، یا می توان در مواقع اضطراری برای تعمیر سیستم خرابی که بوت نمی شود استفاده کرد. اکنون که به عنوان root وارد شده اید (هیچ رمز عبوری در نصب کننده وجود ندارد) زمان شروع به تنظیم دیسک های خود است. در این مرحله، در صورت تمایل میتوانید پشتیبانی نرمافزار RAID یا LVM یا حتی یک پارتیشن روت رمزگذاریشده را راهاندازی کنید، اما این موضوعات خارج از محدوده این کتاب هستند. اگر میخواهید سیستم خود را با این ابزارهای پیشرفته راهاندازی کنید، توصیه میکنم به فایلهای عالی README_RAID.TXT، README_LVM.TXT، و README_CRYPT.TXT روی CD خود مراجعه کنید. اکثر کاربران نیازی به انجام این کار نخواهند داشت و باید مستقیماً به پارتیشن بندی ادامه دهند.
پارتیشن بندی
بر خلاف بسیاری از توزیعهای لینوکس، Slackware از ابزار پارتیشنبندی دیسک گرافیکی اختصاصی در نصبکننده خود استفاده نمیکند. در عوض، Slackware از ابزارهای سنتی پارتیشن بندی لینوکس استفاده می کند، همان ابزارهایی که پس از نصب Slackware در دسترس خواهید بود. به طور سنتی، پارتیشن بندی با fdisk(8) یا cfdisk(8) انجام می شود که هر دو ابزار کنسول هستند. cfdisk توسط بسیاری از افراد ترجیح داده می شود زیرا مبتنی بر منوی نفرین است، اما هر دو به خوبی کار می کنند. علاوه بر این، Slackware شامل sfdisk (8) و gdisk (8) است. اینها ابزارهای پارتیشن بندی خط فرمان قدرتمندتری هستند. gdisk برای تغییر جداول پارتیشن GUID موجود در برخی از هارد دیسک های بزرگتر امروزی مورد نیاز است. در این کتاب، ما بر روی استفاده از fdisk تمرکز خواهیم کرد، اما ابزارهای دیگر مشابه هستند. می توانید دستورالعمل های اضافی برای استفاده از این ابزارهای دیگر را به صورت آنلاین یا در صفحات مرد آنها بیابید.
برای پارتیشن بندی هارد دیسک، ابتدا باید بدانید که چگونه آن را شناسایی کنید. در لینوکس تمامی سخت افزارها با یک فایل خاص به نام فایل دستگاه شناسایی می شوند. اینها (معمولا) در دایرکتوری dev / قرار دارند. تقریباً همه هارد دیسکها امروزه به عنوان هارد دیسکهای SCSI توسط هسته شناسایی میشوند و به این ترتیب، یک گره دستگاه مانند /dev/sda به آنها اختصاص داده میشود. (روزی روزگاری هر نوع هارد دیسک شناسه منحصر به فرد خود را داشت مانند /dev/hda برای اولین درایو IDE. در طول سال ها، زیرسیستم SCSI هسته به یک سیستم دسترسی عمومی درایو تبدیل شد و برای همه هارد دیسک ها و دیسک ها استفاده شد. درایوهای نوری بدون توجه به اینکه چگونه به رایانه شما متصل هستند، اگر فکر می کنید این موضوع گیج کننده است، تصور کنید که اگر سیستمی با هارد دیسک SCSI، یک CD-ROM SATA و یک حافظه USB داشته باشید، چگونه می شد. شناسههای زیرسیستم منحصر به فرد سیستم فعلی نه تنها تمیزتر است، بلکه عملکرد بهتری نیز دارد.
اگر نمی دانید کدام گره دستگاه به هارد دیسک شما اختصاص داده شده است، fdisk می تواند به شما در پیدا کردن این موضوع کمک کند.
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
در اینجا می بینید که سیستم من یک هارد دیسک در /dev/sda دارد که حجم آن 72.7 گیگابایت است. همچنین می توانید اطلاعات اضافی درباره این هارد دیسک را مشاهده کنید. آرگومان [-l] به fdisk به آن میگوید که دیسکهای سخت و تمام پارتیشنهایی را که در آن درایوها پیدا میکند نمایش دهد، اما هیچ تغییری در دیسکها ایجاد نمیکند. برای اینکه واقعاً درایوهای خود را پارتیشن بندی کنیم، باید به fdisk درایوی که روی آن کار می کند بگوییم.
root@slackware:/# fdisk /dev/sda
The number of cylinders for this disk is set to 8841.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Command (m for help):
اکنون به fdisk گفتهایم که میخواهیم چه دیسکی را پارتیشن بندی کنیم، و پس از چاپ یک پیام هشدار آزاردهنده، ما را به حالت فرمان رها کرد. محدودیت سیلندر 1024 مدتی است که مشکلی ایجاد نکرده است و بوت لودر Slackware در راه اندازی دیسک های بزرگتر از این مشکلی نخواهد داشت. با تایپ [m] و فشار دادن ENTER یک پیام مفید چاپ می شود 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 جداگانه برای ذخیره فایلهای کاربر بسازید (این کار باعث میشود که بعداً ارتقا یا نصب یک سیستم عامل لینوکس متفاوت را با نگهداشتن همه فایلهای کاربران در یک پارتیشن جداگانه آسانتر کنید). بنابراین، بیایید جلو برویم و سه پارتیشن بسازیم. دستور ایجاد یک پارتیشن جدید [n] است (که هنگام خواندن راهنما متوجه آن شدید).
Command: (m for help): 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 (m for help): 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 گیگابایت است. ما می توانیم پارتیشن های موجود خود را با دستور [p] مشاهده کنیم.
Command (m for help): p
Disk /dev/sda: 72.7 GB, 72725037056 bytes
255 heads, 63 sectors/track, 8841 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 974 7823623+ 83 Linux
/dev/sda2 975 1097 987997+ 83 Linux
هر دوی این پارتیشن ها از نوع “83” هستند که سیستم فایل استاندارد لینوکس است. ما باید /dev/sda2 را به نوع “82” تغییر دهیم تا این پارتیشن مبادله شود. ما این کار را با آرگومان [t] به fdisk انجام خواهیم داد.
Command (m for help): t
Partition number (1-4): 2
Hex code (type L to list codes): 82
Command (me for help): p
Disk /dev/sda: 72.7 GB, 72725037056 bytes
255 heads, 63 sectors/track, 8841 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 974 7823623+ 83 Linux
/dev/sda2 975 1097 987997+ 82 Linux swap
پارتیشن swap یک پارتیشن ویژه است که برای حافظه مجازی توسط هسته لینوکس استفاده می شود. اگر به دلایلی حافظه رم تمام شود، هسته محتویات برخی از RAM را برای تعویض به منظور جلوگیری از خرابی حرکت می دهد. اندازه پارتیشن swap شما بستگی به خود شما دارد. افراد زیادی در جنگ های شعله ور زیادی در مورد اندازه پارتیشن های تعویض شرکت کرده اند، اما یک قانون خوب این است که اندازه پارتیشن swap خود را تقریباً دو برابر رم سیستم خود کنید. از آنجایی که دستگاه من فقط 512 مگابایت رم دارد، تصمیم گرفتم پارتیشن swap خود را 1 گیگابایت کنم. ممکن است بخواهید اندازه پارتیشن swap خود را آزمایش کنید و ببینید چه چیزی برای شما بهتر کار می کند، اما به طور کلی هیچ ضرری برای تعویض “بیش از حد” وجود ندارد. اگر قصد دارید از حالت هایبرناسیون (تعلیق در دیسک) استفاده کنید، باید حداقل به اندازه حافظه فیزیکی (RAM) فضای تعویض داشته باشید، بنابراین این را در نظر داشته باشید.
در این مرحله میتوانیم توقف کنیم، این تغییرات را روی دیسک بنویسیم و ادامه دهیم، اما من میروم و پارتیشن سومی را میسازم که در /home نصب میشود.
Command: (me for help): 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
Now it’s time to finish up and write these changes to disk.
Command: (me for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
root@slackware:/#
در این مرحله، ما پارتیشن بندی دیسک های خود را تمام کرده ایم و آماده شروع برنامه راه اندازی هستیم. با این حال، اگر پارتیشن های توسعه یافته ای ایجاد کرده اید، ممکن است بخواهید یک بار راه اندازی مجدد کنید تا مطمئن شوید که آنها به درستی توسط هسته خوانده می شوند.
برنامه راه اندازی
اکنون که پارتیشنهای خود را ایجاد کردهاید، زمان اجرای برنامه راهاندازی برای نصب Slackware است. راهاندازی قالببندی پارتیشنها، نصب بستهها و اجرای اسکریپتهای پیکربندی اولیه را مرحله به مرحله انجام میدهد. برای انجام این کار، کافیست setup را در اعلان پوسته خود تایپ کنید.
اگر قبلاً Slackware را نصب نکردهاید، میتوانید با خواندن منوی Help یک نمای کلی از نصبکننده Slackware دریافت کنید. بیشتر اطلاعات در اینجا در مورد پیمایش در نصب کننده است که باید نسبتاً شهودی باشد، اما اگر قبلاً از یک برنامه مبتنی بر نفرین استفاده نکرده اید، ممکن است این مورد برای شما مفید باشد.
نقشه کلید
قبل از اینکه جلوتر برویم، Slackware به شما این فرصت را میدهد که نقشهبرداری متفاوتی را برای صفحه کلید خود انتخاب کنید. اگر از صفحهکلید استاندارد ایالات متحده استفاده میکنید، میتوانید با خیال راحت از این مرحله بگذرید، اما اگر از صفحهکلید بینالمللی استفاده میکنید، اکنون میخواهید نقشهبرداری صحیح را انتخاب کنید. این تضمین می کند که کلیدهایی که روی صفحه کلید خود فشار می دهید دقیقاً همان کاری را انجام می دهند که از آنها انتظار دارید.
swap
اگر یک پارتیشن swap ایجاد کرده اید، این مرحله به شما این امکان را می دهد که قبل از اجرای هر گونه فعالیت حافظه فشرده مانند نصب بسته ها، آن را فعال کنید. فضای مبادله اساساً حافظه مجازی است. این یک پارتیشن هارد دیسک است (یا یک فایل، اگرچه نصب کننده Slackware از فایل های مبادله پشتیبانی نمی کند) که در آن مناطق حافظه فعال سیستم زمانی کپی می شوند زمانی که رایانه شما رم قابل استفاده ندارد. این به رایانه اجازه میدهد تا برنامهها را با RAM فعال «مبادله» کند و به شما این امکان را میدهد تا از حافظه بیشتری نسبت به رایانهتان استفاده کنید. این مرحله همچنین پارتیشن swap شما را به /etc/fstab اضافه می کند تا برای سیستم عامل شما در دسترس باشد.
هدف
قدم بعدی ما انتخاب پارتیشن ریشه و هر پارتیشن دیگری است که مایلیم Slackware از آن استفاده کند. به شما یک انتخاب از سیستم فایل برای استفاده و اینکه آیا پارتیشن را فرمت کنید یا نه داده می شود. اگر در حال نصب بر روی یک پارتیشن جدید هستید، باید آن را فرمت کنید. اگر پارتیشنی با دادههای روی آن دارید که میخواهید ذخیره کنید، این کار را نکنید. به عنوان مثال، بسیاری از کاربران یک پارتیشن جداگانه /home دارند که برای دادههای کاربر استفاده میشود و ترجیح میدهند آن را در هنگام نصب فرمت نکنند. این به آنها امکان می دهد نسخه های جدیدتر Slackware را بدون نیاز به پشتیبان گیری و بازیابی این داده ها نصب کنند.
منبع
در اینجا به نصب کننده می گویید که بسته های Slackware را کجا پیدا کند. رایج ترین روش استفاده از دی وی دی یا سی دی نصب Slackware است، اما گزینه های مختلف دیگری نیز در دسترس هستند. اگر بستههای خود را روی پارتیشنی که در مرحله قبل تنظیم کردهاید نصب کردهاید، میتوانید از آن پارتیشن یا یک پوشه از پیش نصب شده نصب کنید. (شاید لازم باشد ابتدا آن پارتیشن را با mount(8) سوار کنید. برای جزئیات بیشتر به فصل 11 مراجعه کنید.) علاوه بر این، Slackware گزینه های شبکه ای مختلفی مانند اشتراک های NFS، FTP، HTTP و Samba را ارائه می دهد. اگر نصب شبکه را انتخاب کنید، Slackware ابتدا اطلاعات TCP/IP را از شما می خواهد. ما فقط نصب از روی DVD را مورد بحث قرار می دهیم، اما روش های دیگر مشابه و ساده هستند.
انتخاب کنید
یکی از ویژگی های منحصر به فرد Slackware نحوه تقسیم بسته ها به دیسک است. در ابتدای زمان، دسترسی شبکه به سرورهای FTP تنها از طریق مودمهای 300 باود بسیار کند در دسترس بود، بنابراین Slackware به مجموعههای دیسکی تقسیم شد که بر روی فلاپی دیسکها قرار میگرفت تا کاربران بتوانند تنها بستههایی را که علاقه داشتند دانلود و نصب کنند. تمرین ادامه می یابد و نصب کننده به شما اجازه می دهد که انتخاب کنید کدام مجموعه را نصب کنید. این به شما این امکان را میدهد که به راحتی از بستههایی که ممکن است نخواهید بگذرید، مانند X و KDE در سرورهای بدون هد یا Emacs در همه چیز. لطفا توجه داشته باشید که سری “A” همیشه مورد نیاز است.
نصب
در نهایت به گوشت نصاب می رسیم. در این مرحله، Slackware از شما می پرسد که از چه روشی برای انتخاب بسته ها استفاده کنید. اگر این اولین بار است که Slackware را نصب می کنید، روش “کامل” به شدت توصیه می شود. حتی اگر این اولین بار نیست که میخواهید، احتمالاً میخواهید از آن استفاده کنید.
گزینه های “menu” و “expert” به شما امکان می دهد بسته های جداگانه ای را برای نصب انتخاب کنید و برای کاربران ماهر آشنا با سیستم عامل مفید است. این روش ها به چنین کاربرانی اجازه می دهد تا به سرعت بسته ها را از نصب کننده جدا کنند تا یک سیستم بسیار کم را بسازند. اگر نمیدانید چه کار میکنید (حتی گاهی اوقات میدانید) احتمالاً بخشهای مهم نرمافزار را کنار میگذارید و در نهایت با یک سیستم خراب مواجه میشوید.
روش “Newbie” می تواند برای یک کاربر جدید بسیار مفید باشد، اما زمان زیادی برای نصب نیاز دارد. این روش تمام بستههای مورد نیاز را نصب میکند، سپس هر بسته دیگر را بهصورت جداگانه از شما درخواست میکند. مزیت بزرگ در اینجا این است که مکث می کند و یک نمای کلی از محتویات بسته به شما می دهد. برای یک کاربر جدید، این مقدمه در مورد آنچه که با Slackware ارائه می شود می تواند آموزنده باشد. برای اکثر کاربران دیگر این یک فرآیند طولانی و خسته کننده است.
گزینههای «سفارشی» و «تگپات» فقط باید توسط افرادی استفاده شود که بیشترین مهارت و تخصص را در Slackware دارند. این روش ها به کاربر اجازه می دهد تا بسته ها را از فایل های تگ سفارشی نصب کند. فایل های برچسب فقط به ندرت استفاده می شوند. ما در این کتاب درباره آنها بحث نمی کنیم.
پیکربندی کنید
هنگامی که همه بسته ها نصب شدند، تقریباً تمام شده اید. در این مرحله، Slackware وظایف پیکربندی متنوعی را برای سیستم عامل جدیدتان به شما پیشنهاد می کند. بسیاری از این موارد اختیاری هستند، اما بیشتر کاربران باید چیزی را در اینجا تنظیم کنند. بسته به بستههایی که نصب کردهاید، ممکن است گزینههای پیکربندی متفاوتی نسبت به مواردی که در اینجا نشان داده شده است به شما پیشنهاد شود، اما ما همه موارد واقعاً مهم را گنجاندهایم.
اولین کاری که احتمالاً از شما خواسته می شود این است که یک دیسک بوت را راه اندازی کنید. در گذشته این معمولاً یک فلاپی دیسک 1.44 مگابایتی بود، اما هسته لینوکس امروزی بسیار بزرگتر از آن است که روی یک فلاپی قرار بگیرد، بنابراین Slackware پیشنهاد میکند یک فلش مموری USB قابل بوت ایجاد کند. البته، کامپیوتر شما برای استفاده از بوت USB باید از بوت شدن از طریق USB پشتیبانی کند (اکثر کامپیوترهای مدرن این کار را انجام می دهند). اگر قصد استفاده از LILO یا یک بوت لودر سنتی دیگر را ندارید، باید به فکر ساخت یک بوت USB باشید. لطفاً توجه داشته باشید که با انجام این کار، محتویات هر حافظهای که استفاده میکنید پاک میشود، پس مراقب باشید.
تقریباً همه نیاز به راه اندازی LINO LOader، LILO دارند. LILO مسئول بوت کردن هسته لینوکس و اتصال به سیستم فایل initrd یا root است. بدون آن (یا یک بوت لودر دیگر)، سیستم عامل جدید Slackware شما بوت نمی شود. Slackware چند گزینه در اینجا ارائه می دهد. روش “ساده” تلاش می کند تا به طور خودکار LILO را برای کامپیوتر شما پیکربندی کند و با سیستم های بسیار ساده به خوبی کار می کند. اگر Slackware تنها سیستم عامل روی رایانه شما است، باید LILO را بدون هیچ مشکلی پیکربندی و نصب کند. اگر به روش سادهتر برای کار اعتماد ندارید، یا اگر میخواهید نگاهی عمیق به نحوه پیکربندی LILO بیندازید، روش “متخصص” واقعاً آنقدرها هم پیچیده نیست. این روش شما را از هر مرحله عبور می دهد و راه اندازی دوگانه بوت را برای ویندوز و سایر سیستم عامل های لینوکس پیشنهاد می کند. همچنین به شما اجازه می دهد تا پارامترهای دستوری هسته را اضافه کنید (البته اکثر کاربران نیازی به تعیین هیچ کدام ندارند).
LILO بخش بسیار مهمی از سیستم Slackware شما است، بنابراین یک بخش کامل از فصل بعدی به آن اختصاص داده شده است. اگر در این مرحله در پیکربندی LILO با مشکل مواجه هستید، ممکن است بخواهید به ادامه مطلب بروید و ابتدا فصل 3 را بخوانید، سپس به اینجا بازگردید.
این مرحله ساده به شما امکان می دهد یک ماوس کنسول را برای استفاده در خارج از دسکتاپ گرافیکی پیکربندی و فعال کنید. با فعال کردن ماوس کنسول، می توانید به راحتی از داخل ترمینال Slackware کپی و جایگذاری کنید. اکثر کاربران باید یکی از سه گزینه اول را انتخاب کنند، اما بسیاری از آنها پیشنهاد می شوند، و بله، آن موش های سریال دو دکمه باستانی کار می کنند.
مرحله بعدی در پیکربندی نصب شما، پیکربندی شبکه است. اگر نمی خواهید شبکه خود را در این مرحله پیکربندی کنید، ممکن است آن را رد کنید، اما در غیر این صورت از شما خواسته می شود یک نام میزبان برای رایانه خود ارائه دهید. اگر مطمئن نیستید که در اینجا چه کاری انجام دهید، ممکن است بخواهید کامل بخوانیدفصل 14، شبکهاولین.
در صفحه های زیر ابتدا یک نام میزبان و سپس یک نام دامنه مانند example.org از شما خواسته می شود. اگر از سرویس DNS داخلی استفاده می کنید یا فایل /etc/hosts خود را نگهداری می کنید، می توان از ترکیب نام میزبان و نام دامنه برای پیمایش بین رایانه های موجود در شبکه استفاده کرد. اگر از تنظیم شبکه خود صرف نظر کنید، Slackware نام رایانه شما را به نام آهنگی از Grateful Dead «hossein» میگذارد.
هنگام تنظیم آدرس IP خود سه گزینه دارید. می توانید به آن یک IP ثابت اختصاص دهید، از DHCP استفاده کنید یا یک اتصال حلقه بک پیکربندی کنید. سادهترین گزینه و احتمالاً رایجترین گزینه برای لپتاپها یا رایانههای روی یک شبکه اصلی، اجازه دادن به سرور DHCP است که آدرسهای IP را به صورت پویا اختصاص دهد. مگر اینکه Slackware را برای استفاده به عنوان سرور شبکه نصب کنید، احتمالاً نیازی به تنظیم یک آدرس IP ثابت ندارید. اگر مطمئن نیستید که کدام یک از این گزینه ها را انتخاب کنید، DHCP را انتخاب کنید.
به ندرت سرورهای DHCP از شما می خواهند که قبل از اجازه اتصال، نام میزبان DHCP را مشخص کنید. می توانید این را در صفحه تنظیم نام میزبان DHCP وارد کنید. این تقریباً همیشه همان نام میزبانی است که قبلاً وارد کرده اید.
اگر انتخاب کنید یک آدرس IP ثابت تنظیم کنید، Slackware از شما می خواهد که آن را به همراه نقاب شبکه، آدرس IP دروازه و سرور نامی که باید استفاده کنید وارد کنید.
صفحه نهایی در طول پیکربندی آدرس IP ایستا یک صفحه تأیید است که در آن شما اجازه دارید انتخاب های خود را بپذیرید، آنها را ویرایش کنید یا حتی اگر تصمیم به استفاده از DHCP به جای آن دارید، پیکربندی آدرس IP را مجددا راه اندازی کنید.
پس از تکمیل پیکربندی شبکه، Slackware از شما میخواهد سرویسهای راهاندازی را که میخواهید بهطور خودکار پس از راهاندازی اجرا شوند، پیکربندی کنید. توضیحات مفید هر سرویس هم در سمت راست نام سرویس و هم در پایین صفحه ظاهر می شود. اگر مطمئن نیستید چه چیزی را روشن کنید، می توانید با خیال راحت پیش فرض ها را در جای خود رها کنید. خدماتی که در زمان بوت شروع می شوند را می توان بعداً با pkgtool به راحتی تغییر داد.
هر کامپیوتری باید زمان فعلی را ردیابی کند، و با مناطق زمانی بسیار زیادی در سراسر جهان، باید به Slackware بگویید که از کدام یک استفاده کند. اگر ساعت سخت افزاری رایانه شما روی UTC (زمان هماهنگ جهانی) تنظیم شده است، باید آن را انتخاب کنید. اکثر ساعتهای سختافزاری از کارخانه روی UTC تنظیم نشدهاند (اگرچه میتوانید آن را به تنهایی تنظیم کنید؛ Slackware اهمیتی نمیدهد). سپس به سادگی منطقه زمانی خود را از لیست ارائه شده انتخاب کنید و خارج شوید.
اگر مجموعه دیسک X را نصب کرده باشید، از شما خواسته می شود یک مدیر پنجره پیش فرض یا محیط دسکتاپ را انتخاب کنید. آنچه در اینجا انتخاب میکنید برای همه کاربران رایانه شما اعمال میشود، مگر اینکه آن کاربر تصمیم بگیرد xwmconfig(1) را اجرا کند و یکی دیگر را انتخاب کند. اگر گزینههایی که در زیر میبینید با گزینههایی که Slackware به شما ارائه میکند مطابقت ندارد، نگران نباشید. xwmconfig فقط گزینه هایی را ارائه می دهد که شما نصب کرده اید. بنابراین، برای مثال، اگر انتخاب کنید که از مجموعه دیسک “KDE” رد شوید، KDE ارائه نخواهد شد.
آخرین مرحله پیکربندی، تنظیم رمز عبور root است. کاربر ریشه در Slackware و سایر سیستمعاملهای مشابه یونیکس «ابر کاربر» است. root را به عنوان کاربر Administrator در نظر بگیرید. root همه چیز را می داند، همه چیز را می بیند، و می تواند همه کارها را انجام دهد، بنابراین تنظیم یک رمز عبور قوی ریشه فقط عقل سلیم است.
با تکمیل آخرین مرحله، اکنون می توانید از نصب کننده Slackware خارج شوید و با یک CTRL + ALT + DELETE خوب و قدیمی را راه اندازی مجدد کنید. دیسک نصب Slackware را بردارید و اگر تمام مراحل را به درستی انجام داده باشید، رایانه شما به سیستم لینوکس جدید Slackware شما راه اندازی می شود. اگر مشکلی پیش آمد، احتمالاً مرحله پیکربندی LILO را نادیده گرفته اید یا به نحوی در آنجا خطایی ایجاد کرده اید. خوشبختانه، فصل بعدی باید به شما در حل آن کمک کند.
هنگامی که نصب جدید Slackware خود را مجددا راه اندازی کردید، اولین قدمی که باید بردارید ایجاد یک کاربر است. بهطور پیشفرض، تنها کاربری که پس از نصب وجود دارد، کاربر ریشه است و استفاده از رایانه بهعنوان روت خطرناک است، زیرا هیچ محدودیتی در مورد کاری که کاربر میتواند انجام دهد وجود ندارد.
سریع ترین و ساده ترین راه برای ایجاد یک کاربر معمولی برای خود این است که با رمز عبور root که در پایان مراحل نصب ایجاد کرده اید به عنوان root وارد شوید و سپس دستور adduser را صادر کنید. این به طور تعاملی به شما در ایجاد یک کاربر کمک می کند
راه اندازی
خوب، اکنون که Slackware را بر روی سیستم خود نصب کرده اید، باید دقیقاً یاد بگیرید که چه چیزی توالی بوت دستگاه شما را کنترل می کند، و اگر بتوانید به نحوی آن را خراب کنید، چگونه آن را برطرف کنید. اگر به اندازه کافی از لینوکس استفاده می کنید، دیر یا زود مرتکب اشتباهی خواهید شد که بوت لودر شما را خراب می کند. خوشبختانه، برای رفع این مشکل نیازی به نصب مجدد نیست. برخلاف بسیاری از سیستمعاملهای دیگر که جزئیات زیربنایی نحوه کار خود را پنهان میکنند، لینوکس (و به ویژه Slackware) به شما کنترل کامل بر فرآیند بوت را میدهد. به سادگی با ویرایش یک یا دو فایل پیکربندی و اجرای مجدد نصب کننده بوت لودر، می توانید به سرعت و به راحتی سیستم خود را تغییر دهید (یا خراب کنید). Slackware حتی بوت دوگانه چندین سیستم عامل مانند سایر توزیع های لینوکس یا مایکروسافت ویندوز را آسان می کند.
mkinitrd
قبل از اینکه به ادامه مطلب برویم، یک بحث سریع در مورد هسته لینوکس ضروری است. لینوکس Slackware شامل حداقل دو هسته مختلف، اما گاهی اوقات بیشتر است. در حالی که همه آنها از یک کد منبع کامپایل شده اند، و از این رو “یکسان” هستند، آنها یکسان نیستند. بسته به معماری و نسخه Slackware شما، نصب کننده ممکن است سیستم شما را با چندین هسته بارگذاری کرده باشد. هسته هایی برای سیستم های تک پردازنده ای و هسته هایی برای سیستم های چند پردازنده ای (در Slackware 32 بیتی) وجود دارد. در زمان های قدیم هسته های زیادی برای نصب بر روی انواع مختلف کنترل کننده هارد دیسک وجود داشت. مهمتر از آن برای بحث ما، هسته های “بزرگ” و هسته های “عمومی” وجود دارد.
اگر به دایرکتوری /boot خود نگاه کنید، هسته های مختلف نصب شده روی سیستم خود را خواهید دید.
hossein:~# ls -1 /boot/vmlinuz*
/boot/vmlinuz-huge-2.6.29.4
/boot/vmlinuz-generic-2.6.29.4
در اینجا می بینید که من دو هسته vmlinuz-huge-2.6.29.4 و vmlinuz-generic-2.6.29.4 را نصب کرده ام. هر نسخه Slackware شامل نسخههای هستههای مختلف و گاهی اوقات حتی نامهای کمی متفاوت است، بنابراین اگر آنچه میبینید دقیقاً با آنچه من در اینجا فهرست کردهام مطابقت ندارد، نگران نباشید.
هسته های عظیم دقیقاً همان چیزی است که ممکن است فکر کنید. آنها بزرگ هستند با این حال، این بدان معنا نیست که آنها همه درایورهای ممکن و موارد مشابه را در آنها کامپایل کرده اند. در عوض، این هستهها برای راهاندازی (و اجرا) در هر رایانه قابل تصوری که Slackware روی آن پشتیبانی میشود ساخته شدهاند (ممکن است تعداد کمی وجود داشته باشند که با آنها بوت نمیشوند/کار نمیکنند). آنها مطمئناً شامل پشتیبانی از سخت افزاری هستند که دستگاه شما ندارد (و هرگز نخواهد داشت)، اما این نباید برای شما نگران کننده باشد. این هستهها به دلایل مختلفی گنجانده شدهاند، اما احتمالاً مهمترین آنها استفاده از آنها توسط نصبکننده Slackware است – اینها هستههایی هستند که دیسکهای نصب Slackware اجرا میکنند. اگر تصمیم گرفتید به نصب کننده اجازه دهید بوت لودر شما را برای شما پیکربندی کند، به دلیل تنوع باورنکردنی سخت افزاری که پشتیبانی می کنند، از این هسته ها استفاده می کند. در مقابل، هستههای عمومی از سختافزار بسیار کمی بدون استفاده از ماژولهای خارجی پشتیبانی میکنند. اگر می خواهید از یکی از هسته های عمومی استفاده کنید، باید از چیزی به نام initrd استفاده کنید که با استفاده از ابزار mkinitrd(8) ایجاد می شود.
پس چرا باید از یک هسته عمومی استفاده کنید؟ در حال حاضر تیم توسعه Slackware استفاده از یک هسته عمومی را به دلایل مختلف توصیه می کند. شاید واضح ترین آنها اندازه باشد. هسته های عظیم در حال حاضر حدود دو برابر هسته های عمومی هستند قبل از اینکه فشرده نشده و در حافظه بارگذاری شوند. اگر از یک ماشین قدیمی یا با مقدار کمی رم استفاده می کنید، از صرفه جویی هایی که هسته های عمومی به شما ارائه می دهند قدردانی خواهید کرد. سایر دلایل کمی دشوارتر است. تضاد بین درایورهای موجود در هستههای عظیم هر از گاهی ظاهر میشود، و به طور کلی، هستههای عظیم ممکن است به خوبی هستههای عمومی عمل نکنند. همچنین، با استفاده از هستههای عمومی، آرگومانهای خاص را میتوان بهطور جداگانه به درایورهای سختافزار منتقل کرد، نه اینکه این گزینهها در خط فرمان کرنل ارسال شوند. اگر هسته شما از برخی درایورها به عنوان ماژول استفاده کند، برخی از ابزارهای ارائه شده با Slackware بهتر کار می کنند تا اینکه به صورت ایستا آنها را در هسته بسازید. اگر در درک این مشکل دارید، نگران نباشید: فقط فکر کنید “هسته عظیم = خوب، هسته عمومی = بهتر”.
متأسفانه، استفاده از هسته های عمومی به اندازه استفاده از هسته های بزرگ ساده نیست. برای اینکه هسته عمومی سیستم شما را بوت کند، باید چند ماژول اصلی را نیز در یک initird قرار دهید. ماژول ها قطعاتی از کد هسته کامپایل شده هستند که می توانند از یک هسته در حال اجرا درج یا حذف شوند (به طور ایده آل با استفاده از modprobe(8). این باعث می شود که سیستم تا حدودی انعطاف پذیرتر شود به قیمت کمی پیچیدگی بیشتر. شاید فکر کردن برای شما راحت تر باشد. از ماژول ها به عنوان درایورهای دستگاه، حداقل برای این بخش، معمولاً باید ماژول را برای هر فایلی که برای پارتیشن اصلی خود انتخاب کرده اید در طول نصب، اضافه کنید، و اگر پارتیشن ریشه شما روی یک دیسک SCSI یا کنترلر RAID قرار دارد. شما باید آن ماژول ها را نیز اضافه کنید، در نهایت، اگر از نرم افزار RAID، رمزگذاری دیسک یا LVM استفاده می کنید، بدون در نظر گرفتن اینکه آیا از هسته عمومی استفاده می کنید یا خیر، باید یک initrd ایجاد کنید.
initrd یک آرشیو فشرده cpio(1) است، بنابراین ایجاد آن خیلی ساده نیست. خوشبختانه برای شما، Slackware دارای ابزاری است که این کار را بسیار آسان می کند: mkinitrd. بحث کامل در مورد mkinitrd کمی فراتر از محدوده این کتاب است، اما ما تمام نکات برجسته را به شما نشان خواهیم داد. برای توضیح کامل تر، manpage را بررسی کنید یا mkinitrd را با آرگومان [–help] اجرا کنید.
hossein:~# mkinitrd –help
mkinitrd creates an initial ramdisk (actually an initramfs cpio+gzip
archive) used to load kernel modules that are needed to mount the
root filesystem, or other modules that might be needed before the
root filesystem is available. Other binaries may be added to the
initrd, and the script is easy to modify. Be creative. 🙂
…. many more lines deleted ….
هنگام استفاده از mkinitrd، باید چند مورد از اطلاعات را بدانید: پارتیشن ریشه، سیستم فایل ریشه، هر کنترل کننده دیسک سختی که استفاده می کنید، و اینکه آیا از LVM، نرم افزار RAID یا رمزگذاری دیسک استفاده می کنید یا نه. مگر اینکه از نوعی کنترلر SCSI استفاده کنید (و پارتیشن ریشه خود را روی کنترلر SCSI قرار دهید)، فقط باید سیستم فایل ریشه و نوع پارتیشن خود را بدانید. با فرض اینکه شما با استفاده از هسته عظیم خود در نصب Slackware خود بوت شده اید، می توانید به راحتی این اطلاعات را با دستور mount یا با مشاهده محتویات /proc/mounts پیدا کنید.
hossein:~# mount
/dev/sda1 on / type ext4 (rw,barrier=1,data=ordered)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
usbfs on /proc/bus/usb type usbfs (rw)
/dev/sda2 on /home type jfs (rw)
tmpfs on /dev/shm type tmpfs (rw)
در مثال ارائه شده می بینید که پارتیشن root در /dev/sda1 قرار دارد و از نوع ext4 است. اگر بخواهیم یک initrd برای این سیستم ایجاد کنیم، کافی است این اطلاعات را به mkinitrd بگوییم.
hossein:~# mkinitrd -f ext4 -r /dev/sda1
توجه داشته باشید که در بیشتر موارد، mkinitrd به اندازه کافی هوشمند است که این اطلاعات را به تنهایی تعیین کند، اما تعیین دستی آن هرگز ضرری ندارد. اکنون که initrd خود را ایجاد کردهایم، فقط باید به LILO بگوییم کجا آن را پیدا کند. در بخش بعدی روی آن تمرکز خواهیم کرد.
جستجوی همه آن گزینه های مختلف برای mkinitrd یا بدتر از آن، به خاطر سپردن آنها، می تواند دردسرساز باشد، به خصوص اگر هسته های مختلف را به طور مداوم امتحان کنید. این برای تیم توسعه Slackware خسته کننده شد، بنابراین آنها با یک فایل پیکربندی ساده، mkinitrd.conf(5) آمدند. شما می توانید یک فایل نمونه را پیدا کنید که به راحتی darkstar:~# >/prompt>cat /etc/mkinitrd.conf.sample
# See “man mkinitrd.conf” for details on the syntax of this file
#
SOURCE_TREE=”/boot/initrd-tree”
CLEAR_TREE=”0″
OUTPUT_IMAGE=”/boot/initrd.gz”
KERNEL_VERSION=”$(uname -r)”
#KEYMAP=”us”
MODULE_LIST=”ext3:ext4:jfs”
#LUKSDEV=”/dev/hda1″
ROOTDEV=”/dev/sda1
ROOTFS=”ext4″
#RESUMEDEV=”/dev/hda2″
#RAID=”0″
LVM=”1″
#WAIT=”1″
برای توضیح کامل هر یک از این خطوط و کارهایی که انجام می دهند، باید به صفحه man برای mkinitrd.conf مراجعه کنید. فایل نمونه را در /etc/mkinitrd.conf کپی کنید و آن را به دلخواه ویرایش کنید. هنگامی که به درستی راه اندازی شد، فقط باید mkinitrd را با آرگومان [-F] اجرا کنید. یک فایل initrd مناسب برای شما ساخته و نصب می شود بدون اینکه مجبور باشید همه آن آرگومان های مبهم را به خاطر بسپارید.
اگر مطمئن نیستید که چه گزینه هایی را در فایل پیکربندی یا در خط فرمان مشخص کنید، یک گزینه نهایی وجود دارد. Slackware شامل یک ابزار کاربردی کوچک است که می تواند بگوید چه گزینه هایی برای هسته در حال اجرا /usr/share/mkinitrd/mkinitrd_command_generator.sh مورد نیاز است. هنگامی که این اسکریپت را اجرا می کنید، یک خط فرمان برای mkinitrd ایجاد می کند که باید برای رایانه شما کار کند، اما ممکن است بخواهید همه چیز را بررسی کنید.
darkstar:~# /usr/share/mkinitrd/mkinitrd_command_generator.sh
mkinitrd -c -k 2.6.33.4 -f ext3 -r /dev/sda3 -m \
usbhid:ehci-hcd:uhci-hcd:ext3 -o /boot/initrd.gz
لیلو
LILO لودر لینوکس است و در حال حاضر بوت لودر پیش فرض نصب شده با لینوکس Slackware است. اگر قبلا از سایر توزیع های لینوکس استفاده کرده اید، ممکن است با GRUB بیشتر آشنا باشید. اگر ترجیح می دهید به جای آن از GRUB استفاده کنید، می توانید به راحتی آن را در فهرست اضافی/ یکی از سی دی های Slackware خود پیدا کنید. با این حال، از آنجایی که LILO بوت لودر پیش فرض Slackware است، ما به طور انحصاری روی آن تمرکز خواهیم کرد.
پیکربندی LILO می تواند برای کاربران جدید کمی دلهره آور باشد، بنابراین Slackware با یک ابزار راه اندازی ویژه به نام liloconfig ارائه می شود. به طور معمول، liloconfig ابتدا توسط نصب کننده اجرا می شود، اما شما می توانید آن را در هر زمان از یک ترمینال اجرا کنید.
liloconfigدارای دو حالت کار ساده و تخصصی. حالت “ساده” سعی می کند به طور خودکار lilo را برای شما پیکربندی کند. اگر Slackware تنها سیستم عامل نصب شده بر روی رایانه شما باشد، حالت “ساده” تقریباً همیشه کار درست را سریع و آسان انجام می دهد. همچنین در شناسایی نصبهای ویندوز و افزودن آنها به /etc/lilo.conf بسیار خوب است تا بتوانید انتخاب کنید که هنگام روشن کردن رایانه، کدام سیستم عامل را بوت کنید.
برای استفاده از حالت “expert” باید پارتیشن ریشه Slackware را بشناسید. شما همچنین می توانید سایر سیستم عامل های لینوکس را اگر پارتیشن های ریشه آنها را می شناسید راه اندازی کنید، اما ممکن است آنطور که انتظار دارید کار نکند. liloconfig سعی می کند هر سیستم عامل لینوکس را با هسته Slackware بوت کند، و احتمالاً این چیزی نیست که شما می خواهید. خوشبختانه، تنظیم پارتیشن های ویندوز در حالت متخصص امری بی اهمیت است. یک نکته هنگام استفاده از حالت خبره: تقریباً همیشه باید LILO را در ضبط اصلی بوت (MBR) نصب کنید. روزی روزگاری توصیه می شد بوت لودر را روی پارتیشن ریشه نصب کنید و آن پارتیشن را به عنوان قابل بوت تنظیم کنید. امروزه LILO بسیار رشد کرده است و نصب آن بر روی MBR ایمن است. در واقع اگر این کار را انجام دهید با مشکلات کمتری مواجه خواهید شد.
liloconfigیک راه عالی برای راه اندازی سریع بوت لودر است، اما اگر واقعاً نیاز دارید که بدانید چه اتفاقی در حال رخ دادن است، باید به فایل پیکربندی LILO نگاه کنید: lilo.conf(5) در پوشه /etc. /etc/lilo.conf به چندین بخش جدا شده است. در بالا، یک بخش «جهانی» را پیدا خواهید کرد که در آن مواردی مانند محل نصب LILO (معمولاً MBR)، هر تصویر یا صفحه نمایش ویژه ای برای نمایش در هنگام بوت، و مهلت زمانی که پس از آن LILO سیستم عامل پیش فرض را بوت می کند، مشخص می کنید. . بخش جهانی فایل lilo.conf من تا حدی به این شکل است.
# LILO configuration file
boot = /dev/sda
bitmap = /boot/slack.bmp
bmp-colors = 255,0,255,0,255,0
bmp-table = 60,6,1,16
bmp-timer = 65,27,0,255
append=” vt.default_utf8=0″
prompt
timeout = 50
# VESA framebuffer console @ 1024x768x256
vga = 773
…. many more lines ommitted ….
برای فهرست کامل همه گزینه های ممکن LILO، باید به صفحه man برای lilo.conf مراجعه کنید. ما به طور خلاصه در مورد رایج ترین گزینه ها در این سند صحبت خواهیم کرد.
اولین چیزی که باید توجه شما را جلب کند خط “بوت” است. این محل نصب بوت لودر را مشخص می کند. برای نصب در Master Boot Record (MBR) هارد دیسک خود، به سادگی ورودی دستگاه هارد دیسک را در این خط فهرست کنید. در مورد من، من از هارد دیسک SATA استفاده می کنم که به عنوان دستگاه SCSI /dev/sda نشان داده می شود. برای نصب در بلوک بوت یک پارتیشن، باید ورودی دستگاه پارتیشن را فهرست کنید. به عنوان مثال، اگر در حال نصب بر روی پارتیشن اول روی تنها هارد SATA رایانه خود هستید، احتمالاً از /dev/sda1 استفاده می کنید.
گزینه “prompt” به سادگی به LILO می گوید که از شما بپرسد که کدام سیستم عامل را بوت کنید. سیستم عامل ها هر کدام در قسمت خود در عمق فایل ذکر شده اند. یک دقیقه دیگر به آنها خواهیم رسید. گزینه timeout به LILO می گوید که چه مدت (در دهم ثانیه) قبل از راه اندازی سیستم عامل پیش فرض صبر کند. در مورد من، این 5 ثانیه است. به نظر میرسد برخی از سیستمها برای نمایش صفحه بوت زمان بسیار زیادی نیاز دارند، بنابراین ممکن است لازم باشد از مقدار زمانبندی بزرگتر از مقداری که من تنظیم کردهام استفاده کنید. به همین دلیل است که روش نصب ساده LILO از یک بازه زمانی بسیار طولانی (حدود 2 دقیقه کامل) استفاده می کند. خط ضمیمه در مورد من توسط liloconfig تنظیم شده است. ممکن است (و احتمالاً باید) هنگام نگاه کردن به /etc/lilo.conf خودتان چیزی مشابه ببینید. من به جزئیات این که چرا این خط نیاز است نمی پردازم، بنابراین شما فقط باید به من اعتماد کنید که اگر وجود داشته باشد همه چیز بهتر عمل می کند. :^)
اکنون که به بخش جهانی نگاه کردیم، بیایید نگاهی به بخش سیستم عامل بیاندازیم. هر بخش سیستم عامل لینوکس با یک خط “تصویر” شروع می شود. سیستم عامل های مایکروسافت ویندوز با خط “دیگر” مشخص می شوند. بیایید نگاهی به نمونه /etc/lilo.conf بیندازیم که هم Slackware و هم Microsoft Windows را بوت میکند.
# LILO configuration file
… global section ommitted ….
# Linux bootable partition config begins
image = /boot/vmlinuz-generic-2.6.29.4
root = /dev/sda1
initrd = /boot/initrd.gz
label = Slackware64
read-only
# Linux bootable partition config ends
# Windows bootable partition config begins
other = /dev/sda3
label = Windows
table = /dev/sda
# Windows bootable partition config ends
برای سیستم عامل های لینوکس مانند Slackware، خط تصویر مشخص می کند که کدام هسته باید بوت شود. در این مورد، ما /boot/vmlinuz-generic-2.6.29.4 را بوت می کنیم. بخش های باقی مانده کاملاً خود توضیحی هستند. آنها به LILO می گویند که کجا فایل سیستم ریشه را پیدا کند، از چه initrd (در صورت وجود) استفاده کند، و در ابتدا فایل سیستم فایل ریشه را فقط خواندنی نصب کند. این خط initrd برای هر کسی که یک هسته عمومی را اجرا می کند یا از LVM یا نرم افزار RAID استفاده می کند بسیار مهم است. به LILO (و هسته) میگوید که initrd را که با استفاده از mkinitrd ایجاد کردهاید، کجا پیدا کنید.
هنگامی که /etc/lilo.conf را برای دستگاه خود تنظیم کردید، به سادگی lilo(8) را برای نصب آن اجرا کنید. برخلاف GRUB و سایر بوت لودرها، LILO از شما میخواهد که هر زمان که در فایل پیکربندی آن تغییراتی ایجاد میکنید، لیلو را دوباره اجرا کنید، در غیر این صورت تصویر بوتلودر جدید (تغییر شده) نصب نمیشود و آن تغییرات منعکس نمیشوند.
darkstar:~# lilo
Warning: LBA32 addressing assumed
Added Slackware *
Added Backup
6 warnings were issued.
از بسیاری از هشدارهایی که ممکن است هنگام اجرای لیلو مشاهده کنید، خیلی نترسید. مگر اینکه خطای مهلکی ببینید، همه چیز باید خوب باشد. به طور خاص، هشدار آدرس دهی LBA32 رایج است.
بوت دوگانه
یک بوت لودر (مانند LILO) یک چیز بسیار انعطاف پذیر است، زیرا فقط برای تعیین هارد دیسک، پارتیشن یا حتی یک هسته خاص در یک پارتیشن برای بوت کردن وجود دارد. این امر ذاتاً یک انتخاب را هنگام بوت شدن نشان می دهد، بنابراین ایده داشتن بیش از یک سیستم عامل در رایانه برای کاربر LILO یا GRUB بسیار طبیعی است.
مردم به دلایل متعددی “چکمه دوگانه” دارند. برخی از افراد میخواهند یک Slackware پایدار روی یک پارتیشن یا درایو نصب کنند و یک سند باکس توسعه بر روی دیگری، افراد دیگر ممکن است بخواهند Slackware را روی یک پارتیشن و توزیع دیگری از لینوکس یا BSD را روی دیگری داشته باشند، و افراد دیگر ممکن است Slackware را روی یک پارتیشن داشته باشند. یک سیستم عامل اختصاصی (برای کار یا برای آن برنامه ای که لینوکس به سادگی نمی تواند ارائه دهد) روی دیگری.
با این حال، بوت دوگانه را نباید ساده انگاشت، زیرا معمولاً به این معنی است که اکنون دو سیستم عامل مختلف دارید که سعی در مدیریت بوت لودر دارند. اگر بوت دوگانه انجام می دهید، احتمال اینکه یک سیستم عامل بدون دخالت مستقیم شما، ورودی های بوت لودر را بیش از حد بنویسد یا به روز کند، بسیار زیاد است. اگر این اتفاق بیفتد، باید GRUB یا LILO را به صورت دستی تغییر دهید تا بتوانید وارد هر سیستم عامل شوید.
دو راه برای بوت دوگانه (یا چندگانه) وجود دارد. شما می توانید هر سیستم عامل را بر روی هارد دیسک مخصوص به خود (که در یک دسکتاپ معمول است، با داشتن بیش از یک درایو لوکس) یا هر سیستم عامل را روی پارتیشن خود (معمول در لپ تاپ هایی که فقط یک درایو فیزیکی وجود دارد) قرار دهید.
بوت دوگانه با پارتیشن
برای راه اندازی یک سیستم بوت دوگانه با هر سیستم عامل در پارتیشن خود، ابتدا باید پارتیشن هایی ایجاد کنید. اگر قبل از نصب اولین سیستم عامل انجام شود، این کار سادهترین کار است، در این صورت یک مورد ساده از پیش برنامهریزی و حک کردن هارد دیسک در صورت نیاز است
مهم
اگر دو توزیع لینوکس را بوت میکنید، توصیه نمیشود که سعی کنید یک فهرست /home را بین سیستمها به اشتراک بگذارید. در حالی که از نظر فنی امکان پذیر است، انجام این کار احتمال خراب شدن تنظیمات شخصی شما توسط محیط ها یا نسخه های دسکتاپ رقیب را افزایش می دهد.
با این حال، استفاده از یک پارتیشن swap معمولی ایمن است.
شما باید درایو خود را حداقل به سه قسمت تقسیم کنید:
- یک پارتیشن برای Slackware
- یک پارتیشن برای سیستم عامل ثانویه
- یک پارتیشن برای تعویض
ابتدا Slackware Linux را بر روی پارتیشن اول هارد دیسک همانطور که در توضیح داده شد نصب کنیدفصل 2، نصب.
پس از اینکه Slackware نصب شد، بوت شد و تأیید کردید که همه چیز طبق انتظار کار می کند، سپس به نصب کننده سیستم عامل دوم راه اندازی مجدد کنید. این سیستم عامل همیشه برای استفاده از کل درایو پیشنهاد می کند. واضح است که شما نمی خواهید این کار را انجام دهید، بنابراین آن را فقط به پارتیشن دوم محدود کنید. علاوه بر این، سیستم عامل تلاش می کند تا یک بوت لودر را در ابتدای هارد دیسک نصب کند و LILO را بازنویسی کند.
در رابطه با بوت لودر چند اقدام ممکن دارید:
سناریوهای احتمالی بوت لودر
اگر سیستم عامل ثانویه لینوکس است، آن را از نصب مدیر بوت منع کنید.
اگر در حال بوت شدن دوگانه به یک توزیع لینوکس دیگر هستید، نصب کننده آن توزیع معمولاً از شما می پرسد که آیا می خواهید یک بوت لودر نصب شود یا خیر. شما مطمئنا آزاد هستید که اصلاً یک مدیر بوت برای آن نصب نکنید و به صورت دستی هم Slackware و هم توزیع دیگر را با LILO مدیریت کنید.
بسته به توزیع، ممکن است LILO را بیشتر از زمانی که فقط Slackware را اجرا میکردید، ویرایش کنید. برخی از توزیعها بهخاطر بهروزرسانیهای مکرر هسته بدنام هستند، به این معنی که شما باید LILO را ویرایش کنید تا پیکربندی جدید پس از چنین بهروزرسانی را منعکس کنید. اما اگر نمیخواستید فایلهای پیکربندی را هر چند وقت یکبار ویرایش کنید، احتمالاً Slackware را انتخاب نمیکردید.
اگر سیستم عامل ثانویه لینوکس است، اجازه دهید LILO را با GRUB بازنویسی کند.
اگر در حال بوت شدن دوگانه به یک توزیع لینوکس دیگر هستید، کاملاً می توانید فقط از GRUB به جای LILO استفاده کنید، یا Slackware را در آخر نصب کنید و از LILO برای هر دو استفاده کنید. هر دو LILO و GRUB دارای ویژگیهای تشخیص خودکار بسیار خوبی هستند، بنابراین هر کدام که آخرین بار نصب میشود باید حضور توزیع دیگر را انتخاب کند و برای آن یک ورودی ایجاد کند.
از آنجایی که سایر توزیعها اغلب سعی میکنند منوهای GRUB خود را بهروزرسانی خودکار کنند، همیشه این احتمال وجود دارد که در طول بهروزرسانی، چیزی بدخلق شود و ناگهان متوجه شوید که نمیتوانید در Slackware بوت شوید. اگر این اتفاق افتاد، نترسید. فقط کافی است در پارتیشن دیگر لینوکس بوت کنید و به صورت دستی GRUB را ویرایش کنید تا به پارتیشن، هسته و initrd صحیح (در صورت وجود) برای Slackware در منوی آن اشاره کند.
به سیستم عامل ثانویه اجازه دهید تا LILO را بازنویسی کند و بعداً به عقب برگردید تا LILO را مجدداً به صورت دستی نصب و پیکربندی کنید.
این انتخاب بدی نیست، به خصوص زمانی که ویندوز سیستم عامل ثانویه باشد، اما مشکلات احتمالی این است که وقتی ویندوز خودش بهروزرسانی میشود، ممکن است دوباره MBR (رکورد اصلی بوت) را بازنویسی کند و باید LILO را دوباره به صورت دستی نصب کنید. از نو.
برای برقراری مجدد LILO پس از پاک کردن سیستم عامل دیگر، می توانید از رسانه نصب Slackware خود بوت شده و وارد مرحله راه اندازی شوید. درایو خود را دوباره پارتیشن بندی نکنید یا Slackware را دوباره نصب نکنید.
حتی هنگام استفاده از گزینه “ساده” برای نصب، LILO باید هر دو سیستم عامل را شناسایی کرده و به طور خودکار یک منوی معقول را برای شما پیکربندی کند. اگر ناموفق بود، خودتان ورودی ها را اضافه کنید.
بوت دوگانه از هارد دیسک
بوت دوگانه بین هارد درایوهای فیزیکی مختلف اغلب سادهتر از پارتیشنها است، زیرا BIOS یا EFI رایانه تقریباً همیشه دارای یک انتخابگر دستگاه بوت است که به شما امکان میدهد بلافاصله پس از POST فرآیند بوت را قطع کنید و انتخاب کنید که کدام درایو باید اولویت داشته باشد.
کلید گیر برای ورود به بوت انتخابگر برای هر مارک مادربرد متفاوت است. به دفترچه راهنمای مادربرد مراجعه کنید یا صفحه نمایش اسپلش را بخوانید تا بفهمید کامپیوتر شما به چه چیزی نیاز دارد. کلیدهای معمولی عبارتند از F1، F12، DEL. برای کامپیوترهای اپل، همیشه کلید Option (Alt) است.
اگر اولویت بوت را از طریق BIOS یا EFI مدیریت کنید، هر بوت لودر در هر دیسک سخت فقط از درایو خود آگاه است و هرگز با یکدیگر تداخل نخواهد داشت. این برخلاف کاری است که بوت لودر برای انجام آن طراحی شده است، اما میتواند راهحل مفیدی در برخورد با سیستمعاملهای اختصاصی باشد که اصرار دارند تنها سیستمعامل در سیستم باشند و به اولویت کاربر آسیب برساند.
اگر لوکس داشتن چندین هارد دیسک داخلی را ندارید و با استفاده از یک پارتیشن و سیستم عامل دیگر روی رایانه خود احساس راحتی نمی کنید، ممکن است استفاده از یک USB قابل بوت یا حتی یک ماشین مجازی برای دسترسی به سیستم عامل دیگر را در نظر بگیرید. . هر دوی این گزینه ها خارج از محدوده این کتاب هستند، اما آنها رایج هستند و بسته به نیاز شما ممکن است انتخاب مناسبی برای شما باشند.
دستورات اصلی پوسته
بنابراین شما Slackware را نصب کرده اید و به یک فرمان ترمینال خیره شده اید، حالا چه می شود؟ اکنون زمان خوبی برای یادگیری ابزارهای خط فرمان اولیه است. و از آنجایی که به یک نفرینکننده چشمکزن خیره شدهاید، احتمالاً برای دانستن چگونگی دور زدن نیاز به کمک کمی دارید، و این همان چیزی است که این فصل در مورد آن است.
مستندات سیستم
سیستم لینوکس Slackware شما دارای اسناد داخلی زیادی برای تقریباً هر برنامه نصب شده است. شاید رایج ترین روش خواندن اسناد سیستم، man(1) باشد. man (مخفف کتابچه راهنمای کاربر) برای هر برنامه کاربردی، تماس سیستمی، فایل پیکربندی، یا کتابخانه ای که شما به آن می گویید، صفحه شخصی موجود را نمایش می دهد. به عنوان مثال، man man صفحه مرد را برای خود انسان مطرح می کند.
متأسفانه، ممکن است همیشه ندانید که از چه برنامهای برای کار در دستتان نیاز دارید استفاده کنید. خوشبختانه، انسان توانایی های جستجوی داخلی دارد. استفاده از سوئیچ [-k] باعث میشود که کاربر هر صفحه شخصی را که با عبارات جستجوی شما مطابقت دارد جستجو کند.
صفحات انسانی بر اساس نوع محتوایشان به گروه ها یا بخش هایی سازماندهی می شوند. به عنوان مثال، بخش 1 برای برنامه های کاربردی کاربر است. man هر بخش را به ترتیب جستجو می کند و اولین مطابقی را که پیدا می کند نمایش می دهد. گاهی اوقات متوجه خواهید شد که یک صفحه شخصی در بیش از یک بخش برای یک ورودی مشخص وجود دارد. در این صورت، باید دقیقاً قسمت مورد نظر را مشخص کنید. در این کتاب، همه برنامهها و تعدادی از موارد دیگر یک عدد در سمت راست خود در پرانتز دارند. این شماره بخش صفحه مرد است که در آن اطلاعات مربوط به آن ابزار را خواهید یافت.
printf (1) – format and print data
printf (3) – formatted output conversion
darkstar:~$ man 3 printf
جدول 4.1. بخش های صفحه man
بخش |
فهرست |
1 |
دستورات کاربر |
2 |
تماس های سیستمی |
3 |
C تماس های کتابخانه |
4 |
دستگاه ها |
5 |
فرمت های فایل / پروتکل ها |
6 |
بازی ها |
7 |
کنوانسیون ها / بسته های کلان |
8 |
مدیریت سیستم |
9 |
توضیحات Kernel API |
n |
“جدید” – معمولاً برای Tcl/Tk استفاده می شود |
کار با فایل ها و دایرکتوری ها
فهرست کردن فایل ها و محتویات دایرکتوری
ls(1) برای فهرست کردن فایلها و دایرکتوریها، مجوزها، اندازه، نوع، شماره inode، مالک و گروه و بسیاری از اطلاعات اضافی استفاده میشود. برای مثال، بیایید فهرستی از آنچه در فهرست / برای سیستم لینوکس جدید Slackware شما وجود دارد.
darkstar:~$ ls /
bin/ dev/ home/ lost+found/ mnt/ proc/ sbin/ sys/ usr/
boot/ etc/ lib/ media/ opt/ root/ srv/ tmp/ var/
توجه داشته باشید که هر یک از لیست ها یک فهرست هستند. اینها به راحتی از فایل های معمولی به دلیل دنباله /; فایل های استاندارد پسوند ندارند. علاوه بر این، فایل های اجرایی دارای پسوند ستاره هستند. اما ls می تواند خیلی بیشتر انجام دهد. برای مشاهده مجوزهای یک فایل یا دایرکتوری، باید یک “لیست طولانی” انجام دهید.
hossein:~$ ls -l /home/alan/Desktop
-rw-r–r– 1 کاربر alan 15624161 2007-09-21 13:02 9780596510480.pdf
-rw-r–r– 1 کاربر 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/
یک لیست طولانی به شما امکان می دهد مجوزها، مالکیت کاربر و گروه، اندازه فایل، آخرین تاریخ تغییر و البته نام خود فایل را مشاهده کنید. توجه داشته باشید که دو کل اول فایل هستند و سه مورد آخر دایرکتوری هستند. این با اولین کاراکتر روی خط مشخص می شود. فایل های معمولی یک “-” دریافت می کنند. دایرکتوری ها یک “d” دریافت می کنند. چندین نوع فایل دیگر با مخرج های خاص خود وجود دارد. برای مثال پیوندهای نمادین یک “l” خواهند داشت.
در نهایت، ما به شما نشان خواهیم داد که چگونه فایلهای نقطهای یا فایلهای مخفی را فهرست کنید. بر خلاف سیستم عامل های دیگر مانند مایکروسافت ویندوز، هیچ ویژگی خاصی وجود ندارد که فایل های “مخفی” را از فایل های “پنهان نشده” متمایز کند. یک فایل مخفی به سادگی با یک نقطه شروع می شود. برای نمایش این فایل ها به همراه سایر فایل ها، فقط باید آرگومان [-a] را به ls ارسال کنید.
hossein:~$ ls -a
xine/ xinitrc-backup .xscreensaver .xsession-errors SBo/
xinitrc .xinitrc-xfce .xsession .xwmconfig/ Shared/
همچنین احتمالاً متوجه شده اید که فایل ها و دایرکتوری های شما در رنگ های مختلف ظاهر می شوند. بسیاری از ویژگیهای پیشرفته ls مانند این رنگها یا کاراکترهای دنبالهای که نوع فایل را نشان میدهند، ویژگیهای ویژه برنامه ls هستند که با ارسال آرگومانهای مختلف روشن میشوند. به عنوان یک راحتی، Slackware ls را برای استفاده از بسیاری از این آرگومان های اختیاری به طور پیش فرض تنظیم می کند. اینها توسط متغیرهای محیطی LS_OPTIONS و LS_COLORS کنترل می شوند. در فصل 5 در مورد متغیرهای محیطی بیشتر صحبت خواهیم کرد.
حرکت در اطراف سیستم فایل
سی دیدستوری است که برای تغییر دایرکتوری ها استفاده می شود. برخلاف اکثر دستورات دیگر، cd در واقع برنامه خود نیست، بلکه یک پوسته داخلی است. در واقع، این بدان معناست که سی دی صفحه شخصی خود را ندارد. برای جزئیات بیشتر در مورد سی دی که ممکن است استفاده کنید، باید اسناد پوسته خود را بررسی کنید. با این حال، در اکثر موارد، همه آنها یکسان رفتار می کنند.
توجه داشته باشید که وقتی دایرکتوری ها را تغییر دادیم، درخواست چگونه تغییر کرد؟ پوسته پیش فرض Slackware این کار را به عنوان یک راه سریع و آسان برای دیدن فهرست فعلی شما انجام می دهد، اما این در واقع تابعی از cd نیست. اگر پوسته شما به این شکل عمل نمی کند، می توانید به راحتی دایرکتوری کاری فعلی خود را با دستور pwd(1) دریافت کنید. (بیشتر پوسته های یونیکس دارای دستورات قابل تنظیمی هستند که می توان آنها را برای ارائه همین عملکرد به کار برد. در واقع، این یک تنظیم راحت دیگر در پوسته پیش فرض برای شما توسط Slackware است.)
hossein:~$ pwd
/usr/local
مدیریت بسته
pkgtool
مدیریت بستهها بخش ضروری هر توزیع لینوکس است. هر نرم افزاری که توسط Slackware ارائه می شود، همراه با بسیاری از ابزارهای شخص ثالث، به عنوان کد منبع قابل کامپایل توزیع می شوند، اما کامپایل کردن هزاران برنامه و کتابخانه مختلف خسته کننده و زمان بر است. به همین دلیل است که بسیاری از افراد ترجیح می دهند بسته های نرم افزاری از پیش کامپایل شده را نصب کنند. در واقع، زمانی که Slackware را نصب کردید، برنامه راهاندازی در درجه اول با اجرای ابزارهای مدیریت بسته در لیست بستهها کار میکرد. در اینجا ما به ابزارهای مختلفی که برای مدیریت بستههای Slackware استفاده میشوند نگاه میکنیم.
pkgtool
ساده ترین راه برای انجام وظایف نگهداری بسته، فراخوانی pkgtool(8)، یک رابط منو محور برای برخی از ابزارهای دیگر است. pkgtool به شما امکان می دهد بسته ها را نصب یا حذف کنید و همچنین محتویات آن بسته ها و لیست بسته های نصب شده فعلی را در یک رابط کاربر پسند ncurses مشاهده کنید.
pkgtoolیک راه راحت و آسان برای انجام اساسی ترین وظایف است، اما برای کارهای پیشرفته تر به ابزارهای انعطاف پذیرتری نیاز است.
نصب، حذف و ارتقاء بسته ها
در حالی که pkgtool برای راحتی امتیاز کسب می کند، installpkg(8) بسیار توانایی بیشتری در رسیدگی به وظایف عجیب و غریب، مانند نصب سریع یک بسته واحد، نصب یک مجموعه دیسک کامل از بسته ها، یا اسکریپت نصب دارد. installpkg لیستی از بسته ها را برای نصب می گیرد و به سادگی آنها را بدون پرسیدن سوال نصب می کند. مانند همه ابزارهای مدیریت بسته Slackware، فرض میکند که شما میدانید چه کار میکنید و تظاهر نمیکند که از شما باهوشتر است. در سادهترین شکل، installpkg به سادگی فهرستی از بستهها را برای نصب میگیرد و دقیقاً همان کاری را انجام میدهد که انتظار دارید.
darkstar:~# installpkg blackbox-0.70.1-i486-2.txz
Verifying package blackbox-0.70.1-i486-2.txz.
Installing package blackbox-0.70.1-i486-2.txz:
PACKAGE DESCRIPTION:
# blackbox (Blackbox window manager)
#
# Blackbox is that fast, light window manager you have been looking for
# without all those annoying library dependencies.
#
# Also included in this package is the bbkeys utility for controlling
# keyboard shortcut commands from within Blackbox.
#
# The Blackbox home page is http://blackboxwm.sourceforge.net
#
Package blackbox-0.70.1-i486-2.txz installed.
البته می توانید چندین بسته را در یک زمان نصب کنید و در واقع از کارت های وایلد پوسته استفاده کنید. موارد زیر تمام بسته های سری “N” را از یک CD-ROM نصب شده نصب می کند:
darkstar:~# installpkg /mnt/cdrom/slackware/n/*.txz
در هر زمان، میتوانید با فهرست کردن محتویات /var/log/packages، که نه تنها همه برنامههای موجود در سیستم، بلکه شماره نسخه را نیز فهرست میکند، ببینید چه بستههایی روی سیستم شما نصب شدهاند. اگر می خواهید بدانید چه فایل های جداگانه ای به عنوان بخشی از آن بسته نصب شده است، محتویات بسته را در نظر بگیرید:
darkstar:~# cat /var/log/packages/foo-1.0-x86_64.txz
این کار همه چیز را از اندازه بسته، شرح کاری که انجام می دهد و نام و مکان هر فایل نصب شده به عنوان بخشی از بسته را برمی گرداند.
حذف یک بسته به آسانی نصب یک بسته است. همانطور که انتظار دارید، دستور انجام این کار removepkg(8) است. به سادگی به آن بگویید که کدام بسته ها را حذف کند، و removepkg محتویات پایگاه داده بسته را بررسی می کند و همه فایل ها و دایرکتوری های آن بسته را با یک اخطار حذف می کند. اگر آن فایل در چندین بسته نصب شده گنجانده شود، از آن صرفنظر می شود و اگر دایرکتوری فایل های جدیدی در آن باشد، دایرکتوری در جای خود باقی می ماند. به همین دلیل، حذف بسته ها زمان زیادی از نصب آنها می برد.
darkstar:~# removepkg blackbox-0.70.1-i486-2.txz
در نهایت، ارتقاء به همین راحتی با (شما حدس زدید)، upgradepkg(8) که ابتدا یک بسته جدید را نصب میکند، سپس فایلها و دایرکتوریهایی که از بسته قدیمی باقی مانده است را حذف میکند. یکی از موارد مهمی که باید به خاطر داشته باشید این است که upgradepkg بررسی نمیکند که آیا بسته نصب شده قبلی دارای شماره نسخه بالاتری نسبت به بسته “جدید” است یا خیر، بنابراین میتوان از آن برای کاهش به نسخههای قدیمیتر نیز استفاده کرد.
darkstar:~# upgradepkg blackbox-0.70.1-i486-2.txz
+==============================================================================
| Upgrading blackbox-0.65.0-x86_64-4 package using
./blackbox-0.70.1-i486-2.txz
+==============================================================================
Pre-installing package blackbox-0.70.1-i486-2…
Removing package
/var/log/packages/blackbox-0.65.0-x86_64-4-upgraded-2010-02-23,16:50:51…
–> Deleting symlink /usr/share/blackbox/nls/POSIX
–> Deleting symlink /usr/share/blackbox/nls/US_ASCII
–> Deleting symlink /usr/share/blackbox/nls/de
–> Deleting symlink /usr/share/blackbox/nls/en
–> Deleting symlink /usr/share/blackbox/nls/en_GB
…
Package blackbox-0.65.0-x86_64-4 upgraded with new package
./blackbox-0.70.1-i486-2.txz.
همه این ابزارها استدلال های مفیدی دارند. برای مثال، [–root] برای installpkg بستهها را در یک فهرست دلخواه نصب میکند. آرگومان [–dry-run] به upgradepkg دستور می دهد که به سادگی به شما بگوید که بدون ایجاد هیچ تغییری در سیستم چه تلاشی می کند. برای جزئیات کامل، باید (مثل همیشه) به صفحات man مراجعه کنید.
فرمت های فشرده سازی بسته
در گذشته، تمام بستههای Slackware با ابزار فشردهسازی gzip(1) فشرده میشدند که یک سازش خوب بین سرعت و اندازه فشردهسازی بود. اخیراً طرحهای فشردهسازی جدیدی اضافه شدهاند و ابزارهای مدیریت بسته برای مدیریت این موارد ارتقا یافتهاند. امروزه بسته های رسمی Slackware با ابزار xz فشرده شده و با پسوندهای .txz خاتمه می یابد. بسته های قدیمی (و بسیاری از بسته های شخص ثالث) هنوز از پسوند tgz. استفاده می کنند.
شایان ذکر است که tgz. و .txz (یا به طور خلاصه، فایلهای .t?z) پسوندهای بسیار استاندارد و غیر منحصر به فرد برای فایلهای .tar فشرده هستند. این مزایای بسیاری دارد؛ ساختن آنها بر روی تقریباً هر سیستم یونیکس آسان است (بسیاری از قالبهای بسته دیگر به زنجیرههای ابزار خاصی نیاز دارند)، و به همین سادگی میتوان آنها را ساخت.
با این حال، توجه به این نکته نیز مهم است که فقط به دلیل اینکه همه بستههای Slackware فایلهای .t?z هستند، همه فایلهای .t?z بستههای Slackware نیستند. Installpkg هیچ فایل .t?z را به طور جادویی نصب نمی کند، فقط بسته های Slackware را نصب می کند.
slackpkg
Slackpkgیک ابزار خودکار برای مدیریت بسته های لینوکس Slackware است. ابتدا در /extra برای انتشار slackware-12.1 ظاهر شد و از زمان انتشار slackware-12.2 در سری ap/ یک نصب پایه گنجانده شد.
همانطور که می توانید از installpkg برای نصب بسته های Slackware از پوشه /extra موجود در رسانه نصب استفاده کنید، می توانید از slackpkg برای بیرون کشیدن بسته ها از اینترنت و نصب آنها استفاده کنید. این به ویژه برای بهروزرسانیهای امنیتی یا ارتقای برنامههای کاربردی که در سرورهای Slackware ارسال میشوند، مفید است، که ممکن است بخواهید از برخی از آنها در سیستم خود استفاده کنید.
بدون Slackpkg، فرآیند به این صورت خواهد بود:
- در تغییرات Slackware توجه کنید که یک به روز رسانی منتشر شده است.
- برای یافتن لینک دانلود بسته، به آینه Slackware محلی خود نگاه کنید.
- بسته را از یک آینه Slackware روی هارد دیسک خود دانلود کنید.
- برای نصب بسته دانلود شده از installpkg یا pkgtool استفاده کنید.
با slackpkg، این به کاهش می یابد:
- در تغییرات Slackware توجه کنید که به روز رسانی برای foo منتشر شده است.
- slackpkg [install] foo
واضح است که این یک کار نسبتاً رایج را ساده می کند.
برای استفاده از slackpkg، سیستم خود را با یک آینه Slackware با ویرایش /etc/slackpkg/mirrors به عنوان root پیکربندی کنید. آینه ای را پیدا کنید که با نسخه و معماری Slackware شما مرتبط است و آن را از نظر خارج کنید. این لیست از آینه ها دسترسی به ftp و http را ارائه می دهد، اما شما باید فقط یک آینه را از کامنت بردارید.
پس از انتخاب یک آینه، لیست فایل های راه دور را با صدور دستور اولیه به روز رسانی slackpkg به روز کنید. این کار باید هر زمان که متوجه شدید بسته جدیدی پست شده است انجام شود (به طور منظم چک کردن با تغییرات Slackware توصیه می شود؛ رجوع کنید برای جستجوی بسته، از slackpkg search foo و برای نصب از slackpkg install foo استفاده کنید.
هنگامی که یک بسته با slackpkg نصب شد، میتوان آن را با استفاده از pkgtool و سایر دستورات مدیریت بسته حذف یا ارتقا داد.
برای اطلاعات بیشتر به صفحات man برای slackpkg(8) و slackpkg.conf(5) مراجعه کنید و به وب سایت آن در آدرس مراجعه کنید
rpm2tgz
یکی از رایج ترین فرمت های بسته نرم افزار لینوکس RPM است. یافتن توسعهدهندهای که برنامه خود را بهعنوان کد منبع یا فایل RPM و نه بیشتر برای دانلود پیشنهاد میکند، غیرمعمول نیست. در این مورد، شما سه گزینه خواهید داشت:
- بسته Slackware خود را بسازید.
- کامپایل و نصب مستقیم از کد منبع.
- تبدیل و نصب از RPM.
ساختن از کد منبع یا ایجاد بسته Slackware خود معمولاً آنقدرها که فکر میکنید پیچیده نیست، اما نصب مستقیم از کد منبع معمولاً ممنوع است زیرا هیچ راه آسانی برای ردیابی موارد نصب شده روی سیستم شما پس از صدور دستور make install وجود ندارد. ساخت بسته های Slackware خود خارج از محدوده این فصل است. بنابراین این ابزار مفید rpm2tgz را در اختیار ما می گذارد.
rpm2tgzبسته های RPM را به یک بسته Slackware تبدیل می کند که می تواند از طریق pkgtool یا installpkg نصب شود. این نیاز به ایجاد بسته Slackware خود را دور میزند، اما به شما این مزیت را میدهد که بتوانید آنچه را که نصب کردهاید حذف، بهروزرسانی و پیگیری کنید.
هشدار
در حالی که یک بسته Slackware فقط یک اسکریپت پوسته و کد منبع است، یک بسته RPM در مقایسه می تواند پیچ و خم لیست های وابستگی و دستورالعمل های ویژه باشد. بنابراین، rpm2tgz همیشه کار نمی کند، به خصوص در برنامه های بسیار پیچیده، و هرگز به طور جادویی وابستگی ها را حل نمی کند.
برای امتحان rpm2tgz، یک فایل RPM را از یک منبع مطمئن دانلود کنید و آن را تبدیل کنید:
rpm2tgz foo-xxxx.rpm
نتیجه یک فایل tgz. است، بنابراین پس از اتمام تبدیل، RPM اصلی را می توان با خیال راحت دور انداخت. از installpkg برای نصب بسته Slackware که به تازگی ایجاد کرده اید استفاده کنید، مشروط بر اینکه تمام کدهای وابستگی را برای عملکرد واقعی برنامه نصب کرده باشید.
به روز رسانی ها
پایدار
پس از انتشار نسخه جدید Slackware، تیم Slackware در صورت نیاز، بستههای بهروزرسانی شده را برای رفع آسیبپذیریهای امنیتی جدی و بهویژه باگهای بد منتشر میکند. بنابراین، مهم است که با تمام وصلههای نسخه Slackware خود همراه باشید، که از آن به عنوان شاخه -stable یاد میشود. همچنین یک شاخه فعلی وجود دارد، جایی که ما کار توسعه خود را به سمت نسخه پایدار بعدی انجام می دهیم (و به این ترتیب، اغلب تغییرات مزاحم در آنجا وجود دارد)، اما مگر اینکه شما مایل به کار با یک سیستم احتمالاً خراب باشید و قادر باشید. برای رفع مشکلات به تنهایی، ما قویاً توصیه می کنیم که از شاخه -stable استفاده کنید.
از آنجایی که بهروزرسانیهای پایدار بر روی دیسکها توزیع نمیشوند، باید آنها را از اینترنت دریافت کنید. بسیاری از افراد و سازمانها آینههایی را ارائه میکنند که میتوانید کل درخت Slackware (یا فقط وصلهها/ دایرکتوری) را به هر روشی دانلود کنید. در حالی که برخی از آینه ها دسترسی به وب را ارائه می دهند، رایج ترین راه های دریافت به روز رسانی از طریق سرورهای ftp و/یا rsync است. پروژه Slackware فهرست کوچکی (سازماندهی شده بر اساس کشور) از آینه های شناخته شده دارد. اگر مطمئن نیستید از کدام آینه استفاده کنید، به سادگی مشورت کنیدhttp://www.slackware.com/getslack/برای پیشنهادات اگر یک دانشگاه بزرگ در نزدیکی خود دارید، به احتمال زیاد آنها آینه ای از پروژه های متن باز متعدد را ارائه می دهند و Slackware ممکن است در میان آنها باشد. تنها نیاز واقعی برای آینه کامل بودن آن است. معمولاً برای دستیابی به سریع ترین زمان انتقال و استفاده از کمترین منابع اینترنتی، بهتر است از یک آینه در نزدیکی محل زندگی خود استفاده کنید.
بنابراین چگونه می دانید که به روز رسانی وجود دارد؟ بهترین راه این است که با ChangeLog.txt در هر آینه بهروزی مشورت کنید. شما همیشه می توانید آخرین تغییرات مربوط به شاخه فعلی و جدیدترین -stable را در صفحه وب Slackware Project پیدا کنید، اما اگر نسخه قدیمی Slackware را اجرا می کنید، باید یک آینه را بررسی کنید.
ftp://slackware.osuosl.org/pub/slackware/slackware64-current/ChangeLog.txt \
| less
Thu Aug 16 04:01:31 UTC 2012
Getting close! Hopefully we’ve cleared out most of the remaining issues
and are nearly ready here. We’ll call this release candidate 2.
Unless there’s a very good rationale, versions are frozen.
Any reports of remaining bugs will be gladly taken, though.
#include <more/cowbell.h>
a/aaa_base-14.0-x86_64-4.txz: Rebuilt.
Remove mention of HAL in the initial welcome email (mention udisks2
instead). Thanks to Dave Margell.
a/bash-4.2.037-x86_64-1.txz: Upgraded.
لیست پستی به روز رسانی امنیتی
در حالی که تیم Slackware گهگاه بستههای فقط رفع اشکال بهروزرسانی شده را منتشر میکند (یعنی نه رفعهای امنیتی)، احتمالاً شما بیشتر علاقهمند به رفع آسیبپذیریهای کشف شده پس از انتشار -stable هستید. پروژه Slackware یک لیست پستی دارد که شما را از هرگونه بسته به روز شده برای چنین مشکلات جدی مطلع می کند. برای عضویت در لیست پستی، یک ایمیل به < ارسال کنیدmajordomo@slackware.com>با عبارت ‘subscribe slackware-security’ در متن پیام. Majordomo با خوشحالی نام شما را به لیست اضافه می کند و هنگامی که بسته های جدید منتشر شد، یک توصیه نامه برای شما ارسال می کند.
ارتقاء نسخه های Slackware
اکنون که تا این حد پیش رفتهایم، باید در توانایی خود برای مدیریت سیستم Slackware خود به طور منطقی احساس شایستگی کنید. اما وقتی یک نسخه جدید وجود دارد، با آن چه کنیم؟ به روز رسانی از یک نسخه Slackware به نسخه دیگر بسیار پیچیده تر از به روز رسانی ساده چند بسته است. هر نسخه چیزهای زیادی را تغییر می دهد، و در حالی که بسیاری از این تغییرات کوچک هستند، برخی از آنها می توانند سیستم شما را کاملاً خراب کنند اگر برای آنها آماده نشده باشید و/یا درک نکنید که چه چیزی و چرا تغییر می کند. در حالی که برخی از توزیعهای لینوکس ابزارهای بسیار خودکاری را ارائه میکنند که سعی میکنند هر جزئیات کوچکی را برای شما مدیریت کنند، Slackware رویکرد بسیار عملیتری را در مورد چیزها اتخاذ میکند.
اولین کاری که باید قبل از اقدام به ارتقا انجام دهید، کاری است که بسیاری از افراد از آن غفلت می کنند: تصمیم بگیرید که آیا واقعاً ارتقاء لازم است یا خیر. اگر سیستم قدیمی پایدار است و هر کاری را که میخواهید انجام میدهد، ممکن است اصلاً نیازی به ارتقای سیستم عامل نباشد.
با فرض اینکه تصمیم دارید ارتقا را انجام دهید، دومین کاری که باید انجام دهید این است که فایل CHANGES_AND_HINTS.TXT را روی دیسک های ارتقا یا آینه خود بخوانید. این فایل در طول دوره توسعه قبل از هر انتشار بهروزرسانی میشود و نکات و نکات مفید زیادی را فهرست میکند تا به شما در مقابله با تغییرات کمک کند.
در نهایت، قبل از ادامه، فایل UPGRADE.TXT را بخوانید. پس از انجام این کارها، ممکن است تصمیم بگیرید که پشتیبانگیری از فایلهای پیکربندی و دادههای خود و نصب جدید نسخه جدید Slackware به جای تلاش برای ارتقاء احتمالاً مشکل، کمتر مشکل و احتمال دارد. با این حال، اگر همچنان می خواهید ادامه دهید، ابتدا از داده ها و فایل های پیکربندی خود نسخه پشتیبان تهیه کنید. حداقل، تهیه نسخه پشتیبان از دایرکتوری های /etc و /home تمرین خوبی است. این به شما فرصتی می دهد تا در صورت بروز مشکل، نصب مجدد را انجام دهید.
از آنجایی که هر نسخه جدید Slackware دارای چند تفاوت است، ارائه دستورالعمل های کامل در اینجا نه تنها بیهوده بلکه بالقوه گمراه کننده است. همیشه باید به اسناد موجود در دیسک های Slackware یا آینه مورد علاقه خود مراجعه کنید.
هسته لینوکس
احتمالاً شنیده اید که افرادی در مورد کامپایل کردن کرنل یا ساختن کرنل صحبت می کنند، اما هسته دقیقا چیست و چه کاری انجام می دهد؟ هسته مرکز کامپیوتر شما است. این پایه و اساس کل سیستم عامل است. هسته به عنوان پل بین سخت افزار و برنامه ها عمل می کند. این بدان معنی است که هسته (معمولا) تنها نرم افزاری است که مسئول سفارش دادن قطعات سخت افزاری کامپیوتر شما است. این هسته است که به هارد دیسک دستور می دهد تا یک جریان داده خاص را جستجو کند. این هسته است که به کارت شبکه شما دستور می دهد تا تغییرات سریع ولتاژ را منتقل کند. هسته همچنین به سخت افزار گوش می دهد. هنگامی که کارت شبکه یک کامپیوتر از راه دور را که اطلاعات ارسال می کند شناسایی می کند، آن اطلاعات را به هسته ارسال می کند. این باعث میشود که هسته مهمترین نرمافزار روی رایانه شما و پیچیدهترین نرمافزار باشد.
کار با ماژول ها
پیچیدگی یک هسته لینوکس مدرن سرسام آور است. کد منبع هسته تقریباً 400 مگابایت فشرده نشده وزن دارد. هزاران توسعه دهنده، صدها گزینه وجود دارد، و اگر همه چیز با هم ساخته می شد، هسته به زودی از 100 مگابایت خواهد گذشت. به منظور پایین نگه داشتن اندازه هسته (و همچنین مقدار RAM مورد نیاز برای هسته)، اکثر گزینه های هسته به صورت ماژول ساخته می شوند. میتوانید این ماژولها را بهعنوان درایورهای دستگاهی در نظر بگیرید که میتوان آنها را به دلخواه از هسته در حال اجرا درج یا حذف کرد. در حقیقت، بسیاری از آنها اصلاً درایورهای دستگاه نیستند، اما از مواردی مانند پروتکلهای شبکه، اقدامات امنیتی و حتی سیستمهای فایل پشتیبانی میکنند. به طور خلاصه، تقریباً هر قطعه از هسته لینوکس را می توان به عنوان یک ماژول قابل بارگذاری ساخت.
این مهم است که بدانید Slackware به طور خودکار بارگیری اکثر ماژول ها را برای شما انجام می دهد. هنگامی که سیستم شما بوت می شود، udevd(8) راه اندازی می شود و شروع به بررسی سخت افزار سیستم شما می کند. برای هر دستگاهی که پیدا می کند، ماژول مناسب را بارگیری می کند و یک گره دستگاه در /dev ایجاد می کند. این معمولاً به این معنی است که برای استفاده از رایانه خود نیازی به بارگذاری هیچ ماژولی ندارید، اما گاهی اوقات این امر ضروری است.
بنابراین چه ماژول هایی در حال حاضر بر روی رایانه شما بارگذاری شده اند و چگونه آنها را بارگیری و تخلیه کنیم؟ خوشبختانه ما مجموعه کاملی از ابزارها برای رسیدگی به این موضوع داریم. همانطور که ممکن است حدس بزنید، ابزار فهرست کردن ماژول ها lsmod(8) است.
علاوه بر اینکه به شما نشان میدهد چه ماژولهایی بارگذاری شدهاند، اندازه هر ماژول را نشان میدهد و به شما میگوید چه ماژولهای دیگری از آن استفاده میکنند.
دو برنامه برای بارگذاری ماژول ها وجود دارد: insmod(8) و modprobe(8). هر دو ماژول ها را بارگیری می کنند و هر گونه خطا را گزارش می کنند (مانند بارگیری ماژول برای دستگاهی که در سیستم شما وجود ندارد)، اما modprobe ترجیح داده می شود زیرا می تواند هر وابستگی ماژول را بارگیری کند. استفاده از هر کدام ساده است.
حذف ماژول ها می تواند یک فرآیند دشوار باشد و یک بار دیگر ما دو برنامه برای حذف آنها داریم: rmmod(8) و modprobe. برای حذف یک ماژول با modprobe، باید از آرگومان [-r] استفاده کنید.