انجمن‌های فارسی اوبونتو

کمک و پشتیبانی => راهنماها، نکات و ترفندها => نویسنده: ham!d در 17 امرداد 1390، 11:44 ق‌ظ

عنوان: اسکریپتی برای نصب چند نرم‌افزار پشت‌سرهم؟
ارسال شده توسط: ham!d در 17 امرداد 1390، 11:44 ق‌ظ
چه طور یک اسکریپت بنویسم که چند نرم‌افزار را از طریق کنسول با دستور apt-get پشت سر هم دانلود و نصب کنه،
به عبارتی قرار نباشه برای دانلود هر کدوم از نرم‌افزارها پسورد کاربری را به خاطر SUDO بدم و نیز به این دوتا سوال که هنگام نصب از طریق ترمینال روی آن‌ها توقف می‌کنه، هم اتومات جواب y بده و ازشون رد شه.
Do you want to continue (Y/n)? y
Install these packages without verification (y/N)? y

مثلاً این چندتا نرم افزار را پشت سر هم دانلود کنه:
apt-get install knemo
apt-get install stellarium
apt-get install lazarus-ide
apt-get install axel-kapt
apt-get install pidgin
apt-get install anjuta
apt-get install samba4

و اگر بشود دانلود را زمان‌بندی هم کرد که مثلاً با قرار گرفتن در StartUp، وقتی سیستم نیمه‌شب روشن می‌شه(با تنظیم بایاس (http://forum.ubuntu.ir/index.php/topic,14027.msg105918.html#msg105918))، شروع کنه به دانلود/نصب و پس از پایان دانلود/نصب سیستم اتومات خاموش بشه (http://forum.ubuntu.ir/index.php/topic,17897.msg135617.html#msg135617)، یا در زمان تعیین شده (http://wiki.ubuntu.ir/CronHowto) سیستم رو خاموش کنه، خیلی عالی می‌شه.

و اگر هم به هر دلیلی apt-get install لغو شد(قطع شدن لحظه‌ای اینترنت، fetch نشدن و ...)، عملیات را به دستور بعدی رد نده و روی همون مورد که لغو شده اصرار کنه(Repeat). تا پس از موفقیت، خط بعدی را اجرا کنه.

اگر هم log ثبت کنه، که بعد ببینیم چه کار کرده، می‌شه گلستان!
***
دوستان کسی تجربه‌ای داشته؟
عنوان: پاسخ به: اسکریپتی برای نصب چند نرم‌افزار پشت‌سرهم؟
ارسال شده توسط: parsibox در 17 امرداد 1390، 01:01 ب‌ظ
تاجایی که من یادمه همه ی اینا را پشت سر هم میتونی بنوسی
یعنی یه چیزی مثل این
apt-get install knemo  stellarium lazarus-ideخیلی وقته چیزی نصب نکردم
یه تست بکن شاید جواب بده
عنوان: پاسخ به: اسکریپتی برای نصب چند نرم‌افزار پشت‌سرهم؟
ارسال شده توسط: ham!d در 17 امرداد 1390، 08:02 ب‌ظ
همه‌ی نرم‌افزارها را پشت سر هم میتونی بنوسی
مرسی، دنبال همین بودم، چه ساده!  :oops:
ولی هم‌چنان برای دانلود/نصب شبانه مشکل وجود داره و اون پسورد مربوط به sudo  و دوتا سوال‌های "تایید" هستند، که در اولین اجرا باید پای کامپیوتر بود. نمی‌شه پسورد را به نحوی توی اسکریپت که برای کنسول قابل شناسایی باشه، جا داد(تعریف کرد)؟
عنوان: پاسخ به: اسکریپتی برای نصب چند نرم‌افزار پشت‌سرهم؟
ارسال شده توسط: alieblice در 18 امرداد 1390، 11:03 ق‌ظ
برای سوال پرسیدن اینو بزارین
خودم تستش نکزدم
-y  Assume Yes to all queries and do not prompt
تو تنظیمات sudo میتونین کاری کنین که برای دستور خاصی sudo  نیاد خودم تستش نکردم
http://ubuntuforums.org/showthread.php?t=19236 (http://ubuntuforums.org/showthread.php?t=19236)
http://ubuntuforums.org/showthread.php?t=1132821 (http://ubuntuforums.org/showthread.php?t=1132821)
عنوان: پاسخ به: اسکریپتی برای نصب چند نرم‌افزار پشت‌سرهم؟
ارسال شده توسط: سید وحید رضا برهانی در 19 امرداد 1390، 10:27 ب‌ظ
یک راه برای y زدن یا هر چیز دیگه ای زدن اینکه از دستور yes استفاده کنی
yes y |apt-get install qtبرای اینکه در ساعت خاصی خاموش بشه من اینکار رو می کنم :
چون در زمان خاص و معلومی روشن می شه می شه از timeout استفاده کرد مثلا
timeout 4h apt-get install qt۴ ساعت بعد از اینکه این دستور اجرا بشه مهلت می ده که برنامه کار خودش رو به پایان برسونه و خارج بشه اگر تا ۴ ساعت همچنان این برنامه (در اینجا apt-get ) فعال بشه برنامه رو می بنده که خب می تونی بعد از این خط (در یک اسکریپت) دستور خاموش شدن رو بذاری که در این صورت در دوحالت خاموش می شه یا اینکه ۴ ساعت از زمان روشن شدن بگذره یا اینکه برنامه زودتر ، کارش تموم بشه یک اسکریپتی قبلا نوشته بودم و گذاشته بودم که همین کار رو می کرد دنبال بگرد برای ایده گرفتن چیز خوبی بود (خودمم الان از نسخه ی سفارشی شده ی همون اسکریپت استفاده م یکنم )
عنوان: پاسخ به: اسکریپتی برای نصب چند نرم‌افزار پشت‌سرهم؟
ارسال شده توسط: ham!d در 19 امرداد 1390، 11:31 ب‌ظ
یک راه برای y زدن یا هر چیز دیگه ای زدن اینکه از دستور yes استفاده کنی
YES
ممنون، تقریباً دارم به جواب می‌رسم.
براوو وحید عزیز

یک اسکریپتی قبلا نوشته بودم و گذاشته بودم که همین کار رو می‌کرد دنبال بگرد برای ایده گرفتن چیز خوبی بود (خودمم الان از نسخه ی سفارشی شده‌ی همون اسکریپت استفاده می کنم)
آره قبلاً دیده بودمش، توی پست اول همین تاپیک هم لینکش را دادم. مرسی

موضوع سودو، تنها نقطه‌ی سیاهه کنونی کاره.
تو تنظیمات sudo میتونین کاری کنین که برای دستور خاصی sudo نیاد
http://ubuntuforums.org/showthread.php?t=19236
فعلاً که با دنبال کردن اولین لینکی که aliebliceجان معرف کردن، کار را دنبال می‌کنم، ولی نمی‌دونم اشکال کجاست که نتیجه بخش نیست؟! اونجا گفته که خط UserName ALL=NOPASSWD٪ را به آخر فایل sudo gedit /etc/sudoers اضافه کنید:
%UserName ALL=(root) NOPASSWD: /app/you/want/to/run/as/sudoیا پایینی که با هر دو فرم تست زدم، نشد!
%UserName ALL=NOPASSWD: /app/you/want/to/run/as/sudoخوب حالا کدام یکی را باید توی دستور بالا جایگزین کرد: apt-get یا install؟ این دوتا هم مثل نرم‌افزارهای GUI حساب می‌شن؟
توی مسیر bin/usr/ هر دو تاشون هستند. با اضافه کردن تکی و هم هر دوتا چه به آخر خط و چه به بعد از خط root   ALL=(ALL) ALL تست زدم. نشد.

اینم محتویات فایل etc/sudoers/:
# /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the man page for details on how to write a sudoers file.
#
Defaults   env_reset
# Host alias specification
# User alias specification
# Cmnd alias specification
# User privilege specification
root   ALL=(ALL) ALL

# Allow members of group sudo to execute any command after they have
# provided their password
# (Note that later entries override this, so you might need to move
# it further down)
%sudo ALL=(ALL) ALL
#
#includedir /etc/sudoers.d
# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

چرا سه تا خط آخر مثل هم تکرار شدند؟!
عنوان: پاسخ به: اسکریپتی برای نصب چند نرم‌افزار پشت‌سرهم؟
ارسال شده توسط: سید وحید رضا برهانی در 19 امرداد 1390، 11:58 ب‌ظ
سلام
البته اون لینک هم چیز خوبیه ولی منظورم این بود
http://forum.ubuntu.ir/index.php/topic,17485.msg134242.html#msg134242
دقیقا می شه بگی برای چی می خوای از sudo استفاده کنی؟ اگر بتونی که توی استارت اپ بزاریش دیگه نمی خواد از sudo استفاده کنی ! چون نرم افزارهای startup با دسترسی روت اجرا می شن!(البته توی آرچ اینطوریه و نباید توی اوبونتو فرق بکنه ) استارت آپ (منظورم در هنگام بوت هست نه استارت اپ محیط گرافیکی)مزیت های دیگه ای هم داره اینکه مثلا لازم نیست حتما وارد محیط گرافیکی بشه خب برای محیط گرافیکی هم باید اتولوگین رو فعال کنی که به لحاظ امنیتی کار خوبی نیست و هم اینکه در محیط گرافیکی کلی اتلاف وقت داری!
عنوان: پاسخ به: اسکریپتی برای نصب چند نرم‌افزار پشت‌سرهم؟
ارسال شده توسط: ham!d در 20 امرداد 1390، 12:46 ق‌ظ
دقیقا می شه بگی برای چی می خوای از sudo استفاده کنی؟
در حال حاضر واسه دانلود شبانه + نصب نرم‌افزار برنامه‌نویسی ... که حجمشون کلاً بالا میره و اینکه خلاص شدن از دست سودو و y می‌تونه بعدها هم به کار بیاد.
اگر بتونی که توی استارت اپ بزاریش دیگه نمی خواد از sudo استفاده کنی ! چون نرم افزارهای startup با دسترسی روت اجرا می شن!(البته توی آرچ اینطوریه و نباید توی اوبونتو فرق بکنه ) استارت آپ (منظورم در هنگام بوت هست نه استارت اپ محیط گرافیکی)مزیت های دیگه ای هم داره اینکه مثلا لازم نیست حتما وارد محیط گرافیکی بشه خب برای محیط گرافیکی هم باید اتولوگین رو فعال کنی که به لحاظ امنیتی کار خوبی نیست و هم اینکه در محیط گرافیکی کلی اتلاف وقت داری!
این رو پیدا کردم:
So you have a script of your own that you want to run at bootup, each time you boot up. This will tell you how to do that.
Write a script. put it in the /etc/init.d/ directory.
Lets say you called it FOO. You then run
% update-rc.d FOO defaults
You also have to make the file you created, FOO, executable, using
$chmod +x FOO
You can check out
% man update-rc.d for more information. It is a Debian utility to install scripts. The option “defaults” puts a link to start FOO in run levels 2, 3, 4 and 5. (and puts a link to stop FOO into 0, 1 and 6.)
Also, to know which runlevel you are in, use the runlevel command.
http://www.debian-administration.org/articles/28 (http://www.debian-administration.org/articles/28)
درسته دیگه؟!
عنوان: پاسخ به: اسکریپتی برای نصب چند نرم‌افزار پشت‌سرهم؟
ارسال شده توسط: سید وحید رضا برهانی در 20 امرداد 1390، 05:18 ق‌ظ
سلام
احتمالا درسته یعنی طبق چیزی که نوشته باید درست باشه (متاسفانه الان من اوبونتویا دبیان ندارم نمی تونم تست کنم )
برای sudo هم من اینطوری استفاده می کنم
vahid ALL = (ALL) NOPASSWD: /usr/bin/ejectبهتره که همین رو همینطوری کپیش کنی بعد تغییرش بدی (فاصله ها و حروف کوچیک و بزرگ مهمه!) vahid و /usr/bin/eject رو باید عوض کنی اگرم که از visudo برای ویرایش استفاده نمی کنی بعداز ویرایش این دستور رو بزن تا فایل رو چک کنه که اشتباه نکرده باشه
sudo visudo -c این بالایی راه عمومیش هست! ولی من یک مدت از یک جور دیگه از دست پسورد پرسیدن فرار میکردم! sudo یک قابلیت داره که پسورد رو می تونه از ورودی بخونه (بگیره) مثلا اینطوری
echo 1234 |sudo -S ejectیا جالبتر!
echo $pass |sudo -S eject خب یعنی فقط باید یک طوری پسورد رو توی متغیر pass قرارداد که خب من اومدم یک اسکریپت نوشتم که یک کلمه ای بهش (در واقع یک جور پسورد جدید و بی اهمیت )می دادی بعد می یومد پسورد رو توی یک فایل می ریخت وتا ۵ دقیقه صبر می کرد بعدش پاکش می کرد خب حالا فقط کافیه که برای پسورد sudo ما از اون فایله پسورد رو بخونیم -نکته ای که وجود داره اینکه اون ۵ دقیقه به این معنی نیست که برنامه (برنامه ای که با sudo باید اجرا بشه)باید تا ۵ دقیقه کارش تموم بشه! خوندن پسورد و کار اون فایل تقریبا آنی است واون ۵ دقیقه به خاطر اینکه مجبور نشم هی پسورد بدم (یکمی گیج کننده شد - اگر خواستی از این راه استفاده کنی به خاطر دلایل امنیتی ! سعی کن از اسامی مشخصی استفاده نکنی!)
عنوان: پاسخ به: اسکریپتی برای نصب چند نرم‌افزار پشت‌سرهم؟
ارسال شده توسط: alieblice در 21 امرداد 1390، 06:16 ب‌ظ
So you have a script of your own that you want to run at bootup, each time you boot up. This will tell you how to do that.
Write a script. put it in the /etc/init.d/ directory.
Lets say you called it FOO. You then run
% update-rc.d FOO defaults
You also have to make the file you created, FOO, executable, using
$chmod +x FOO
You can check out
% man update-rc.d for more information. It is a Debian utility to install scripts. The option “defaults” puts a link to start FOO in run levels 2, 3, 4 and 5. (and puts a link to stop FOO into 0, 1 and 6.)
Also, to know which runlevel you are in, use the runlevel command.
http://www.debian-administration.org/articles/28


توضیح چند خط بالا

وقتی یک اسکریئت رو داخل init.d میزارین به تنهایی خودش هیچ کاری انجام نمیده مگر این که بهش بگین چه مواقعی اجرا بشه
از جایی که معمولا اسکریپت هایی که داخل init.d گذاشته میشه قراره موقع بوت شدن سیستم شروع به کار کنن باید بهشون بگین که به چه صورت شروع به کار کنن
این شروع به کار کردن مربوط به runlevel ها میشه که 6 تا هستن به صورت زیر
0 برای خاموش شدن
1 برای single usermod
2345 برای مصارف دیگر مثلا وقتی که اوبونتو کامل میاد بالا و صفحه گرافیکی داره تو runlevel سه هستش
6 برای رستارت کردن هستش

حالا وقتی که دستور رو به صورت زیر میزنین
update-rc.d FOO defaults

دارین میگین که اسکریئت در runlevel های 2345 شروع به کار کند که به صورت روت هم اجرا میشه
http://www.debuntu.org/how-to-manage-services-with-update-rc.d

عنوان: پاسخ به: اسکریپتی برای نصب چند نرم‌افزار پشت‌سرهم؟
ارسال شده توسط: alieblice2 در 24 امرداد 1390، 06:01 ب‌ظ
یک چیزی الان به ذهنم رسید
شما برایه این که اون چیزایه نا خاسته ای  که ممکنه موقع نصب یک پکیج باعث بشه اسکریپتتون کارش مختل بشه فقط بگین پکیجارو دانلود کنه ولی نصب نکنه
مثلا برایه نرم افزار vnstat دستور این جوری مشه
sudo apt-get install  -d vnstat
عنوان: پاسخ به: اسکریپتی برای نصب چند نرم‌افزار پشت‌سرهم؟
ارسال شده توسط: parsaz در 25 امرداد 1390، 12:53 ق‌ظ
برای تایید نصب (y) هر نرم افزاری که نصب میکنید ۲ تا enter بزنید

یعنی من ۲ تا برنامه گذاشتم برا نصب هم دستورو میزنم بعدش 4 تا enter میزنم

برای من جواب داده  ;D
عنوان: پاسخ به: اسکریپتی برای نصب چند نرم‌افزار پشت‌سرهم؟
ارسال شده توسط: ham!d در 01 شهریور 1390، 11:35 ق‌ظ
Do you want to continue (Y/n)? y
Install these packages without verification (y/N)? y
اگه بخواهیم به دوتا سوال بالا که هنگام نصب نرم‌افزارها از طریق ترمینال پرسیده میشه اتومات جواب y داده بشه:
یک راه برای y زدن یا هر چیز دیگه ای زدن اینکه از دستور yes استفاده کنیم
yes y |sudo apt-get install qtoctave
با force-yes -y-- هم میشه از دست y خلاص شد:
sudo apt-get install --force-yes -y qtoctave
عنوان: پاسخ : اسکریپتی برای نصب چند نرم‌افزار پشت‌سرهم؟
ارسال شده توسط: saman.TF در 09 اردیبهشت 1393، 10:07 ب‌ظ
میشه یه کاری کرد که بعد اینکه با wget یه فایل را دانلود کردم بلا فاصله تو ترمینال یه دستور اجرا بشه ؟ هر دستوری
عنوان: پاسخ : اسکریپتی برای نصب چند نرم‌افزار پشت‌سرهم؟
ارسال شده توسط: doomhammer65ir در 09 اردیبهشت 1393، 10:17 ب‌ظ
با آریا میشه
aria2c LINK --on-download-complete COMMAND
عنوان: پاسخ : اسکریپتی برای نصب چند نرم‌افزار پشت‌سرهم؟
ارسال شده توسط: elyas74 در 09 اردیبهشت 1393، 10:25 ب‌ظ
 - فارغ از این که شما چه دستوراتی رو مینویسید میتونید اون ها رو بعد از تموم شدن همدیگه اجرا کنید.
 - به این مثال توجه کنید :
cd /home/test/ ; wget url ; poweroff در این مثال اول به ادرس پوشه خانه کاربر تست میره و بعد شروع به دانلود میکنه و بعد از تموم شدن دانلود بلافاصله سیستم خاموش میشه.
 - میتونید هر دستوراتی رو اینجوری با هم ترکیب کنید که بعد از تموم شدن همدیگه انجام بشن.
عنوان: پاسخ : اسکریپتی برای نصب چند نرم‌افزار پشت‌سرهم؟
ارسال شده توسط: Yaser-16 در 09 اردیبهشت 1393، 10:45 ب‌ظ
ویرایش شد! اگه ناظران دیدن حذف کنن لطفا! جواب تکراری بود!