منطقِ بسته ها در این کتاب

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

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

  • Acl

این بسته شامل ابزارهاییه که برای مدیریت لیست های دسترسی(Access Control Lists) -که برای تعریف کردن دسترسی های ریزتر برای فایل‌ها و پوشه هاست- بکار میره.

  • Attr

این بسته شامل برنامه‌هایی برای مدیریت ویژگی‌های فایل‌های سیستمیه

  • Autoconf

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

  • Automake

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

  • Bash

این بسته یکی از الزامات هسته ی LSB هست که یک رابط Bourn Shell برای سیستم میسازه. این بسته به این دلیل از بین بقیه ی بسته های shell انتخاب شده که متداوله و قابلیت‌های زیادی رو – با توجه به کارکرد ساده ی شل- ارائه میده.

  • Bc

این بسته یک زبان برای پردازش اعداد با دقت دلخواه ارائه میده. این بسته برای ساخت کرنل لینوکس لازمه.

  • Binutils

این بسته شامل یک پیوند دهنده(linker)، یک سرهم کننده(assembler) و ابزار های دیگه ایه که برای رسیدگی به فایل‌ها استفاده میشه. برنامه‌های درون این بسته برای کامپایل کردن بیشترِ بسته های LFS و غیره نیازه.

  • Bison

این بسته شامل ورژن گنوییِ yacc (همونYet Another Compiler Compiler) هست که برای ساخت بسیاری از برنامه‌های LFS کاربرد داره.

  • Bzip2

این بسته شامل برنامه هاییه که برای فشرده کردن و یا خارج کردن از حالتِ فشرده فایل‌ها کاربرد دارن. این بسته برای بسیاری از بسته های LFS ای از حالت فشرده نیاز میشه.

  • Check

این بسته ایه که بررسی خطاها رو برای بقیه برنامه‌ها انجام میده و فقط توی toolchain موقت نصب میشه.

  • Coreutils

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

  • DejaGNU

این بسته یه framework داره که برای تست کردن بقیه ی برنامه‌ها استفاده میشه و توی toolchain موقت نصب میشه.

  • Diffutils

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

  • E2fsprogs

این بسته شامل ابزارهایی برای رسیدگی به فایل‌های سیستمی از نوع ext2 ، ext3 و ext4 هست. این فایل‌های سیستمی متداول ترین و قابل اطمینان ترین نوع فایل‌های سیستمی ای هستن که لینوکس پشتیبانی میکنه.

  • Eudev

این بسته یک مدیریت کننده دستگاه (device manager) هست. این بسته به صورت پویا ورودی های موجود در پوشه ی dev/ رو به صورت دستگاه‌های اضافه و یا حذف شده کنترل میکنه.

  • Expat

این بسته شامل کتابخونه های نسبتاً کوچیکی برای تجزیه ی XML داره که یکی از ملزومات ماژول XML::Parser پِرل(Perl) هست.

  • Expect

این بسته شامل برنامه‌هاییه که ارتباط میان برنامه‌های تعاملی رو برقرار میکنه. بیشتر برای تست کردن بسته های دیگه استفاده میشه و فقط روی toolchain موقت نصب میشه.

  • File

این بسته شامل ابزار هایی برای فهمیدن نوع فایل هاست و اندکی از بسته ها برای ساخته شدن بهش نیاز دارن.

  • Findutils

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

  • Flex

این بسته شامل ابزارهاییه که برای تولید برنامه‌های یابنده الگو در متن استفاده میشن. این بسته، نسخه ی گنوئیِ lex هست و برای ساخت بسیاری از بسته های LFS لازمه.

  • Gawk

این بسته برنامه‌هایی داره که برای دستکاری فایل‌های متنی بکار میان. این بسته، ورژن گنوئی awk هست و برای تولید بسیاری از بسته های دیگه نیازه.

  • Gcc

این بسته، مجموعه ی کامپایلر های گنوعه. این بسته شامل کامپایلر های C و ++C هست که مثل بسیاری از کامپایلر های دیگه، توسط LFS ساخته نمیشن.

  • GDBM

این بسته شامل کتاب خونه های مدیریتِ دیتابیسِ گنوعه و توسط یکی دیگه از بسته های LFS ای به اسم Man-DB استفاده میشه.

  • Gettext

این بسته ابزاراها و کتابخونه هایی داره که برای جهانی سازی(internationalization) و محلی سازی (localization) بسته های دیگه استفاده میشن.

  • Glibc

این بسته شامل کتاب خونه های اصلیِ C هست و برنامه‌های لینوکس بدون این بسته اجرا نمیشن.

  • GMP

