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

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید




نویسنده موضوع: اسکریپتی برای نصب چند نرم‌افزار پشت‌سرهم؟  (دفعات بازدید: 9337 بار)

0 کاربر و 3 مهمان درحال مشاهده موضوع.

آفلاین ham!d

  • High Sr. Member
  • *
  • ارسال: 599
چه طور یک اسکریپت بنویسم که چند نرم‌افزار را از طریق کنسول با دستور 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، وقتی سیستم نیمه‌شب روشن می‌شه(با تنظیم بایاس)، شروع کنه به دانلود/نصب و پس از پایان دانلود/نصب سیستم اتومات خاموش بشه، یا در زمان تعیین شده سیستم رو خاموش کنه، خیلی عالی می‌شه.

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

اگر هم log ثبت کنه، که بعد ببینیم چه کار کرده، می‌شه گلستان!
***
دوستان کسی تجربه‌ای داشته؟
« آخرین ویرایش: 21 امرداد 1390، 07:11 ب‌ظ توسط Dream »

آفلاین parsibox

  • Hero Member
  • *
  • ارسال: 777
  • جنسیت : پسر
  • آچار فرانسه
    • سایت شخصی محسن داوری
تاجایی که من یادمه همه ی اینا را پشت سر هم میتونی بنوسی
یعنی یه چیزی مثل این
apt-get install knemo  stellarium lazarus-ideخیلی وقته چیزی نصب نکردم
یه تست بکن شاید جواب بده
http://forum.ubuntu.ir/index.php/topic,12830.0.html
http://forum.ubuntu.ir/index.php/topic,12928.new.htm
http://forum.ubuntu.ir/index.php/topic,12151.0.html
توجه : کلیه ی کاربران لینوکس در اصفهان که متقاضی شارژ یا راه اندازی ADSL پیشگامان یا صبانت هستند میتوانند از طریق ما 5% تخفیف بگیرند

آفلاین ham!d

  • High Sr. Member
  • *
  • ارسال: 599
همه‌ی نرم‌افزارها را پشت سر هم میتونی بنوسی
مرسی، دنبال همین بودم، چه ساده!  :oops:
ولی هم‌چنان برای دانلود/نصب شبانه مشکل وجود داره و اون پسورد مربوط به sudo  و دوتا سوال‌های "تایید" هستند، که در اولین اجرا باید پای کامپیوتر بود. نمی‌شه پسورد را به نحوی توی اسکریپت که برای کنسول قابل شناسایی باشه، جا داد(تعریف کرد)؟

آفلاین alieblice

  • High Hero Member
  • *
  • ارسال: 1275
برای سوال پرسیدن اینو بزارین
خودم تستش نکزدم
-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=1132821

آفلاین سید وحید رضا برهانی

  • High Hero Member
  • *
  • ارسال: 1668
  • جنسیت : پسر
  • یک مخالف نرم افزار اوپن سورس
یک راه برای y زدن یا هر چیز دیگه ای زدن اینکه از دستور yes استفاده کنی
yes y |apt-get install qtبرای اینکه در ساعت خاصی خاموش بشه من اینکار رو می کنم :
چون در زمان خاص و معلومی روشن می شه می شه از timeout استفاده کرد مثلا
timeout 4h apt-get install qt۴ ساعت بعد از اینکه این دستور اجرا بشه مهلت می ده که برنامه کار خودش رو به پایان برسونه و خارج بشه اگر تا ۴ ساعت همچنان این برنامه (در اینجا apt-get ) فعال بشه برنامه رو می بنده که خب می تونی بعد از این خط (در یک اسکریپت) دستور خاموش شدن رو بذاری که در این صورت در دوحالت خاموش می شه یا اینکه ۴ ساعت از زمان روشن شدن بگذره یا اینکه برنامه زودتر ، کارش تموم بشه یک اسکریپتی قبلا نوشته بودم و گذاشته بودم که همین کار رو می کرد دنبال بگرد برای ایده گرفتن چیز خوبی بود (خودمم الان از نسخه ی سفارشی شده ی همون اسکریپت استفاده م یکنم )
نرم افزاری که نشه سیخ انگولکش کرد (به هر دلیلی چه به‌خاطر قانون و چه پیچیدگی یا توسعه سریع)نرم افزار آزاد نیست حالا مهم نیست چه بنیادی یا چه افرادی اون رو نوشته باشند یا GPL باشه یانه!
نرم افزار آزاد یک جنبش هست نه یک تیکه کاغذ پاره(GPL)
حق فهمیدن از حق خوندن مهمتره

آفلاین ham!d

  • High Sr. Member
  • *
  • ارسال: 599
یک راه برای 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:48 ب‌ظ توسط Dream »

آفلاین سید وحید رضا برهانی

  • High Hero Member
  • *
  • ارسال: 1668
  • جنسیت : پسر
  • یک مخالف نرم افزار اوپن سورس
