لینوکس و من

رویای دیرین من!

یکی از خواسته های من در سیستم عامل لینوکس، بعد از اینکه فهمیدم چی به چیه، این بود که بتونم پکیج یا نرمافزاری رو که نصب کردم بتونم دوباره برش گردونم! من سر در نمیاوردم که چرا نمیشه این کارو کرد، چرا راهی براش نیست… آخه در نصب شدن یه بسته به نظرم اصلی ترین کاری که میشه کپی شدن محتویات اون بسته است. و مثل ویندوز رجیستری ای چیزی نداره که تنظیماتی غیر قابل بازگشت اعمال بشه! (این نظر منه، ممکنه درست هم نباشه)
گذشت و گذشت … تا این که یه چیزی به نام dpkg-repack پیدا شد که میتونست این کارو انجام بده. و دوست خوبم وبلاگ "یه انقلابی" معرفیش کرده بود. اما من بیشتر از این میخواستم! میخواستم کل بسته هایی که توی سیستم عاملم نصب کردم برگردونم. که این خوبیش از این جهاته:
 
۱- خب یه پشتیبان از تمام نرم افزار هاتون دارین!
۲- وقتی با dpkg-repack یه بسته ای رو برگردوندید، نمیتونید بفهمید dependencies اون بسته چیه تا اونا رو هم همراهش برگردونید (تا در آینده که لازمشون داشتید حضور داشته باشن). یا اگر هم بشه dependencies یک بسته رو فهمید (که حتما میشه) ممکنه صد تا بسته ی مختلف باشه که هر کدوم ده تا واسه خودشون dependencies دارن و … پس ما یه چیزی میخوایم تمام عیار که هر چی که هست برداره بیاره!
۳- میتونم از این بسته های برگردونده شده، یه local repository درست کنم، روی CD یا DVD رایتشون کنم و اونو توی کامپیوتر های دیگه استفاده کنم. یعنی یه چیزی شبیه Homa که برای اوبونتو ساخته شده!
۴- میتونم از این local repository وقتی که یه fresh install انجام میدم استفاده کنم و ظرف چند دقیقه هر چیزی که لازم دارم دوباره توی نسخه ی تمیزم داشته باشم! این برای کسی که نمیخواد upgrade کنه و بیشتر دوست داره fresh install داشته باشه خوبه!
 
خب… برای نیل به این اهداف (!) که مدت ها توی سر من بودن چه کاری باید کرد؟ طبیعتا باید یه لیست از تمامی بسته های نصب شده داشته باشیم. مگه نه؟ و بعد بدیمش به این dpkg-repack که هر چی که توی این لیست هست برگردونه! تهیه ی لیست ساده است. با این دستور:
 
sudo dpkg --get-selections > /your-home-directory/list.txt
 
خب. این لیستی از بسته های داخل سیستم شما رو توی فایل list.txt ذخیره میکنه. اما متاسفانه این لیست همینجوری به درد ما نمیخوره! چرا؟ چون محتویاتش طوری نوشته شده که برای dpkg-repack غیر قابل استفاده است. پس باید یه کاری کنیم قابل استفاده بشه. یعنی یه لیستی داشته باشیم که اسم تک تک بسته ها، کنار هم بیان و فقط به اندازه یه space از هم فاصله داشته باشن. که ما بتونیم اونو کپی کنیم و جلوی dpkg-repack بذاریم!
خب من بلد نبودم! توی پستای قبلی این موضوع رو عنوان کردم. تا این که آقای جادی روزنه های امیدی رو در بنده بوجود آوردند… (واقعا جای بسی افتخار است که کسی مثل جادی بیاد وبلاگت کامنت بذاره و بگه بیا کمکت کنم!) خلاصه… با راهنمایی جادی عزیز و یکم کلنجار رفتن خودم، تونستم اون لیست رو به چیزی تبدیل کنم که لازم داشتم. با این دستورات:
 
cut --f 1 /my-home-directory/list.txt | xargs sudo dpkg-repack
 
این یک خطی که میبینید با اون لیست کاری میکنه واسه dpkg-repack قابل استفاده میشه و xargs هم این اطلاعات جدید رو تقدیم جناب dpkg-repack میکنه و ایشون هم مثل بچه های خوب و حرف گوش کن کاریو که باید انجام بده میده! و من قریب به ۱۹۷۶ تا پکیج به حجم ۱.۲ گیگابایت در عرض تقریبا نیم ساعت، تحویل گرفتم!
 