این بسته کتابخونه های ریاضیاتی ای داره که توابع مفیدی برای محاسبه های با دقت دلخواه ارائه میدن. این بسته برای ساخت Gcc نیازه.

  • Gperf

این بسته برنامه‌هایی داره که توابع باحالی برای ساخت یک هَش از یک کلید دارن و برای بسته یEudev ضروری ان

  • Grep

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

  • Groff

این بسته شامل برنامه‌هایی برای پردازش و فرمت دهی متن هاست. یکی از مهم‌ترین وظایف این برنامه‌ها قالب سازی صفحه های راهنما(man pages)--- هست.

  • GRUB

این بسته(Grand Unified Boot Loader) یکی از چندین بوت لودر قابل استفاده ست که بین بقیه ی بوت لودر ها، منعطف ترینه.

  • Gzip

این بسته شامل برنامه‌هاییه که برای فشرده‌سازی و خارج کردن فایل‌ها از حالت فشرده کاربرد دارن. این بسته برای خارج کردن بسیاری از بسته ها از حالت فشرده نیاز میشه.

  • lana-etc

این بسته داده‌هایی برای سرویس ها و پروتکل ها ارائه میده و برای انجام درستِ کار های شبکه ای، نیازه.

  • Inetutils

این بسته شامل برنامه‌های ابتدایی ای برای مدیریت شبکه ست.

  • Intltool

این بسته ابزار هایی داره که برای استخراج رشته‌های قابل ترجمه از فایل‌های منبع استفاده میشن.

  • IProute2

این بسته هم برنامه‌هایی برای انجام کار های شبکه ایِ ساده و یا پیچیده ی آی‌پی نسخه ۴ و ۶ داره. این بسته از بین بسته های شبکه ایِ رایج دیگه (مثل net-tools) برای به دلیل امکاناتی که برای آی‌پی نسخه ۶ میداد انتخاب شد.

  • Kbd

این بسته شامل فایل‌های جداول-کلیدی(key-table) هست. ابزار های مربوط به کیبورد های غیر انگلیسی، و فونت‌های کنسول ها از این قبیل هستن.

  • Kmod

این بسته برنامه‌هایی داره که برای مدیریت ماژول های کرنل نیاز میشن.

  • Less

این بسته یه نمایش دهنده ی باحال برای فایل‌های متنیه که به شما امکان میده توی متن بالا و پایین برین. همچنین این بسته برای مشاهده ی صفحه های راهنمای داخل Man-DB استفاده میشه.

  • Libcap

این بسته رابط های فضاییِ(user-space) کاربر رو برای قابلیت----- POSIX 1003.1e موجود در کرنل پیاده‌سازی میکنه.

  • Libelf

پروژه ی elfutils کتابخونه ها و ابزار هایی برای فایل‌های ELF و داده‌های از نوع DWARF ارائه میده. بسیاری از ابزار های این بسته در داخل بسته های دیگه موجود هستن اما کتابخونه های این بسته برای ساخت کرنلِ لینوکس با استفاده از تنظیمات پیش‌فرض لازمه.

  • Libffi

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

  • Libpipeline

این بسته شامل کتاب خونه هایی برای دستکاری راحت‌تر و منعطف ترِ pipeline های زیرپروسه هاست(subprocesses). این بسته برای بسته ی Man-DB لازمه.

  • Libtool

این بسته شامل کتابخونه های عمومیِ اسکریپت های پشتیبان گنوئه. ××××××××. این بسته برای مجموعه آزمون های بسته های دیگه ی LFS لازم میشه.

  • Linux Kernel

این بسته، سیستم عامله. این همون «لینوکس» توی محیط گنو/لینوکس هست.

  • M4

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

  • Make

این بسته شامل برنامه‌هایی برای ساخت بسته هاست و تقریباً همه ی بسته های موجود در LFS نیازمند بسته ی Make هستن.

  • Man-DB

این بسته برای پیدا کردن و مشاهده ی صفحه های راهنماست. این بسته به دلیل ویژگی‌های خفن محلی سازیش، به جای بسته ی man انتخاب شد. خودِ این بسته برنامه ی man رو ارائه میده.

  • Meson

این بسته یه ابزار نرم افزاری برای اتوماتیک کردن فرآیند ساخت نرم‌افزار هاست. هدف اصلی Meson اینه که زمانی که توسعه‌دهنده ها برای تنظیم سیستم ساخت‌شون استفاده میکنن کم بشه.

  • MPC

