GCC 4.7 تو ابونتو ۱۱.۰۴: از نصب برنامه‌ها از سورس نباید ترسید

توجه بسیار مهم: نصب gcc بر اساس این آموزش ممکنه موجب بعضی اشکالات بشه. خود gnu توصیه میکنه gcc رو تو یه دایرکتوری کاملا جدا نصب کنیم تا بشه راحت هم پاکش کرد. بعدا مفصل تر راجع به این قضیه صحبت می‌کنم.

من رو لپتاپم اوبونتو ۱۱.۰۴ دارم. خیلی هم ابزار و خنزر پنزر روش دارم. حال آپدیت هم ندارم. از طرف دیگه می‌خوام که از ورژن ۴.۷ جی سی سی استفاده کنم. بنا به عادت اولین کار تو مخازن محترم دنبالش گشتم و نیافتم. بعدش تو ppa ها. اما متاسفانه برای نگارش اوبونتوی من جی سی سی رو نداشتن. (یه سوال همینجا بپرسم: مگه نگارشای مختلف اوبونتو چقد با هم فرق میکنن که یه بسته واسه ۱۱.۱۰ هست ولی واسه ۱۱.۰۴ نیست؟)

نتیجه اخلاقی شماره یک:
نباید بیش از حد به بسته‌های توزیعی که استفاده می‌کنم متکی باشم.

راه حل؟ کامپایل دستی:
۱- از اینجا آخرین ورژن کامپایلر محترم رو گرفتم.
۲- بعد از باز کردن آرشیو و ورود به دایرکتوری مربوطه، تو خط فرمان زدم:
[bash light=”true”]
./configure
[/bash]
اما این خطا رو داد:
configure: error: Building GCC requires GMP 4.2+, MPFR 2.3.1+ and MPC 0.8.0+.
اول چک کردم دیدم بسته‌های اینایی که میگه نصبن. بعد خود خطا رو گوگل کردم ولی چیز به درد بخوری پیدا نکردم. آخر خود خطا رو که خوندم دیدم گفته اگه این بسته‌ها رو روی توزیعتون دارین، اما سورسش رو ندارین، سورسش رو هم نصب کنین. منم رفتم و از تو سیناپتک سورسشون رو نصب کردم. (تو مخازن اوبونتو، سورس بسته‌ها معمولا با یه ‪-dev‬ در انتهاشون مشخص می‌شن)
و این دفعه با اجرای
[bash light=”true”]
./configure
[/bash]
فایل make ساخته شد.

نتیجه اخلاقی شماره دو:
گوگل یه موتور جستجوی خیلی عالیه، اما قرار نیست جای من فکر کنه.

۳- همونجا زدم:
[bash light=”true”]
make
[/bash]
و شروع کرد به کامپایل دوست عزیز. کار کامپایل زیاد طول میکشه واسه همین من هم تو این فاصله تیکه اول پست تا اینجا رو نوشتم. الانم میخوام برم ناهار. اوپس: اما باز یه اشکال پیش اومد:
/usr/include/linux/errno.h:4:23: fatal error: asm/errno.h: No such file or directory
compilation terminated.
ایندفعه با گوگل جواب پیدا میشه: باید gcc-multilib رو نصب کنم. بعد از نصب فرمان make رو اجرا می‌کنم. و این دفعه واقعا میرم ناهار…. از نهار برگشتم. اما هنوز کامپایل تموم نشده….
هاه. بالاخره تموم شد. حدود یک ساعت و پنجاه دقیقه طول کشید.
۴- خوب مرحله آخره. تو این مرحله هرچی کامپایل شده رو میریزیم سر جاهاش. واسه اینکه احتمال می‌دم برای کپی کردن فایل‌ها تو بعضی دایرکتوری‌ها مجوز روت بخواد با سودو اجراش می‌کنم:
[bash light=”true”]
sudo make install
[/bash]

… و تمام. الان نسخه ۴.۷ جی سی سی رو دستگاهم نصبه. کافیه امتحانش کنم:
[bash light=”true”]
gcc –version
[/bash]

نتیجه اخلاقی شماره سه:
از نصب برنامه‌ها از سورس نباید ترسید.

نصب ۴.۰ CUDA در اوبونتو ۱۱.۰۴