حالا نوبت این میرسه که یه local repository از این گنج داشته باشم.من پکیج ها رو توی فولدر packages توی home ریختم. پس:
 
sudo dpkg-scanpackages /my-home-directopry/packages /dev/null > /my-home-directopry/packages/Packages
 
سپس بروید داخل این فولدر packages و فایل Packages رو باز کنید. این فایلیه که لیستی از مشخصات بسته های اونجا رو برای فهموندن به synaptic در خودش داره و توسط دستور بالا آماده شده. فایل رو با یه ادیتور متن باز کنید و به قسمت replace برید و اونجا شما میبینید که جلوی Filename یه چیزی اضافه هم نوشته که نباید باشه. یعنی آدرس محل اون پکیج رو نوشته. در صورتی که ما فقط اسمشو میخوایم نه آدرسشو. چون توی نصب کردن بعدا مشکل ایجاد میکنه. (من امتحان کردم، دارم میگم انجام بدین تا به اون مشکل بر نخورین). بله، پس /my-home-directory/packages رو کپی میکنم و در قسمت search for میذارم و دکمه ی replace رو میذارم و اونا ناپدید میشن…
 
حالا میتونم اینارو رایت کنم روی DVD و توی هر کامپیوتری که خواستم این پکیج ها رو به لیست پکیج هاش اضافه کنم:
 
echo “deb file:/my-DVD-ROM/packages ./” > /tmp/my-local.list
 
و بعد:
 
sudo mv /tmp/my-local.list /etc/apt/sources.list.d/my-local.list
 
و بعد تر:
 
sudo apt-get update
 
که این مرحله ی آخر روش های دیگه ای هم داره که میتونید بگردید پیدا کنید و به ما هم بگید…
 
فکر میکنم باید انگلیسی این مطلب رو هم منتشر کنم. چون خیلی از ملت ها خواستار این کار هستند!
 
من که خیلی خوش حالم. شما چه طور؟

نصب اوبونتو روی هارد اکسترنال

بالاخره اوبونتو روی هارد اکسترنال نصب شد و بالا اومد! اما چه جوری؟
 
خب مشکل این بود که بوت لودر (گراب) بعد از نصب روی هارد اکسترنال error 17 میداد! اما این بار ببینید چی کردم:
 
هارد اکسترناله رو از نو پارتیشن بندی کردم و یه درایو برای root و یه درایو برای home و یکی برای swap و بقیه fat32. (قبلا یکی هم واسه بوت لودر کنار گذاشته بودم) . این دفعه HDD رو دیگه جدا نکردم…. در مرحله آخر نصب اونجا که دیگه باید دکمه install رو بزنیم، یه قسمتی هم داره به نام advanced تا به حال دقت نکرده بودم اون چیه! خب کلیکش کردم و دیدم اون جا است که میتونی تعیین کنی بوت لودر کجا نصب بشه. و من هم گفتم که برو روی sdb5 که پارتیشن لینوکسیه بریز. … نصب انجام شد، … اما موقع بوت این دفعه error 15 داد! و من خونسردی خود را حفظ نموده و فحش ندادم! چون شماره خطا ۱۵ بود نه ۱۷! دو باره با لایو بالا اومدم و گراب رو به طور دستی نصب کردم. البته دیگه قبل از این مرحله HDD رو جدا کردم. گراب این جوری تعمیر میشه. با این دستورات:
 
sudo chroot /
 
grub
 
root (hd0,4)
 
setup (hd0)
 
quit
 
منظور از (hd0,4) اینه، یعنی پارتیشن شماره ۵ از دیسک شماره ۰ که میشه sda5 یا hda5 … یعنی جایی که گراب قبلا نصب شده. این کار هم تموم شد و restart کردم. و در کمال باوری (!) اوبونتو پدیدار شد و من خوش حال شدم. و یه سری تنظیمات و اینارو انجام دادم و چه عالی الآن!
 
یه درخواست دارم ازتون. هر کی کنار لینوکسش یه ویندوز هم داره، لطف کنه اون چند خی که توی منوی گراب تو فایل /boot/grub/menu.lst مربوط به ویندوزه برام اینجا کامنت بذاره. چون میخوام بذارمش توی گراب این هارد اکسترناله، که اگه روی یه کامپیوتر دیگه خواستیم امتحان کنیم بتونیم ویندوزشو این جوری هم بیاریم. میشه دیگه نه؟ فوقش دو تا براش option میذاریم یکی واسه درایو c یکی هم d
 
