نصب نرم افزارها
مفهوم نصب برنامه
مفهوم مدیر بسته
نصب با رابط گرافیکی مدیر بسته
نصب با مدیر بسته در خط فرمان
نصب از طریق کامپایل برنامه
نکته اصلی در این روش اینه که معمولا نباید استفاده بشه (: در این روش سیستم عامل و مدیر بسته، چیزی از برنامههای نصب شده نمیداند و نمیتواند آنها را بروزرسانی کند. در عین حال این روش کمی سختتر از روشهای قبله و گاهی هم نیاز به حوصله و دقت و چیز یاد گرفتن داره.
این روش را معمولا وقتی به کار میبریم که راه دیگری نباشد. این اتفاق در اکثر موارد مربوط است به نصب برنامه یا نسخهای از آن که در منابع موجود نیستند.
برای شروع اول باید متن برنامه مورد نظر را دانلود کنیم. در این مورد، با مثال نصب «دیشکنری انگلیسی به فارسی سیب» پیش میروم. یک جستجو در اینترنت ما را به سایپ پروژه سیب میرساند. منطقا روی بخش Download کلیک میکنیم.
خب.. اگر دو کار سخت در کامپایل باشد، دومی این است که کدام فایل را باید دانلود کنیم. قدم به قدم!
از بخش قبلی یادمان هست که RPM پسوند بستههای ردهتی است. پس از این یکی میگذریم چون در حال حاضر اوبونتو داریم. اگر نسخه آر پی امی (مثل زوزه و ردهت و فدورا) داشتیم، احتمالا کار به سادگی دانلود و دوبار کلیک کردن روی این فایل بود.
در قدم بعدی دنبال فایلهایی با پسوند tar.gz میگردم. فایل تار نتیجه چسابندن چند فایل به هم و فایل جی.زد. نتیجه فشرده کردن فایلها است. به عبارت دیگر فایلی با پسوند تار.جی.زد، مجموعه چند فایل خواهد بود که به هم فشرده شدهاند.
بین نسخههای موجود، به سراغ بالاترین نسخه میرویم. به شرطی که در مرحله بتا و آلفا و این چیزها نباشد. اینجا ظاهرا نسخه ۰.۸ بهترین نسخه است.
همان را دانلود میکنم.
حال فایل متنی برنامه را دارم. اول آن را از حالت فشرده خارج میکنم. در حالت گرافیکی به سادگی با کلیک راست و انتخاب Extract و در حالت متنی با دستوری شبیه به:
$ tar xf sib-0.8.tar.bz2حالا یک دایرکتوری سیب دارم که داخلش میشوم و فایلهایش را بررسی میکنم.
jadi@jubun:~/Desktop$ cd sib-0.8/ jadi@jubun:~/Desktop/sib-0.8$ ls AUTHORS ChangeLog COPYING makefile misc pixmaps README src toolsتقریبا همیشه فایلی هست که شروع کار باشد. اینجا اسمش README است، ممکن است دیگران اسمهایی مثل read.me یا read.first یا هر چیز دیگری بگذارند ولی کامل امشخص است که از کجا باید شروع کرد. در انتهای این فایل به سادگی نوشته:
Basic Installation ================== 1. make 2. make install ( root user )
به همین سادگی! در این مورد حتی نیازی به قدم سخت configure/. هم نیست. در بسیاری از موارد اول باید دستور configure/. را تایپ کنید تا چک کند که سیستم شما دارای همه موارد مورد نیاز برای نصب یک برنامه باشد و بعد برنامه را کامپایل و بعد نصب کنید. سه قدم مشهور اینها هستند:
./configure
make
sudo make install
این سه دستور معمولا تمام برنامهها را نصب میکنند مگر اینکه در راهنمای نصب برنامه، چیز دیگری نوشته شده باشد. البته باید توجه کنید که بخش کانفیگور معمولا در دفعات اول به Errorهایی مبنی بر نبودن یکی دو کتابخانه یا برنامه لازم برای اجرای این برنامه میخورد که باید جدا جدا آنها را پیدا و نصب کنید و دوباره کانفیگور را اجرا کند. بدون اجرای موفق کانفیگور، شانسی برای نصب نخواهید داشت (: بهترین روش هم جستجو است در مدیر نصب برنامه گرافیکی (مثلا Synaptic) به دنبال اسم برنامههایی که کانفیگور از آنها ایراد نصب گرفته است.
متاسفانه این برنامه configure/. ندارد که دقیق به ما بگوید آیا همه نیازمندیهای برنامه نصب هستند یا نه در نتیجه - به شکل منطقی و کاری که از اول باید میشد - به فایل README رجوع میکنم و میخوانم که برنامه به اینها نیاز دارد: pygtk (>= 2.10)، python-sqlite2 و python-notify (>=0.1). حتی اگر نمیدانم اینها چیستند، Synaptic را باز میکنم و دنبالشان میگردم:
و نصبشان میکنم. اگر یادتان باشد، آن بالا گفتم که پیدا کردن اینکه دقیقا کدام فایل باید دانلود بشود، کار سخت دوم است. این پیدا کردن و نصب کتابخانهها و وابستگیها کار سخت اول است (: معمولا اسمها دقیقا مشابه هم نیستند. مثلا در اینجا راهنما pygtk را لازم دارد اما در اوبونتوی من، اسم بسته python gtk است. همچنین توجه دارم که در synaptic، دگمه جستجوی واقعی خیلی خیلی بهتر از آن جعبه جستجوی سریع بالای پنجره، کار میکند.
حالا که وابستگیها نصب شدهاند، طبق دستور README اول make را اجرا میکنم و
$ make
for d in src; do make -C $d; [ $? = 0 ] || exit 1 ; done
make[1]: Entering directory/home/jadi/Desktop/sib-0.8/src'
/home/jadi/Desktop/sib-0.8/src'
Byte-compiling python modules...
bgl2sdb.py dbmanager.py dbquery.py prefrence.py sib.py
Byte-compiling python modules (optimised versions) ...
bgl2sdb.py dbmanager.py dbquery.py prefrence.py sib.py
make[1]: Leaving directory
و بعد برای نصب در سیستم، make install را با دسترسی مدیرسیستم (و برای اینکار یک sudo جلوی دستور میگذارم):
$ sudo make install
mkdir -p /usr/share/sib
mkdir -p /usr/share/pixmaps/sib
mkdir -p /usr/share/applications
mkdir -p /usr/share/gnome/autostart
mkdir -p /usr/bin
install -m644 COPYING /usr/share/sib/.
install -m644 pixmaps/*.png /usr/share/pixmaps/sib/.
install -m755 misc/sib /usr/bin/.
حالا احتمالا برنامه باید به درستی نصب شده باشد. آن را اجرا میکنم (:
$ sib
Traceback (most recent call last):
File "sib.py", line 411, in
main()
File "sib.py", line 179, in init
self.DB_con = dbquery.Database(DATADIR)
File "/usr/share/sib/dbquery.py", line 51, in init
self.list_of_db()
File "/usr/share/sib/dbquery.py", line 61, in list_of_db
DBdir = os.listdir(self.home)
OSError: [Errno 2] No such file or directory: '/home/jadi/.sib/'
مثل اینکه درست اجرا نشد (: خطوط را میخوانم. این کاری است که نصب از سورس را کمی سخت کرده ولی فراموش نکنید که اگر مشغول نصب یک برنامه از فایل سورس هستید، یعنی در دنیای حرفهای ها پا گذاشتهاید و نباید از چیزی بترسید. خط آخر به وضوح نوشته که نمیتواند دایرکتوری sib. را در خانه من پیدا کند. این یک اشکال در روند نصب است. اول این ایراد را به نویسنده برنامه اطلاع میدهم و بعد خودم دستی یک دایرکتوری به نام sib. در خانه میسازم. ''
$ mkdir ~/.sib
$ sib
و حالا سیب به خوبی اجرا میشود. مطمئنا از این به بعددیگر آن را از منو اجرا خواهم کرد و نه از خط فرمان.
بگذارید یک نگاه دیگر به کل روند بیندازیم:
فایل را دریافت کردیم
فایل را از حالت فشرده خارج کردیم
در اینجا نه، اما در حالت معمول با configure/. داشتن تمام نیازهای برنامه را بررسی کردیم
آنقدر کتابخانه و برنامه جانبی نصب کردیم تا کانفیگور مطمئن شود که همه چیز مرتب است و با موفقیت اجرا بشود
بعد دستور make را اجرا کردیم تا برنامه کامپایل شود و فایل اجرایی ساخته شود
در نهایت sudo make install با دسترسی مدیر سیستم، فایل اجرایی و فایلهای تنظیمات را در جاهایی که لازم بودند ساخت
و حالا برنامه ما نصب شده است (: تنها سه نکته دیگر را باید اضافه کنم:
نترسید. کامپایل برنامه یک کار حرفهای است و شما مشغول یک کار جدی. با حوصله باشید و چیز یاد بگیرید.
اکثر برنامهها علاوه بر بسته معمولی نیاز به بستههایی که در انتهای اسمشان dev- باشد هم دارند. اگر بستهای را نصب میکنید و هنوز مشکلدارید، نسخه dev- را هم نصب کنید.
اکثر سیستمها خیلی از بستههای مورد نیاز برای کامپایل برنامه را در یک بسته بزرگ مجازی جمع کردهاند. ایده خوبی است که قبل از نصب و به جای جواب به تک تک وابستگیها، اول آن را نصب کنید. در اوبونتو اسم این بسته مجازی build-essential است.