سلام
البته اون لینک هم چیز خوبیه ولی منظورم این بود
http://forum.ubuntu.ir/index.php/topic,17485.msg134242.html#msg134242
دقیقا می شه بگی برای چی می خوای از sudo استفاده کنی؟ اگر بتونی که توی استارت اپ بزاریش دیگه نمی خواد از sudo استفاده کنی ! چون نرم افزارهای startup با دسترسی روت اجرا می شن!(البته توی آرچ اینطوریه و نباید توی اوبونتو فرق بکنه ) استارت آپ (منظورم در هنگام بوت هست نه استارت اپ محیط گرافیکی)مزیت های دیگه ای هم داره اینکه مثلا لازم نیست حتما وارد محیط گرافیکی بشه خب برای محیط گرافیکی هم باید اتولوگین رو فعال کنی که به لحاظ امنیتی کار خوبی نیست و هم اینکه در محیط گرافیکی کلی اتلاف وقت داری!
نرم افزاری که نشه سیخ انگولکش کرد (به هر دلیلی چه به‌خاطر قانون و چه پیچیدگی یا توسعه سریع)نرم افزار آزاد نیست حالا مهم نیست چه بنیادی یا چه افرادی اون رو نوشته باشند یا GPL باشه یانه!
نرم افزار آزاد یک جنبش هست نه یک تیکه کاغذ پاره(GPL)
حق فهمیدن از حق خوندن مهمتره

آفلاین ham!d

  • High Sr. Member
  • *
  • ارسال: 599
دقیقا می شه بگی برای چی می خوای از 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
درسته دیگه؟!
« آخرین ویرایش: 27 مهر 1391، 06:53 ب‌ظ توسط ham!d »

آفلاین سید وحید رضا برهانی

  • High Hero Member
  • *
  • ارسال: 1668
  • جنسیت : پسر
  • یک مخالف نرم افزار اوپن سورس
سلام
احتمالا درسته یعنی طبق چیزی که نوشته باید درست باشه (متاسفانه الان من اوبونتویا دبیان ندارم نمی تونم تست کنم )
برای 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 باید اجرا بشه)باید تا ۵ دقیقه کارش تموم بشه! خوندن پسورد و کار اون فایل تقریبا آنی است واون ۵ دقیقه به خاطر اینکه مجبور نشم هی پسورد بدم (یکمی گیج کننده شد - اگر خواستی از این راه استفاده کنی به خاطر دلایل امنیتی ! سعی کن از اسامی مشخصی استفاده نکنی!)
نرم افزاری که نشه سیخ انگولکش کرد (به هر دلیلی چه به‌خاطر قانون و چه پیچیدگی یا توسعه سریع)نرم افزار آزاد نیست حالا مهم نیست چه بنیادی یا چه افرادی اون رو نوشته باشند یا GPL باشه یانه!
نرم افزار آزاد یک جنبش هست نه یک تیکه کاغذ پاره(GPL)
حق فهمیدن از حق خوندن مهمتره

آفلاین alieblice

  • High Hero Member
  • *
  • ارسال: 1275
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

  • Sr. Member
  • *
  • ارسال: 280
یک چیزی الان به ذهنم رسید
شما برایه این که اون چیزایه نا خاسته ای  که ممکنه موقع نصب یک پکیج باعث بشه اسکریپتتون کارش مختل بشه فقط بگین پکیجارو دانلود کنه ولی نصب نکنه
مثلا برایه نرم افزار vnstat دستور این جوری مشه
sudo apt-get install  -d vnstat

آفلاین parsaz

  • Full Member
  • *
  • ارسال: 124
برای تایید نصب (y) هر نرم افزاری که نصب میکنید ۲ تا enter بزنید

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

برای من جواب داده  ;D

آفلاین ham!d

  • High Sr. Member
  • *
  • ارسال: 599
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
« آخرین ویرایش: 01 شهریور 1390، 11:44 ق‌ظ توسط Dream »

آفلاین saman.TF

  • Full Member
  • *
  • ارسال: 121
  • جنسیت : پسر
پاسخ : اسکریپتی برای نصب چند نرم‌افزار پشت‌سرهم؟
« پاسخ #13 : 09 اردیبهشت 1393، 10:07 ب‌ظ »
میشه یه کاری کرد که بعد اینکه با wget یه فایل را دانلود کردم بلا فاصله تو ترمینال یه دستور اجرا بشه ؟ هر دستوری

آفلاین doomhammer65ir

  • High Hero Member
  • *
  • ارسال: 1572
  • جنسیت : پسر
    • IRAN Backup
پاسخ : اسکریپتی برای نصب چند نرم‌افزار پشت‌سرهم؟
« پاسخ #14 : 09 اردیبهشت 1393، 10:17 ب‌ظ »
با آریا میشه
aria2c LINK --on-download-complete COMMAND