چه طور یک اسکریپت بنویسم که چند نرمافزار را از طریق کنسول با دستور 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 ثبت کنه، که بعد ببینیم چه کار کرده، میشه گلستان!
***
دوستان کسی تجربهای داشته؟
یک راه برای 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
چرا سه تا خط آخر مثل هم تکرار شدند؟!
دقیقا می شه بگی برای چی می خوای از 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)
درسته دیگه؟!
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