Product SiteDocumentation Site

فصل 7. حل مشکلات و یافتن اطلاعات مرتبط

7.1. منابع مستندات
7.1.1. صفحات راهنما
7.1.2. اسناد info
7.1.3. مستندات خاص
7.1.4. وبسایت‌ها
7.1.5. آموزش‌های (HOWTO)
7.2. فرآیندهای متداول
7.2.1. پیکربندی یک برنامه
7.2.2. نظارت بر فرآیندهای پس‌زمینه
7.2.3. درخواست راهنمایی در میلینگ لیست
7.2.4. گزارش باگ زمانی که مشکل بیش از اندازه دشوار باشد
برای یک مدیرسیستم، مهمترین توانایی شیوه مواجه با یک مشکل شناخته‌شده یا نشده است. این فصل به بررسی شیوه‌هایی می‌پردازد که امیدواریم شما را در مواجه به مشکلات پیش رو و چگونگی حل آن‌ها راهنمایی نماید.

7.1. منابع مستندات

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

7.1.1. صفحات راهنما

صفحات راهنما، با اینکه ظاهر مختصر و مفیدی دارند، شامل حجم زیادی از اطلاعات مورد نیاز می‌باشند. اکنون به بررسی دستور مورد نیاز جهت مشاهده آن‌ها می‌پردازیم. کافی است تایپ کنید man manual-page - صفحه راهنما معمولا با برنامه‌ای که مربوط به آن است نام یکسانی دارند. برای نمونه، به منظور آموختن گزینه‌های احتمالی دستور cp می‌توانید فرمان man cp را صادر کنید (بازگشت به مقدمات پوسته، مفسر خط فرمان را مشاهده کنید).
صفحات راهنما نه تنها به مستندسازی برنامه‌های قابل اجرا از خط فرمان می‌پردازند، بلکه فایل‌های پیکربندی، فراخوانی‌های سیستمی، توابع کتابخانه‌ای C و بسیاری موارد دیگر را نیز شامل می‌شوند. گاهی اوقات این اسامی با یکدیگر تداخل پیدا می‌کنند. برای نمونه، دستور read از پوسته هم نام با فراخوانی سیستمی read است. این دلیلی است که این صفحات راهنما به قسمت‌های شماره‌گذاری شده تقسیم گشته‌اند:
  1. دستوراتی که می‌توانند از طریق خط فرمان اجرا شوند؛
  2. فراخوانی‌های سیستمی (توابعی که توسط کرنل ارائه شده‌اند)؛
  3. توابع کتابخانه‌ای (توابعی که توسط کتابخانه‌‌های سیستمی ارائه شده‌اند)؛
  4. دستگاه‌ها (در سیستم‌های شبه-یونیکس، این‌ها فایل‌های مخصوصی هستند که معمولا در مسیر /dev/ قرار می‌گیرند)؛
  5. فایل‌های پیکربندی (قالب‌ها و قواعد)؛
  6. بازی‌ها؛
  7. مجموعه‌ای از ماکروها و استانداردها؛
  8. دستورات مرتبط با مدیریت سیستم؛
  9. روتین‌های کرنل.
این امکان وجود دارد که قسمت مشخصی از صفحه راهنما را درخواست کنید: جهت مشاهده مستندات مربوط به فراخوانی سیستمی read، تایپ می‌کنید man 2 read. زمانی که هیچ قسمتی مشخص نشده باشد، اولین قسمتی که راهنما به نام آن ثبت گردیده، نمایش داده می‌شود. بنابراین، اجرای دستور man shadow منجر به فراخوانی shadow(5) می‌گردد چرا که هیچ صفحه راهنمایی برای shadow در قسمت‌های ۱ تا ۴ وجود ندارد.
البته اگر نام دستورات را نیز نمی‌دانید، راهنما به کار شما نمی‌آید. این جایی است که دستور apropos کاربرد دارد، که به جستجو در میان صفحات راهنما می‌پردازد، یا به طور خاص در قسمت توضیح مختصر آن‌ها. هر صفحه راهنما با یک خط خلاصه آعاز می‌گردد. apropos فهرستی از صفحات راهنما را باز می‌گرداند که کلیدواژه مورد نظر در خلاصه آن‌ها موجود باشد. اگر به درستی آن‌ها را برگزینید، نام دستوری که به دنبال آن هستید را پیدا می‌کنید.

مثال 7.1. جستجوی cp با apropos