آقای جادی من اون فایل رو درست میکنم مزاحمتون میشم حتما. پیشاپیش ممنون!
 
از پیگیری های یه انقلابی عزیز هم متشکرم….

اما رفتم جشن انتشار

بالاخره پس از کش و قوس های بسیار اندرونی (!)  رفتم جشن انتشار اوبونتو. بذارید تعریف کنم…

 

بعله… ساعت ۹:۱۵ داخل سالن بودم. برنامه هم تقریبا همون موقع شروع شد. دنبال دوستم یه انقلابی می گشتم تا ببینمش، از چند نفر هم پرسیدم، اما نمیشناختنش. آخه اون مقاله ی نرم افزار آزادشو داده بود بنده ویراستاری کردم، میخواستم ببینمش که نشد… 

 

اعلام برنامه کردن و آقای هومن مهر اومد اول در مورد نرم افزار آزاد صحبت هایی کرد، بعد مجید سلامت که از اصفهان اومده بود در مورد ویژگی های جدید اوبونتو کوالا یه چیزایی گفت… محمد رضا میردامادی (آقای مجری) هم در مورد کوبونتو یه چیزایی گفت، بعد خانم خانی آمد در مورد embeded ubuntu صحبت های جسته و گریخته ای کرد و من نفهمیدم ربطش با جشن انتشار اوبونتو ۹.۱۰ چیه! اما توجهم جلب شد ببینم این تکنولوژی چیست؟

 

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

 

آقای حسن پور رئیس کاربران لینوکس ایران آمدند و ۲۰ دقیقه ای در مورد برنامه های گروه صحبت کردند. اما فقط ۲۰ دقیقه!!

 

آقای هومن مهر دوباره تشریف آوردند و در مورد تفاوت های ویندوز و لینوکس و مزایا و معایب استفاده از هر کدوم رو توضیح دادند و فهمیدیم در این جا که ایشان نیمه ی اول دهه چهارم زندگی خود را سپری میکند و او ما را جوان خواند!

 

روزبه شفیعی هم از اصفهان آمده بود و در مورد محیط پلاسمای KDE یه سری کلیپ نشون داد و همه به وجد آمدند… (به نظر من خیلی طولش داد)

 

بعد آقای سلامت بار دیگر آمد و در مورد محیط gnome و سفارشی سازی با compiz یه سری کلیپ نشون داد که همه خیلی به وجد اومدند!

 

و در این جا برنامه خاتمه یافت! البته موقع نهار هم نفری یه ژامبون و نوشابه در یکسری ساک های کوچولو مهمونمون کردند. دستشون درد نکنه…   وقتی سخن رانی ها تموم شد گفتند کارگاه آموزشی هست برید بالا برگزار میشه.

 

ما رفتیم دیدیم خدایا خداوندا این کارگاه آموزشیه؟! یه دونه کامپیوتر گذاشته بودند یه گوشه و ملت دورش جمع بودند و سوال میپرسیدند! و هر کسی با هر کسی حرف میزد و میچرخید و … من نفهمیدم هدف این کارگاه چی بود واقعا! یه چند تا کامپیوتر میذاشتن، یاد میدادن اوبونتو رو نصب کنن، چه طوری اون حرفایی که توی کنفرانس زدن پیاده کنیم… بالاخره یه چیزی یه حرکتی که بشه اسمشو گذاشت کارگاه!

 

ولی خب… اولین تجربه ی این کارگاه بود، بعد از این که نظرات جمع شد دفعه ی بعد این کار بهتر انجام میشه. بنده هم یه سری پیشنهاد داشتم که گفتم، مثلا این که به آقای حسن پور گفتم یه سیاره ی اوبونتو هم اگه باشه خیلی خوب میشه…. یا مثلن یه دفتر یادگاری حد اقل میذاشتن که به عنوان یادگاری از این جشن های انتشار بمونه.

 

در این کارگاه باز چند تا سوال پرسیدم که باز هم جواب درستی نگرفتم!…

 

