سلام.
عطف به موضوع
http://forum.ubuntu.ir/index.php/topic,56757.msg452077.html#msg452077بالاخره به دلایل مختلف، راه ppa رو مجبور شدم انتخاب کنم
میخوام برای دوستان مبتدی مثل خودم، آموزش آپدیت gcc و جایگزینی اون به جای نسخه فعلی رو قرار بدم تا به مشکل بر نخورن و با خیال راحت برنامه بنویسن. البته این آموزش برای اوبونتو ورژن 12.04 هست چون اوبونتو 12.10 به صورت پیشفرض، نسخه 4.7 روش نصبه
حالا میریم سراغ آموزش:
قسمت اولش رو که همه بهتر از من بلدید. اول ppa مورد نیاز رو پیدا میکنیم. من برای نرم افزار gcc و ++g نیاز به ppa دارم (البته در این مورد، جفتش یکیه). توی اینترنت (google ، duckduckgo ، launchpad ...) دنبال ppa این نرم افزار میگردم و در نهایت میرسم به لینک زیر:
https://launchpad.net/~ubuntu-toolchain-r/+archive/testدر قسمت وسط صفحه، روی Technical details about this PPA کلیک میکنم تا اون چیزایی که باید توی software sources اضافه کنم رو بهم نشون بده. بعد ورژن اوبونتوم رو هم انتخاب میکنم. مثلا برای 12.04 متنش میشه این:
deb http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu precise main
deb-src http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu precise main
از update manager از قسمت settings در پایین صفحه یا ubuntu software center از منوی edit و گزینه software sources ، پنجره software sources رو باز میکنم و از سربرگ other software در قسمت پایین دکمه add رو کلیک میکنم و در کادری که باز میشه، هر کدوم از اون خطوط رو وارد میکنم. (برای هر خط باید یکبار این کار رو انجام بدم)
حالا از ترمینال (میانبر = ctrl+alt+t) مینویسم:
sudo apt-get update
و منتظر میشم تا کارش تموم بشه. بعدش توی ترمینال مینویسیم:
sudo apt-get install gcc-4.7
اگه مثل من نیاز به ++g هم دارید، بعدش بنویسید:
sudo apt-get install g++-4.7
با این دستورات، gcc-4.7 و g++-4.7 رو نصب کردم.
حالا توی ترمینال مینویسم:
gcc -v
که ورژن gcc رو نشونم بده. توی خروجیش، در خط آخر نوشته
gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5)
میبینیم هنوز همونیه که بود. البته از دستور gcc-4.7 میشه gcc ورژن جدیدتر رو استفاده کرد ولی من میخوام این جدیدتره جایگزین قبلی بشه یعنی وقتی مینویسم gcc بفهمه منظورم gcc ورژن 4.7 بوده.
حالا برای اینکه ورژن جدید جایگزین قبلی بشه، دستورات زیر رو وارد میکنم:
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.6 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.6
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.7 40 --slave /usr/bin/g++ g++ /usr/bin/g++-4.7
sudo update-alternatives --config gcc
دستور update-alternatives برای اینه که یه مثلا میانبر (symbolic link) رو تغییر بدیم به چیزی که دوست داریم. (البته پاک کردن و ... هم انجام میده برای اطلاعات بیشتر در ترمینال وارد کنید man update-alternatives )
دستورات اول و دوم اون لینکها رو میشناسونه و دستور سوم برای اینه که بگیم کدوم یکی رو به عنوان پیشفرض استفاده کن:
خروجی دستور سوم:
majid@Majid-PC:~$ sudo update-alternatives --config gcc
There are 2 choices for the alternative gcc (providing /usr/bin/gcc).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/gcc-4.6 60 auto mode
1 /usr/bin/gcc-4.6 60 manual mode
2 /usr/bin/gcc-4.7 40 manual mode
Press enter to keep the current choice[*], or type selection number:
اون علامت * نشوندهنده کامپایلر پیشفرض هست. حالا من اینجا عدد جلوی gcc-4.7 (در اینجا عدد 2) رو وارد میکنیم و ENTER میزنیم و تمام. مینویسه:
update-alternatives: using /usr/bin/gcc-4.7 to provide /usr/bin/gcc (gcc) in manual mode.
حالا وقتی دستور زیر رو بزنیم:
gcc -v
خروجیش در خط آخر نوشته:
gcc version 4.7.2 (Ubuntu/Linaro 4.7.2-11precise2)
مبارک باشه !!!
gcc-4.7 با موفقیت نصب شد.
البته هدفم از این آموزش این قسمت آخرش بود و اینکه به راحتی میشه برنامه هایی که در مخازن نیومده رو آپدیت کرد و در صورتی که خط فرمانی هستن، جایگزین قبلی کرد.
موفق باشید.
منبع:
http://askubuntu.com/questions/76885/where-can-i-find-a-g-4-7-package