$ apropos "copy file"
cp (1)               - copy files and directories
cpio (1)             - copy files to and from archives
gvfs-copy (1)        - Copy files
gvfs-move (1)        - Copy files
hcopy (1)            - copy files from or to an HFS volume
install (1)          - copy files and set attributes
ntfscp (8)           - copy file to an NTFS volume.
دستور man تنها شیوه دسترسی به صفحات راهنما نیست، چرا که konqueror در KDE و yelp در GNOME نیز چنین قابلیتی را ارائه می‌دهند. همچنین یک رابط کاربری تحت‌وب نیز وجود دارد که توسط بسته man2html ارائه می‌شود که به شما امکان مشاهده صفحات راهنما داخل یک مرورگر وب را می‌دهد. در رایانه‌ای که این بسته نصب شده است، از این نشانی استفاده کنید:
این ابزار نیاز به یک وب‌سرور دارد. به همین دلیل آن را باید روی یکی از سرورهای خود نصب کنید: تمام کاربران شبکه محلی می‌توانند از امکانات آن بهره‌مند گردند (از جمله ماشین‌های غیر لینوکس) و این امکان نیز برای شما فراهم می‌شود که روی هر ماشین اقدام به نصب HTTP سرور نکنید. اگر سرور شما از شبکه‌های دیگری نیز قابل دسترس است، می‌توانید تنها به کاربران موجود در شبکه محلی خود اجازه استفاده از این سرویس را بدهید.

7.1.2. اسناد info

پروژه گنو برای اکثر برنامه‌های خود در قالب info راهنما نوشته است؛ این دلیلی است که اکثر صفحات راهنما به مستندات info نیز ارجاع می‌دهند. این قالب شامل مزیت‌هایی است اما برنامه‌ای که این اسناد با استفاده از آن مشاهده می‌شوند (که آن نیز info نامیده می‌شود) پیچیدگی‌های مربوط به خود را دارد. توصیه می‌شود که از pinfo به جای آن استفاده کنید (از بسته pinfo).
مستندات info دارای ساختاری سلسله‌مراتبی است، و اگر pinfo را بدون هیچ پارامتری فراخوانی کنید، به نمایش فهرستی از گره‌های موجود در سطح اول می‌پردازد. معمولا، گره‌ها هم نام با دستورات مرتبط با خود هستند.
با pinfo، پیمایش بین این گره‌ها با استفاده از کلیدهای جهت‌دار آسان می‌گردد. همچنین می‌توانید از یک مرورگر گرافیکی استفاده کنید، که رابط کاربری بهتری دارد. مجدد، konqueror و yelp در اینجا نیز کار می‌کنند؛ info2www نیز بک رابط کاربری تحت‌وب ارائه می‌دهد.
نکته اینکه سیستم info مناسب ترجمه نیست، بر خلاف سیستم صفحات man. اسناد info معمولا به زبان انگلیسی هستند. اگرچه، اگر با man درخواست برنامه info را بکنید که وجود ندارد، به صورت پیش‌فرض از صفحه man همان برنامه استفاده می‌کند که ممکن است ترجمه شده باشد.

7.1.3. مستندات خاص

هر بسته شامل مستندات مربوط به خود است. حتی برنامه‌هایی که کمترین میزان مستندات را شامل می‌شوند، فایل README دارند که برخی اطلاعات جالب و مهم را در بر می‌گیرد. این مستندات در مسیر /usr/share/doc/package/ نصب می‌شود (که package نام بسته را مشخص می‌کند). اگر مستندات به نسبت بزرگ و حجیم باشد، ممکن است در بسته برنامه قرار نگیرد، اما در بسته اختصاصی دیگری باشد که معمولا به صورت package-doc نامگذاری می‌شود. بسته اصلی معمولا به نصب بسته مستندات خود توصیه می‌کند تا بتوانید به راحتی از آن استفاده کنید.
دایرکتوری /usr/share/doc/package/ همچنین شامل برخی فایل‌های ارائه شده توسط دبیان است که به کامل شدن مستندات اصلی برنامه و بهنیه‌سازی‌های مربوط به آن کمک می‌کنند. فایل README.Debian شامل تمام تغییراتی است که قبل از پیوستن به پروژه دبیان مورد نیاز بودند. فایل changelog.Debian.gz به کاربر این امکان را می‌دهد تا فهرستی از تغییرات صورت گرفته روی بسته در گذر زمان را مشاهده کند: اینکه بدانید بین دو نسخه نصب شده با عملکردهای متفاوت چه اتفاقی افتاده است، بسیار ارزشمند است. در نهایت، گاهی اوقات یک فایل NEWS.Debian.gz نیز وجود دارد که به تغییرات بنیادین در برنامه اشاره می‌کند که ممکن است توجه مدیرسیستم را به خود جلب کند.