CUDA یه زبان برنامه نویسی برای برنامه نویسی همه منظوره بر روی کارتهای گرافیکی nVidia ست.
برای نصب CUDA تو اوبونتو خیلی اینور و اونور زدم. به خصوص نصب درایورهاش با X Server خیلی اذیت کنندست. تا اینکه بالاخره کشف کردم درایورهایی که اوبونتو برای کارت گرافیک nVidia نصب میکنه خودشون امکانات توسعه CUDA رو دارن. خوب این خبر خوبیه. برای اینکه مطمئن بشیم آخرین کارت ورژن کارت گرافیک رو داریم:
[bash light=”true”]
sudo apt-get update
sudo apt-get install nvidia-current
[/bash]
قبل از نصب CUDA باید gcc 4.4 رو نصب کرد. علت این مساله اینه که کامپایلر CUDA به طور داخلی از این نسخه gcc استفاده میکنه.
[bash light=”true”]
sudo apt-get install build-essential gcc-4.4 g++-4.4 libxi-dev libxmu-dev freeglut3-dev
[/bash]
مرحله بعد نصب CUDA SDK هست. nVidia ایران رو تحریم کرده. واسه همین هم من فایل مربوطه رو اینجا آپلود کردم. کافیه بعد دانلود اجراش کنید:
[bash light=”true”]
sudo sh devdriver_4.0_linux_32_270.41.19.run
[/bash]
بعد از اجرا برای تنظیمات فولدرهاش، این چند خط رو به فایل .bashrc تو فولدر home خودتون اضافه کنید:
[bash light=”true”]
export CUDA_HOME="/usr/local/cuda"
export LD_LIBRARY_PATH="{LD_LIBRARY_PATH}:${CUDA_HOME}/lib32"
export PATH=${CUDA_HOME}/bin:${PATH}
[/bash]
و برای اینکه این تغییرات اعمال بشن:
[bash light=”true”]
source ~/.bashrc
sudo ldconfig
[/bash]
در نهایت برای اینکه nvcc نسخه درست رو استفاده بکنه وارد فولدر home خودتون بشید و دستورات زیر رو اجرا کنید:
[bash light=”true”]
mkdir gcc44
cd gcc4
ln -s /usr/bin/cpp-4.4 cpp
ln -s /usr/bin/gcc-4.4 gcc
ln -s /usr/bin/g++-4.4 g++
[/bash]
بعد فایل usr/local/cuda/bin/nvcc.profile رو ویرایش کنید و خط زیر رو بهش اضافه کنید: (یادتون نره xxx رو عوض کنید)
[bash light=”true”]
compiler-bindir =/home/xxx/gcc44
[/bash]

تبریک میگم. الان دیگه می‌تونید برنامه هاتون رو با CUDA کامپایل کنید.
برای اینکه مطمئن بشید همه چی مرتبه:
[bash light=”true”]
cd ~/NVIDIA_GPU_Computing_SDK/C
make
[/bash]

منبع: اینجا و اینجا

کلیدهای میانبر در Eclipse و باقی قضایا

اینا یه سری کلیدهای میانبره که من در Eclipse/CDT زیاد استفاده می کنم:

  • Ctrl+M برای بزرگ کردن پنجره ادیتی که دارم روش کار میکنم
  • Ctrl+F11 اجرای برنامه
  • Ctrl+B بیلد کل فضای کار
  • Ctrl+Tab سوییچ بین هدر/سورس
  • Ctrl+Alt+Up/Down ایجاد یه کپی از خط جاری در بالا/پایین.

توجه کنید که میانبر آخری تو اوبونتو (و احتمالا سایر لینوکسها) کار نمیکنه. علت هم سادست: این میانبر به بالا پایین کردن ورک اسپیس تخصیص داده شده. برای به کار انداختن کافیه از تو System>Preferences>Keyboard Shortcuts گزینه های Switch to workspace above/below the current workspace رو پیدا کرد و کلیدهای میانبرشون رو از کار انداخت. (اگه رو گزینه ها Backspace زده بشه کلیدهای میانبر حذف میشن)

کلیدهای میانبر برای فولدینگ هم خیلی جالب نیستن. واسه همین عوضشون کردم (window>Preferences>General>Keys):

  • Ctrl+- فولد کردن بلوک Collapse
  • Ctrl++ باز کردن بلوک Expand
  • Ctrl+Shift+- فولد کردن همه بلوکها Collapse All
  • Ctrl+Shift++ باز کردن همه بلوکها Expand All

