برای نصب نرمافزار تو سیستمهای عامل گنو/لینوکسی ما یه تفاوت عمده با ویندوز داریم. تو ویندوز چون نرمافزارها منایع رو به اشتراک نمیذارن هرکی برای خودش باید تمام منایع رو تحت یک فایل exe در بیاره و تحویل بده ولی توی گنو/لینوکس اینطور نیست، بدلیل اشتراک منایع، دیگه کسی که برنامهی X رو مینویسه فرض میکنه که مثلا کتابخونهی Y، Z , ... روی سیستم نصب هست و اون کتابخونهها رو به عنوان dependency (وابستگی) مشخص میکنه، یعنی به به عبارت دیگه میگه که «تو باید حتما اون وابستگیهایی که من مشخص کردم رو از هر راهی بلد نصب داشته باشی (مخزن، نصب دستی، ...) تا نرمافزار من اجرا بشه». حالا اون وابستگیها میتونه توسط اون پروژه تولید شده باشه یا توسط کنونیکال یا ...
خب حالا برای اینکه مردم سردرگم نشن، سیستمهای گنو/لینوکسی چیزی دارن به اسم «مخزن» (repository) که همهی نرمافزارها و وابستگیهاش رو اونجا نگهداری میکنن. این مخزنها از طریق یه شبکهی بزرگ از کامپیوترهای به هم متصل (اینترنت) قابل دسترسی هست.
فدورا اینجا میذاره بستهها شو:
https://apps.fedoraproject.org/packagesاوبونتو اینجا:
http://packages.ubuntu.comخب شما برای نصب از طریق مخرن، هر بار به اینترنت وصل میشید. و حالا اینکه چه کتابخونهها و برنامههایی پیشنیاز برنامهی X هستند رو چیزی به اسم «مدیر بسته» (package manager) تشخیص میده. مدیر بستهی فدورا yum هست و مدیر بستهی اوبونتو dpkg. این مدیر بستهها به صورت کامند هستند ولی برای اونها یک سری «رابط گرافیکی کاربر» (GUI) هم نوشته شده. تو فدورا PackageKit و yumex و ... و توی اوبونتو Ubuntu Software Center و synaptic و ... هست. خب حالا سوال پیشمیاد که این مدیر بستهها از کجا میفهمن که چی وابسته به چی هست؟ برای اینکار باید نرمافزار و کتابخونهها رو به صورت بستهبندی شده (packaged) در بیاریم. تو فدورا بستهها دارای پسوند RPM هستند و تو اوبونتو DEB.
اون بستهها رو اگه روش کلیک راست کنی میتونی اونها را استخراح (extract) کنی. مثلا تو بستههای deb، وقتی که استخراجش کردی اگه بری تو پوشهی DEBIAN و بعد پروندهی control رو باز کنی یه جاش نوشته depends، که به طور مثال برای ekiga این هست (یعنی این بستهها حتما باید قبلش نصب باشن)
Depends: gconf-service, libatk1.0-0 (>= 1.12.4), libavahi-client3 (>= 0.6.16), libavahi-common3 (>= 0.6.16), libavahi-glib1 (>= 0.6.16), libboost-signals1.49.0 (>= 1.49.0-1), libc6 (>= 2.14), libdbus-glib-1-2 (>= 0.88), libebook-1.2-14 (>= 3.5.91), libedataserver-1.2-17 (>= 3.5.91), libgcc1 (>= 1:4.1.1), libgconf-2-4 (>= 2.31.1), libgdk-pixbuf2.0-0 (>= 2.22.0), libglib2.0-0 (>= 2.24.0), libgtk2.0-0 (>= 2.24.0), libldap-2.4-2 (>= 2.4.7), libloudmouth1-0 (>= 1.3.3), libnotify4 (>= 0.7.0), libopal3.10.9, libpango1.0-0 (>= 1.14.0), libpt2.10.9, libsasl2-2 (>= 2.1.24), libstdc++6 (>= 4.6), libx11-6, libxext6, libxml2 (>= 2.7.4), libxv1, gconf2 (>= 2.28.1-2), gnome-icon-theme
خب یعنی برای باید علاوه بر خود برنامه، این وابستگیها رو هم دانلود کنی
که باز ممکنه هر کدام از بستههای اینجا خودشون وابسته به یه چندتا برنامهی دیگه باشن
خلاصه «گاو نر میخواهد و مرد کهن»
اگه خود برنامه و همهی وابستگیهاشو دانلود کردی
اون وقتی همشو بذار تو پوشهی مثلا prog تو home اون وقتی با دستور زیر نصبش کن:
cd prog
su
rpm -i *.rpm