مدیریت نرمافزار در لینوکس یکی از مفاهیم اساسی و مهم است که به کاربران امکان نصب، بهروزرسانی و حذف نرمافزارها را میدهد. این فرآیند با استفاده از سیستمهای مدیریت پکیج انجام میشود که وظیفه شناسایی، دریافت و نصب پکیجها و وابستگیهای آنها را بر عهده دارند. هر توزیع لینوکسی از ابزارهای مدیریتی خاص خود بهره میبرد، مانند apt در توزیعهای مبتنی بر Debian، یا yum و dnf در توزیعهای مبتنی بر Red Hat. علاوه بر روشهای خودکار، کاربران میتوانند نرمافزارها را به صورت دستی نصب کنند یا حتی از سورس کد آنها برای کامپایل و اجرا استفاده کنند. در این مقاله، با انواع سیستمهای مدیریت پکیج و روشهای مختلف نصب نرمافزارها در لینوکس آشنا خواهید شد.
سیستمهای مدیریت پکیج (Package Managers) در لینوکس:
می توانند به راحتی و به صورت خودکار تمام وابستگیهای موردنیاز یک نرمافزار را از مخازن آنلاین شناسایی، دریافت و نصب نمایند.
پارامترهای مهم در سیستمهای مدیریت پکیج:
۱- بستههای نرمافزاری (Software Packages):
در لینوکس، نرمافزارها به صورت Packageهای نرمافزاری ارائه میشوند، که حاوی فایلهای باینری، کتابخانهها و اطلاعات لازم برای نصب و اجرای نرمافزار هستند.
۲- مدیریت وابستگیها (Dependency Management):
سیستمهای مدیریت Package به طور خودکار وابستگیها و کتابخانه هایی را که برای اجرا و نصب Packageهای لینوکسی نیاز هست را شناسایی، دانلود و نصب میکنند.
۳-مخازن نرمافزاری (Repositories):
معمولا پکیج ها و وابستگی های آنها در مخازن آنلاین ذخیره میشوند.
روشهای نصب و مدیریت نرمافزار در لینوکس
۱-نصب اتوماتیک Package با استفاده از سیستم مدیریت پکیج:
هر سیستم عامل با توجه به نوع توزیع خود، سیستم های مدیریت پکیج مخصوصی دارند که فایل های مورد نیاز اکثر پکیج های رسمی در مخازن آنلاین یا مخازن محلی تعریفشده ذخیره می باشد.
سیستم مدیریت پکیج به صورت خودکار: بسته ها و وابستگیهای آن را شناسایی، دانلود و نصب میکند، همچنین آپدیت و آپگرید پکیج ها را نیز به راحتی انجام میدهد.
انواع سیستم های مدیریت پکیج در توزیع های مختلف لینوکس:
۱. apt: سیستم مدیریت Packageهای مبتنی بر Debian مانند: Ubuntu و Debian:
دستورات رایج apt:
-
-
- نصب نرمافزار:
-
sudo apt install package-name
-
-
- حذف نرمافزار:
-
sudo apt remove package-name
-
-
- بهروزرسانی مخازن: سورس Repositoryهای سیستم عامل های مبتنی بر Debian در فایل etc/apt/sources.list/ قرار دارد. با آپدیت کردن سیستم مدیریت پکیج (apt update)، تمام لینکها و منابع و وابستگی ها پکیج های نصب شده آپدیت خواهند شد.
-
sudo apt update
-
-
- ارتقاء سیستم:
-
sudo apt upgrade
۲. سیستم مدیریت Packageهای مبتنی بر Red Hat:
-
-
yam: سیستم مدیریت پکیج های مبتنی بر Red Hat برای توزیعهایی مانند: CentOS و Fedora
-
dnf: نسخه پیشرفتهتر yam است که در توزیعهای مدرنتر Fedora و Red Hat استفاده میشود. DNF بهبودهایی در سرعت، مدیریت وابستگیها و استفاده از حافظه ارائه میدهد.
-
تفاوتهای dnf با yam:
-
-
- سرعت بیشتر: dnf به دلیل استفاده از الگوریتمهای جدید، بستهها را سریعتر مدیریت میکند.
- مدیریت بهتر وابستگیها: dnf قابلیتهای بهتری برای حل مشکلات پیچیده وابستگی دارد.
- استفاده از Python 3: برخلاف yam که از Python 2 استفاده میکرد.
- هیچ تفاوتی در دستورات ندارند فقط به جای yam از dnf استفاده میشود و بلعکس.
-
دستورات رایج yam و dnf:
-
-
- نصب نرمافزار: sudo yum install package-name
-
-
-
- با DNF sudo dnf install package-name
-
-
-
- حذف نرمافزار: sudo yum remove package-name
-
-
-
- بهروزرسانی سیستم: sudo yum update
-
۳. pacman مدیریت پکیج های Arch Linux برای توزیعهایی مثل Arch Linux و Manjaro.
دستورات رایج pacman:
-
- نصب نرمافزار: sudo pacman -S package-name
-
- حذف نرمافزار: sudo pacman -R package-name
-
- بهروزرسانی سیستم: sudo pacman -Syu
۲. نصب دستی پکیج با وارد کردن آدرس مخازن رسمی یا Repository:
در یک سری از موارد نیاز است که پکیج ها را به صورت دستی نصب نماییم، که وابستگیها همراه خود پکیج نصب نمی شوند و باید جداگانه نصب شوند، مانند:
۱- نسخهای خاصی از یک پکیج را که در مخازن موجود نیست.
۲- وقتی فایل نصب پکیج را به صورت دستی دانلود کردهاید.
۳- برای تست پکیج های سفارشی یا توسعه یافته.
مراحل نصب دستی پکیج در لینوکس:
-
- یافتن Package با توجه به سیستم عامل و ورژن آن و معماری:
- دستور cat /etc/os-release: برای پیدا کردن سیستم عامل و ورژن آن.
-
- دستور lscpu: برای یافتن معماری cpu.
-
- سرچ پکیج مورد نظر همراه سیستم عامل، ورژن و معماری cpu:
وارد یکی از سایت ها شده و بخش Download را پیدا کرده و لینک مقابل Binary Package را کپی نمی نماییم.
مثال: ncdu package ubuntu 22 amd x86
-
- دستور wget:
مخفف “Web GET” برای دانلود یک پکیج تحت وب، لینک Binary Package را که کپی نموده ایم بعد از دستور wget وارد می کنیم تا آدرس پکیج در Repository لینوکس ذخیره گردد.
-
-
نصب پکیج دانلود شده:
-
-
- نصب فایل deb.=> برای توزیع های Debian Base مانند: دبیان و اوبونتو:
sudo dpkg -i package-name.deb
-
- نصب فایل rpm. برای توزیع های Red Hat Base مانند: Centos و Fedora:
sudo rpm -i package-name.rpm
-
- دستور dpkg -i:
مخفف ‘Debian Package-install’ برای Install کردن Package که فایل های آن در Repository دانلود شده یا از قبل موجود بعد از دستور dpkg -i نام پکیج را وارد میکنیم.
sudo dpkg -i package-name
sudo dpkg -i package-name
-
- دستور dpkg -I | grep:
-
- دستور dpkg -i: برای نمایش پکیج های نصب شده است.
برای این بتونیم پکیج خاصی را پیدا کنیم از دستور gerp به صورت فیلتر استفاده میکنیم، که بعد از دستور dpkg -i یک علامت pipe “|” و بعد دستور gerp و در انتها نام پکیج را وارد میکنیم تا خروجی dpkg -i به دستور gerp داده شود و فقط پکیج مورد نمایش داده شود.
-
- dpkg -i | grep package-name: برای اینکه مطمئن شویم پکیج نصب شده یا نه از این دستور استفاده میکنیم.
۳. کامپایل از سورس (Source Code):
- این روش برای کاربران پیشرفتهتر است که میخواهند کنترل بیشتری روی نرمافزار داشته باشند.
- مراحل:
- دانلود سورس نرمافزار:
- استخراج فایل فشرده: tar -xvf package-name.tar.gz
- کامپایل و نصب:
./configure
make
sudo make install
sudo yum update
۴.حذف پکیج ها در لینوکس:
- rm: برای پاک کردن یک فایل بعد از دستور rm نام فایل را وارد میکنیم.
- rm -r: برای پاک کردن دایرکتوری همراه همه محتویات.
- apt remove package-name: برای پاک کردن پکیج.
- sudo apt purge package-name: برای حذف کامل پکیج به همراه فایلهای پیکربندی
نتیجهگیری:
مدیریت نرمافزار در لینوکس، با ابزارهای قدرتمندی که ارائه میدهد، به کاربران این امکان را میدهد تا به سادگی و با کمترین دغدغه نرمافزارهای مورد نیاز خود را نصب و مدیریت کنند. از سیستمهای خودکار مانند apt، yum و pacman گرفته تا روشهای دستی و کامپایل از سورس، هر روش مزایا و کاربردهای خاص خود را دارد. انتخاب بهترین ابزار یا روش به نیازها، تجربه و نوع توزیع مورد استفاده بستگی دارد. آگاهی از این ابزارها و تفاوتهای آنها میتواند تجربه کاربری بهتری را برای افراد مبتدی و حرفهای فراهم کند. در نهایت، درک عمیق از مدیریت نرمافزارها در لینوکس، کلیدی برای بهرهوری بیشتر از این سیستمعامل قدرتمند است.