درضمن من از اینجا برای همیشه کد فولدینگ ادیتورم رو فعال کردم (به طور پیشفرض فعال نیست):

Window>Preferences>C/C++>Editor>Folding>Enable folding when opening a new window

 

پ.ن: فایل تنظیمات eclipse برای ادیتور و syntax highlighting رو اینجا آپلود کردم.

نگاهی به unity

اوبونتو برای ارتقای رابط گرافیکیش اخیرا پروژه مفصلی رو راه اندازی کرده که unity تنها یه بخش کوچیک از اونه. این بخش یه رابط گرافیکی جدید برای Gnome ایجاد می کنه و قراره که استفاده از دسکتاپ اوبونتو رو ارتقا بده. unity فعلا محیط پیش‌فرض نسخه نتبوک اوبونتوه.

برای نصب unity خیلی ساده و مثل همه پکیج های دیگه:

[bash light=”true”]sudo apt-get install unity[/bash]

بعد نصب موقع لاگین کردن تو اکانت باید به جای گنوم، unity رو انتخاب کنیم.

اولین چیزی که موقع وارد شدن به محیط جدید جلب توجه میکنه ساختار جدید محیطه: سمت چپ یه launcher کلی هست به صورت عمودی، و بالا همون نوار ابزار قدیمی، اما بدون اون منوها. نوار ابزار پایین هم حذف شده. به جای منوهای قدیمی تو نوار ابزار بالایی یه دکمه اوبونتو وجود داره که ظاهرا قراره همه کاره باشه. با کلیک این دکمه یه صفحه سرچ باز میشه که از اونجا میشه به فایل‌ها و برنامه‌ها دسترسی داشت. (متاسفانه نمی‌دونم چرا ) به هر حال من از هیچ طریقی نتونستم به فولدر home خودم دسترسی داشته باشم.

همونطور که گفتم نوار سمت چپ به launcher اختصاص داره. از این نوار میشه برنامه‌هایی که پیش‌فرض وجود دارن رو فراخوند. برنامه‌هایی که اجرا می‌کنیم هم یه آیکون تو همین بخش می‌اندازن. همینطور میشه خیلی راحت با راست کلیک آیکون یه برنامه در حال اجرا رو به اینجا چسبوند.

نکته جدید آخر برای من در باره unity این بود که نوار منو و آیکونهای برنامه با نوار ابزار بالایی یکپارچه می‌شه و جای بیشتری برای کار باقی می‌گذاره.

در مجموع نحوه چیدمان عناصر توسط unity باعث میشه که از صفحه نمایش بهتر استفاده بشه. مخصوصا با حرکت به سمت مانیتورهای کشیده تر، باید از فضاهای کشیده افقی دوری کرد و بخشهای ثابت برنامه در قالب نوارهای عمودی اراپه بشه که این موضوع تو unity به خوبی رعایت شده: نوارهای متعدد افقی (نوار پایینی، نوار بالایی، نوار عنوان و نوار منو) به یه نوار کاهش پیدا کردن و در عوض یه نوار نسبتا عریض به سمت چپ صفحه اضافه شده.

از طرف دیگه unity به نظر من هنوز بالغ نیست. دسترسی به خیلی جاهای لینوکس هنوز سخته و خیلی از پنجره‌ها بلاتکلیفن. باید صبر کرد و دید اگه Canonical بخواد اون رو تو اوبونتو ۱۱.۱۰ وارد کنه چه تغییراتی توش می‌ده.

استفاده از Drivel برای پست کردن مطالب وبلاگ در اوبونتو

برای اینکه از Drivel تو اوبونتو استفاده کنم:
۱. از Ubuntu Software Center دنبال Drivel گشتم و نصبش کردم. حجم بعد نصب حدود ۱.۹ مگابایت بود.
۲. از صفحه مدیریت وردپرس، به صفحه Settings و بعد برگه Writing رفتم و از اونجا پروتکل XML-RPC رو فعال کردم.
۳. بعد نصب Journal Type رو روی Movable Type و سرور آدرس رو آدرس بلاگ با یه /xmlrpc.php اضافی تنظیم کردم. مثلا برای این وبلاگ http://blog.elmi.me/xmlrpc.php.
۴. لاگین کردم. :دی

همین نوشته هم از Drivel پست شد.