روی هم رفته دستشون درد نکنه، کار واقعا انرژی گیریه، هماهنگی میخواد، چی میخواد… شرکت داتک هم که حامی گروه کاربران ایرانی اوبونتو شده بود، و از این نظر کیفیت کار بالا بود، یه لیوان دادن که روش آرم داتک و اوبونتو چاپ شده بود، CD اوبونتو هم از طرف داتک داده شد، فروشگاه sito هم DVD های اوبنتو رو پخش میکرد…

 

فقط به نظر من اشکال اساسی ای که این جشن داشت، این بود که اصلا شبیه جشن نبود! خیلی رسمی بود. درست عین همایش یا سمینار هایی که آدم میره. یه عده اومدن صحبت کردن و بقیه هم دست زدن! کیکشون هم من فقط چند ثانیه دیدم، بعد اصلا نمیدونم چی شد!

 

اشکال اساسی ترش این بود که  — توجه کنید ما میگیم جشن انتشار اوبونتو ۹٫۱۰ — ولی به نظر من قسمت زیادی از وقت صرف معرفی خود لینوکس و و خود اوبونتو شد و به اوبونتو ۹.۱۰ خیلی کم پرداخته شد. و خود من به شخصه با ویژگی های جدید اوبونتو ۹.۱۰ اصلا آشنا نشدم و فقط فهمیدم چند تا نرم افزار جدید روش اومده و سرعت بوتش زیاد شده. همین! صحبت از محیط پلاسما و compiz به اون تفصیل اصلا نیاز نبود، لازم بود یکم صحبت بشه اما اونا ربطی به اوبونتو ۹.۱۰ نداشتند که اون همه در موردش وقت گذاشته بشه!

 

یه پیشنهادی هم دارم. این که میتونستن یه سری کالا های تبلیغاتی مثلا تی شرت و ساعت و جا کلیدی و از این جور چیزا اون جا بذارن تا بچه ها اونا رو بخرن تا این جوری هم فضا دوستانه تر میشد و هم یه جوری یکم money به حساب گروه میرفت.

 

و در پایان از تمام کسانی که با هم یاری کردند تا این مراسم برگزار بشه تشکر میکنم. روزشم خوب انتخاب کرده بودند، اما ساعتش خیلی زود بود! چون من از قزوین چه جوری پاشم ۶ صبح سوار شم برم تهران؟! یا اون بنده ی خدایی که از زنجان اومده بود؟!

 

والسلام علیکم و رحمت الله.

آپدیت در خواب

از اون جایی که قبلا شرح دادم چه طوری برنامه ریزی کنیم تا سیستم یه کار خاصی رو در زمان خاصی انجام بده، میخوام این دفعه بهش بگم ساعت ۳ که روشن شدی و کانکت شدی، بی زحمت آپدیت هم بشو قربون دستت. (نیست ADSL از ۳ تا ۷ رایگانه واسه ما…)

خب، دستور آپدیت اینه:

sudo apt-get update

sudo apt-get upgrade

ولی وقتی اینو میزنیم از ما میپرسه که آیا مطمئنید میخواید فلان قدر دانلود کنید و … y/n هم؟

پس برای دستور دوم این option ها رو وارد می کنیم که دیگه هیچچچچی از ما نپرسه و مثل بچه ی آدم آپدیتشو بکنه:

sudo apt-get upgrade -y --force-yes

حالا این دستورها رو داخل scheduled task قرار میدیم.

امیدوارم صبح که بلند شدم کارش تموم شده باشه. یه خوبی هم که داره اینه که اگه وقت کم اومد برای دانلود، فردا صبح از ادامش میره. خدا لینوکس رو از ما نگیره.

checkdisk اجباری

سلام. دیدید بعضی موقع ها اوبونتو که داره بوت میشه یه check disk میکنه؟

ممکنه بعضیا بخوان این عمل رو یه بار به اختیار خودشون انجام بدن. آیا باید صبر کنن تا زمانش فرا برسه؟!

این دستور کاری میکنه که در بوت بعدی این کار انجام شه:

sudo touch /forcefsck

کانکت شدن اتوماتیک، بعد از دیسکانکتی

خیلی وقت بود که دنبال این میگشتم که توی لینوکس بشه وقتی disconnect میشی، خودش connect بشه. تا این که اسکریپت جالبی را یافتم.
درمورد دستور sudo هم دقت کنید. اگه شما نیازی بهش ندارین از توی متن برش دارین. بعد میتونین اینو توی startup بذارین، یا هرکاری میخواین باهاش بکنین!
 