7.1.4. وبسایت‌ها

در اکثر موارد، نرم‌افزارهای آزاد دارای وبسایتی هستند که نه تنها موجب گسترش آن‌ها می‌شود بلکه جامعه کاربری آن را نیز در بر می‌گیرد. این سایت‌ها معمولا با اطلاعات مرتبط در قالب‌های گوناگون گردآوری می‌شوند: مستندات رسمی، پرسش‌های متداول، بایگانی فهرست ایمیل و .... مشکلاتی که ممکن است با آن‌ها روبه‌رو شوید معمولا عنوان بسیاری پرسش‌ها هستند؛ پرسش‌های متداول یا بایگانی ایمیل ممکن است پاسخ شما را بدهند. مهارت در استفاده از موتورهای جستجو سبب می‌شود که به راحتی مطالب مورد نیاز خود را پیدا کنید (با محدود کردن جستجو به دامنه اینترنتی یا زیردامنه برنامه مورد نظر خود). اگر جستجو منجر به تولید صفحات بسیار زیاد یا آنچه مورد نیازتان نیست بشود، می‌توانید کلیدواژه debian را برای محدود کردن آن بکار ببرید.
اگر نشانی وبسایت نرم‌افزار را نمی‌دانید، روش‌های مختلفی برای بدست آوردنش وجود دارد. ابتدا، بررسی کنید آیا فیلد Homepage در قسمت meta-information بسته وجود دارد یا خیر (apt-cache show package). همچنین، توضیحات مربوط به بسته ممکن است حاوی پیوند به وبسایت رسمی آن باشند. اگر نشانی پیدا نشد، به فایل /usr/share/doc/package/copyright نگاهی بیندازید. مدیربسته دبیان معمولا در این فایل اشاره می‌کند که سورس کد را از کجا بدست آورده است و معمولا همان وبسایتی است که شما به دنبال آن هستنید. اگر در این مرحله نیز جستجوی شما به جایی نرسید، به یک دایرکتوری نرم‌افزار آزاد مراجعه یا به طور مستقیم از موتورهای جستجو گوگل، داک‌داک‌گو، یاهو و ... استفاده کنید.
همچنین ممکن است بخواهید ویکی مربوط به دبیان را نیز بررسی کنید، یک وبسایت مشارکتی که حتی افراد تازه‌کار نیز می‌توانند از طریق مرورگرهای خود در آن پیشنهاداتی ارائه دهند. این وبسایت توسط توسعه‌دهندگانی که پروژه‌های خود را مشخص و طراحی می‌کنند استفاده می‌شود و توسط کاربرانی که برای این پروژه‌ها مستندات می‌نویسند اداره می‌گردد.

7.1.5. آموزش‌های (HOWTO)

HowTo یک سند راهنمای گام به گام جهت دسترسی به یک هدف از پیش تعیین شده می‌باشد. اهداف پوشش داده شده معمولا متفاوت هستند اما چگونگی کار فنی رسیدن به آن‌ها یکسان است: برای نمونه، تنظیمات مربوط به IP، پیکربندی RAID نرم‌افزاری، نصب یک سرور سامبا و مواردی از این دست. این اسناد معمولا تلاش می‌کنند به تمام مشکلات احتمالی حین پیاده‌سازی یک فناوری مرتبط بپردازند.
بسیاری از این آموزش‌ها توسط پروژه مستندسازی لینوکس (LDP) مدیریت می‌شوند، که وبسایت آن شامل تمام این اسناد است:
این اسناد باید با دقت بیشتری مطالعه شوند. چرا که معمولا چند سال از عمر آن‌ها می‌گذرد؛ اطلاعاتی که شامل می‌شوند معمولا غیرقابل استفاده هستند. این پدیده برای ترجمه‌های مربوط به آن‌ها نیز متداول است، چرا که بروزرسانی پس از انتشار یک نسخه جدید از آن‌ها، به صورت سیستماتیک مدیریت نمی‌شود. کارکردن در محیطی داوطلبانه و بدون محدودیت، این عواقب شیرین را نیز در پی دارد...