کارگاه سیستم عامل
درس متنی
جلسه 7ساختار یک بسته نرمافزاری لینوکس، مدیریت بستههای نرمافزار لینوکس.
خلاصه نکات کلیدی
بستههای نرمافزاری روشی استاندارد برای توزیع و مدیریت نرمافزار در لینوکس هستند.
فرمتهای اصلی شامل .deb (برای دبیان/اوبونتو) و .rpm (برای ردهت/فدورا) هستند.
مدیران بسته (مانند apt و dnf) وابستگیها را مدیریت کرده و نصب/حذف نرمافزار را آسان میکنند.
مخازن نرمافزاری منابع قابل اعتماد برای دریافت بستهها هستند.
آشنایی با ابزارهای خط فرمان برای مدیریت مؤثر سیستم ضروری است.
امکان ساخت بستههای سفارشی برای توزیع نرمافزارهای خاص وجود دارد.
مقدمهای بر بستههای نرمافزاری لینوکس
- تیتر ۱.۱: چرا لینوکس از بستهبندی نرمافزار استفاده میکند؟
- مزایای مدیریت بستهبندی: نصب آسان، حذف تمیز، مدیریت وابستگیها، بهروزرسانیها.
- تیتر ۱.۲: ساختار کلی یک بسته نرمافزاری
- فایلهای اجرایی (Binaries)
- کتابخانهها (Libraries)
- فایلهای پیکربندی (Configuration Files)
- مستندات (Documentation)
- اسکریپتهای پیش/پس از نصب (Pre/Post Install Scripts)
- مثال: نگاهی به ساختار یک بسته ساده مثل
htopیاnano.
فصل ۲: فرمتهای رایج بستهبندی در لینوکس
- تیتر ۲.۱: فرمت
.deb(Debian/Ubuntu) - معرفی
dpkgبه عنوان ابزار پایه. - آشنایی با ابزارهای سطح بالاتر مانند
aptوapt-get. - ساختار فایلهای
.deb(ar archive, control.tar.gz, data.tar.gz). - تیتر ۲.۲: فرمت
.rpm(Red Hat/Fedora/CentOS) - معرفی
rpmبه عنوان ابزار پایه. - آشنایی با ابزارهای سطح بالاتر مانند
yumوdnf. - ساختار فایلهای
.rpm. - تیتر ۲.۳: فرمتهای دیگر (اختیاری)
tar.gz/tar.bz2(بستههای سورس یا باینری خام)AppImage,Snap,Flatpak(فرمتهای مدرن و مستقل)- مثال: مقایسه دستورات نصب و حذف بسته بین
aptوdnf.
فصل ۳: مدیریت وابستگیها (Dependency Management)
- تیتر ۳.۱: مفهوم وابستگی در نرمافزار
- چرا یک نرمافزار به نرمافزارهای دیگر نیاز دارد؟ (کتابخانهها، ابزارهای دیگر)
- تیتر ۳.۲: چالشهای مدیریت دستی وابستگیها
- تیتر ۳.۳: نقش مدیران بسته در حل مشکل وابستگیها
- جستجو در مخازن (Repositories)
- دانلود خودکار بستههای مورد نیاز
- حل تداخل وابستگیها
- مثال: فرض کنید میخواهید
nginxنصب کنید؛ مدیر بسته به طور خودکارlibpcreوzlibرا نیز نصب میکند.
فصل ۴: مخازن نرمافزاری (Software Repositories)
- تیتر ۴.۱: مخازن چیستند و چرا مهم هستند؟
- منابع معتبر و امن برای دریافت نرمافزار.
- نقش مدیران بسته در دسترسی به مخازن.
- تیتر ۴.۲: انواع مخازن
- مخازن رسمی توزیع (Main, Universe, Multiverse, Restricted)
- مخازن شخص ثالث (PPAs در اوبونتو، Copr در فدورا)
- مخازن محلی (Local Repositories)
- تیتر ۴.۳: اضافه کردن و مدیریت مخازن
- مثال: اضافه کردن یک PPA برای نصب نسخه جدیدتر یک نرمافزار در اوبونتو.
فصل ۵: ابزارهای خط فرمان برای مدیریت بسته
- تیتر ۵.۱: ابزارهای مبتنی بر
dpkg/apt(Debian/Ubuntu) apt update/apt upgradeapt install <package>apt remove <package>/apt purge <package>apt search <query>apt show <package>- تیتر ۵.۲: ابزارهای مبتنی بر
rpm/yum/dnf(Red Hat/Fedora) dnf update/dnf upgradednf install <package>dnf remove <package>dnf search <query>dnf info <package>- تیتر ۵.۳: جستجو و مشاهده اطلاعات بسته
- مثال: نمایش نحوه یافتن یک بسته، نصب آن و سپس حذف کامل آن با تمام فایلهای پیکربندی.
فصل ۶: ساخت بستههای نرمافزاری (مقدماتی)
- تیتر ۶.۱: چرا نیاز به ساخت بسته داریم؟
- توزیع نرمافزارهای اختصاصی.
- کنترل دقیقتر بر فرآیند نصب.
- تیتر ۶.۲: ابزارهای ساخت بسته
checkinstall(برای بستههای سادهتر)dpkg-buildpackage(برای فرمت.deb)rpmbuild(برای فرمت.rpm)- تیتر ۶.۳: مراحل کلی ساخت یک بسته (مثال ساده)
- آمادهسازی سورس کد.
- ایجاد فایل کنترل (
debian/controlیا.specفایل). - کامپایل و نصب در یک دایرکتوری موقت.
- بستهبندی نهایی.
- مثال: ساخت یک بسته
.debساده برای یک اسکریپت پایتون.
خلاصه نکات کلیدی
- بستههای نرمافزاری روشی استاندارد برای توزیع و مدیریت نرمافزار در لینوکس هستند.
- فرمتهای اصلی شامل
.deb(برای دبیان/اوبونتو) و.rpm(برای ردهت/فدورا) هستند. - مدیران بسته (مانند
aptوdnf) وابستگیها را مدیریت کرده و نصب/حذف نرمافزار را آسان میکنند. - مخازن نرمافزاری منابع قابل اعتماد برای دریافت بستهها هستند.
- آشنایی با ابزارهای خط فرمان برای مدیریت مؤثر سیستم ضروری است.
- امکان ساخت بستههای سفارشی برای توزیع نرمافزارهای خاص وجود دارد.
تمرینهای پایان فصل
- فصل ۱: ساختار پوشهای یک نرمافزار نصب شده (مثلاً
firefox) را در سیستم خود بررسی کنید. پوشههای اصلی مربوط به فایلهای اجرایی، کتابخانهها و فایلهای پیکربندی را شناسایی کنید. - فصل ۲: با استفاده از مدیر بسته توزیع خود (مثلاً
aptیاdnf)، اطلاعات مربوط به بستهhtopرا مشاهده کنید. سعی کنید بفهمید این بسته به چه بستههای دیگری وابسته است. - فصل ۳ & ۵: یک بسته نرمافزاری را که فکر میکنید دیگر به آن نیاز ندارید، به طور کامل حذف کنید (همراه با فایلهای پیکربندی). سپس دوباره آن را نصب کنید.
- فصل ۴: لیستی از تمام مخازنی که در حال حاضر در سیستم خود فعال هستند را نمایش دهید. (دستور مربوطه بسته به توزیع متفاوت است، مثلاً
apt repolistیا بررسی فایلهای/etc/yum.repos.d/). - فصل ۵: یک بسته نرمافزاری را که به طور پیشفرض نصب نشده است، جستجو کنید (مثلاً
neofetch) و سپس آن را نصب کنید. - فصل ۶ (پیشرفته): یک اسکریپت ساده بنویسید (مثلاً یک اسکریپت
echo "Hello World!") و سعی کنید با استفاده ازcheckinstallآن را به صورت یک بسته.debیا.rpmدرآورید.
دروس متنی
#1
جلسه 1 نرم افزارهای متن باز )Source Open ،)معرفی سیستم عامل لینوکس،
#2
جلسه 2معرفی انواع محیط های کاربری گرافیکی و خط فرمان لینوکس و
#3
جلسه 3 معرفی انواع محیط های کاربری گرافیکی و خط فرمان لینوکس و نحوه اتصال و کار با آنها
#4
جلسه 4 بررسی نیازهای سخت افزاری سخت افزار برای نصب لینوکس و نصب و راه اندازی
#5
جلسه 5 معرفی محیط های خط فرمان لینوکس، نحوه نامگذاری محیطهای خط فرمان،
#6
جلسه 6آشنایی با نرمافزارهای ویرایشگر متن مانند: vim ،nano و ... کار با فرامین پردازش متن
#7
جلسه 7ساختار یک بسته نرمافزاری لینوکس، مدیریت بستههای نرمافزار لینوکس.
#8
جلسه 8 مدیریت پراسس ها و انواع پراسس ها در لینوکس،
#9
جلسه 9 مجوزهای فایل ها و نحوه کار با فرامین chmod ،umask ،chattr
#10
جلسه 10فرامین ایجاد، فرمت و مدیریت پارتیشن، مانند: df ،du ،mkfs ،mount
#11
جلسه 11مدیریت کاربران و فرامین groupadd ،passwd ،useradd
#12
جلسه 12 فرامین پشتیبان گیری و فشرده سازی مانند: cpio ،tar ،zip ،gzip ،bzip و ...
#13
جلسه 13 نحوه پیکربندی کارت شبکه در لینوکس و کار با فرمان ifconfig ،ping
مشاهده دروس کامل
بررسی صفحه یادگیری دوره