آو، راستی، شاید کسی ندونه چه طور میشه چند تا کانکشن مختلف با اسمای مختلف ساخت. چون دستور sudo pppoeconf یه کانکشن میسازه به نام dsl-provider که با pon dsl-provider وصل میشیم.
 
واسه این کار، با کاربر root به این محل عزیمت بفرمایید:
 
/usr/etc/peers
 
خب، حالا اون فایل dsl-provider رو تغییر نام بدین. مثلا night . از این به بعد با دستور pon night وصل میشین. حالا میتونین یه کانکشن دیگه هم بسازین و اسمشو تغییر بدین.
 
درمورد اینترنت  dialup نمیدونم دستور ها چیه. کسی میدونه لطفا بگه.
 
برای دیدن اسکریپت به ادامه مطلب برید

دیکشنری انگلیسی به فارسی برای stardict

در مطلب قبلی، گفتم که چه جوری دیکشنری های BGL – Babylon رو به IFO – Stardict تبدیل کنیم. دوستی در کامنت ها نرم افزار گرافیکی خیلی خوبی رو معرفی کردند.

من دیکشنری فارسی به انگلیسی رو تبدیل کردم و لذت بردم. از من خواسته شد تا دیکشنری انگلیسی به فارسی رو هم بذارم.

و حالا یکی از بهترین دیکشنری های انگلیسی به فارسی بابیلون رو هم تبدیل کردم و برای دانلودقرار دادم. این دیکشنری: hfarsi cleane version  که بیش از ۱۴۶۰۰۰ لغت داره. در حالی که دیکشنری که خود سایت stardict گذاشته برای دانلود و اسمش هم quick-eng-persian هست، فقط ۵۰۰۰۰ تا لغت داره. و تفاوت محسوسی میبینم بین این دو تا.

متاسفانه دیکشنری فونتیک لغات انگلیسی نشد که تبدیل شه. اگه کسی میتونه کمک کنه بسم الله.

امیدوارم که مورد استفاده قرار بگیره.

تبدیل دیکشنری های Babylon با فرمت BGL به دیکشنری های Stardict!

خب خب خب!
تبدیل دیکشنری های Babylon با فرمت BGL به دیکشنری های Stardict! قبلنا دنبال این کار بودم، اما دیدم راهی براش نیست بی خیال شدم. تا این که….

dictconv رو از synaptic نصب کنید. dictzip رو هم همین طور. خب. یه فایل BGL آماده کنید و در ترمینال تایپ بفرمایید:

dictconv DICTIONARY.bgl -o DICTIONARY.ifo

منظور از DICTIONARY.bgl فایل مورد نظر شما است.

سپس مرقوم بفرمایید این را:

dictzip DICTIONARY.dict

حالا فایل هایی را که تولید شده اند بذارید توی فولدر و بعد کپیش کنید این جا:

/usr/share/stardict/dic

و لذت ببرید. برای مثال، من چیزی رو که مدت ها میخواستمش با این روش تبدیلش کردم:

دیکشنری فارسی به انگلیسی…! هیپ هیپ هورا… از این جا دانلودش کنید!

خاموش کردن مانیتور بدون دکمه

مانیتور هایی که دکمه ی خاموش و روشن ندارن، مثلا لپ تاپ ها، و نمیدونیم کلید میانبر این کار چیه، این دستور این کار رو انجام میده:

sleep 1 && xset dpms force off

عدد ۱ یعنی یک ثانیه صبر کن و بعد مانیتورو خاموش کن. بعدش هم با تکون دادن موس یا زدن کلید روی کیبرد، روشن میشه.  میتونید این دستور رو براش یه کلید میانبر shortcut درست کنید و راحت…

تغییر owner , group در خط فرمان

یک دستور خوب برای تغییر owner و group در مورد فولدر ها و فایل های درون اون ها به چیزی که خودتون میخواید. مثلا من میخوام فولدر /home/amin/bigbig رو که توسط root ساخته شده و نمیذاره که من بهش دسترسی داشته باشم، با این دستور اینکارو می کنم:

sudo chown -hR amin:amin /home/amin/bigbig

حالا محتویات این فولدره به علاوه خودش، به owner از نوع amin (اولی) , group از نوع amin (دومی) تغییر کرد.  یعنی لازم نیست تک تک فایل ها رو edit کنید. که چه کار ….نانه ایست!