این بسته دارای توابعی برای کار با اعدادِ مختلط هست و Gcc بهش نیاز داره.

  • MPFR

این بسته شامل توابعی برای محاسبات با دقت چندگانه ست و Gcc بهش نیاز داره.

  • Ninja

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

  • Ncurses

این بسته کتابخونه هایی مستقل از ترمینال داره که برای مدیریت نمایش حروف روی صفحه استفاده میشن. معمولاً برای اشاره گرهاش توی سیستم‌هایی که مِنو ارائه میدن کاربرد داره و توسط تعدادی از بسته های LFS استفاده میشه.

  • Openssl

این بسته ابزارهای مدیریتی و کتابخونه های مربوط به کارای رمزنگاری رو داره که توابع مربوط به رمزنگاری ها رو در اختیار بسته های دیگه، مثل کرنل لینوکس، قرار میده.

  • Patch

این بسته شامل برنامه‌هایی برای اصلاح و یا ساخت فایل‌ها با بکار بردن وصله هایی که معمولاً توسط برنامه یdiff ساخته شدن میشه. این بسته در فرآیند ساخت بسیاری از بسته های LFS ای نیازه.

  • Perl

این بسته یه مفسر برای زبان پِرل هست و برای نصب و بررسی بسیاری از بسته های LFS ای نیاز میشه.

  • Pkg-config

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

  • Procps-NG

این بسته برای مانیتور کردن پروسه هاست. برنامه‌های درون این بسته برای مدیریت سیستم خیلی مفیدن و همچنین توسط اسکریپت های بوت توی LFS مورد استفاده قرار میگیرن.

  • Psmisc

این بسته شامل برنامه هاییه که برای نمایش اطلاعاتِ پروسه های درحال اجرا استفاده میشن و برای مدیریت سیستم خیلی مفیدن.

  • Python3

این بسته یه زبانِ برنامه نویسیِ مفسری ارائه میده که فلسفه ی طراحیش افزایش خوانایی کد هاست.

  • Readlin

این بسته مجموعه‌ای از کتابخونه هارو داره که ویژگی‌هایی مثل ویرایش کردن و تاریخچه ی دستورات رو به خط فرمان اضافه میکنه. این بسته توسط Bash استفاده میشه.

  • Sed

این بسته این امکان رو میده که بتونیم یک متن رو بدون اینکه توی یه ویرایشگر بازش کنیم، ویرایش کنیم. اغلب اسکریپت های تنظیم کننده در بسته های LFS ای از این بسته استفاده میکنن.

  • Shadow

این بسته شامل برنامه هاییه که برای مدیریت امنِ گذرواژه ها استفاده میشن.

  • Sysklogd

این بسته شامل برنامه‌هایی برای ضبط پیام‌هایی هست که سیستم میفرسته(مثل همون پیام‌هایی که کرنل و یا پروسه ی دیمن در زمان وقوع یه اتفاق غیر عادی میفرستن).

  • Sysvinit

این بسته، برنامه ی آغازگر(init) رو در خودش داره. برنامه ی آغازگر، والد همه ی پروسه های یک سیستم لینوکسیه.

  • Tar

این بسته امکاناتی مثل آرشیو سازی و یا استخراج بسته های مورد استفاده در LFS رو به ما میده.

  • Tcl

این بسته (Tool Command Language) توی بسیاری از آزمون بسته ها مورد استفاده قرار میگیره و فقط توی toolchain موقت نصب میشه.

  • Textinfo

این بسته برای خوندن، نوشتن و تبدیل کردن صفحه های اطلاعاتی ئه. این بسته توی فرآیند نصب بسیاری از بسته های LFS استفاده میشه.

  • Util-linux

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

  • Vim

این بسته، یه ویرایشگره. این بسته به دلیل سازگاریش با ویرایشگر کلاسیک vi و قابلیت‌های خفنِ بسیارش انتخاب شد. ویرایشگر یه چیز کاملاً شخصی برای کاربر محسوب میشه و هرکسی میتونه از ویرایشگر مورد نظر خودش بجای vim استفاده کنه.

  • XML::Parse

این بسته یه ماژول پرله که به عنوان یه رابط برای Expat استفاده میشه.

  • XZ Utils

این بسته شامل برنامه‌هاییه که برای فشرده‌سازی و یا خارج کردن فایل‌ها از حالت فشرده استفاده میشن. این بسته بیشتر برای خارج کردن فایل‌هایی با فرمت XZ و یا LZMA از حالت فشرده استفاده میشه.

  • Zlib

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

Last updated