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

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

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


توزیع گنو/لینوکس اوبونتو ۲۰ ساله شد 🎉

نویسنده موضوع: نصب پکیج بصورت مخفی  (دفعات بازدید: 4352 بار)

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

آفلاین rahimi12

  • Full Member
  • *
  • ارسال: 228
  • جنسیت : دختر
نصب پکیج بصورت مخفی
« : 07 فروردین 1396، 03:26 ب‌ظ »
سلام در اوبونتو که پایه دبیانه میخام با بش اسکریپت اینکارو.بکنم.

فرض کنید میخام این دستور اجرا بشه

apt update
apt install nmap

حتما دیدین که موقع اجرای دستورا که نصب میشه سطوری از کدها روی محیط ترمینال اجرا میشن. من میخام بجای نمایش اونا متنی که من میگم مثلا این متن installing فقط نشون بده و کاربر این متن من رو ببینه نه پروسه نصب پکیج رو.
چجوری میشه کارو کرد

آفلاین rahimi12

  • Full Member
  • *
  • ارسال: 228
  • جنسیت : دختر
پاسخ : نصب پکیج بصورت مخفی
« پاسخ #1 : 07 فروردین 1396، 06:13 ب‌ظ »
خعلی واجبه کسی نمیدونه؟

آفلاین علی رزم دیده

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 1244
  • جنسیت : پسر
  • ali76 سابق
پاسخ : نصب پکیج بصورت مخفی
« پاسخ #2 : 07 فروردین 1396، 06:28 ب‌ظ »
سلام
بهترین راه و البته مطمئن ترین راه استفاده از سوییچ های -q و -qq و -qqq هستش که نمونه ی دستورات رو پایین می ذارم :
که خودتون می تونین با تست کردن این سه سوییچ تفاوتشون رو شهودی ببینین :
sudo apt update
sudo apt -q update
sudo apt -qq update
sudo apt -qqq update
sudo apt install pkgname
sudo apt -q install pkgname
sudo apt -qq install pkgname
sudo apt -qqq install pkgname
در واقع این سوییچ ها در کنار قابلیت interactive (تعاملی) که می دن با سطوح های مختلف مقداری از خروجی apt رو حذف می کنن
ولی چون شما گفتین برای script نویسی می خواین بهتره در کنار این سوییچ ها از سوییچ -y هم استفاده کنین چون برای دانلود نرم افزارها apt از شما تایید می خواد :
نقل‌قول
Do you want to continue? [Y/n]
ولی تو اسکریپت این تایید گرفتن زیاد وجه مناسبی نداره برای همین می تونین این تایید رو از قبل داده باشین
(دقت کنین که بعضی از اسکریپت نویس ها می یان پا رو فراتر می ذارن و برای این کار از سوییچ های --yes --force-yes استفاده می کنن ولی من به هیچ وجه استفاده از این سوییچ ها رو توصیه نمی کنم چون هر سوالی که پرسیده بشه رو با yes ادامه می ده و این ممکنه باعث به خطر انداختن سیستم بشه)
پس دستوری که من توصیه می کنم این شکلیه :
sudo apt -qqq install -y pkgnameدر ادامه یه راه دیگه رو معرفی می کنم که این راه رو اصلا توصیه نمی کنم چون دیگه قابلیت تعاملی رو به کیفیتی که دستور قبل داشت رو نداره و بسیاری از خظاها و یا هشدارها دیگه قبل رویت نخواهند بود در صورتی که -q خطا ها رو به نمایش می ذاشت :
نقل‌قول
-qq No output except for errors
و اما این راه غلط :
sudo apt update > /dev/null
sudo apt install -y pkgname > /dev/null
تو این راه غلط ما میام و خروجی دستور رو به ناکجاآباد (/dev/null) هدایت می کنیم ولی اگه این دستور رو امتحان کنین می بینین که تنها یک هشدار با این شکل ایجاد می شه :
نقل‌قول
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
همون طور که می بینین خود apt هم می گه که صورت پایداری رو تو این حالت نداره ولی بعضی از اسکریپت نویس ها به جای پند گرفتن میان , برای ندین این هشدار یک اشتباه دیگه رو هم انجام می دن :
sudo apt-get update > /dev/nullو یا این شکلی میان و فقط صورت مسئله رو پاک می کنن :
sudo apt update > /dev/null 2> /dev/nullکه در واقع تو اینجا میان و خروجی هشدار رو هم به ناکجاآباد هدایت می کنن
ولی شاید این سوال براتون پیش بیاد که چرا apt-get اون هشدار رو به نمایش نمی ذاره ؟
برای جواب به این سوال اول لازمه که درمورد تفاوت apt و apt-get یه چیزایی رو بگم :
apt-get مربوط به back-end هستش و در واقع تو ورژن های جدید برای انسان بهینه نشده و در واقع ماهیت low-level پیدا کرده
apt دقیقا برای کاربر انسانی ساخته شده و در واقع ماهیت end-user داره پس نسبت به apt-get نسبت اعمال انسانی هوشمندتر عمل می کنه
نقل‌قول
The `apt` command is meant to be pleasant for end users and does not need
to be backward compatible like apt-get.
همون طور که بالا گفتم apt-get برای انسان بهینه نشده پس هوشمندی لازم رو تو فهمیدن اینکه خروجی توسط انسان redirect شده یا نه رو نداره پس نمی دونه و در نتیجه نمی تونه که خطا و یا هشداری رو به نمایش بذاره
« آخرین ویرایش: 07 فروردین 1396، 06:38 ب‌ظ توسط ali76 »

آفلاین rahimi12

  • Full Member
  • *
  • ارسال: 228
  • جنسیت : دختر
پاسخ : نصب پکیج بصورت مخفی
« پاسخ #3 : 07 فروردین 1396، 07:17 ب‌ظ »
 برادر ممنونم مورد لطف قرار دادی منو
یک سوال کوتاه.

این دستور چیزی بود که میخواستم

sudo apt -qqq update

حالا سوالم اینه مثلا من اسکریپتم رو توی اوبونتو 16.04 نوشتم. بعدش نکنه در توزیعی مثل کالی کار نکنه اون قسمت دستور؟

در توزیع ورزن های آینده اوبونتو چطور؟


آفلاین علی رزم دیده

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 1244
  • جنسیت : پسر
  • ali76 سابق
پاسخ : نصب پکیج بصورت مخفی
« پاسخ #4 : 07 فروردین 1396، 07:24 ب‌ظ »
خواهش می کنم دوست عزیز
من با کالی کار نکردم و می تونین خودتون تست کنین سوییچ -qqq برای apt تو کالی کار می کنه یا نه
ولی تو اکثر دبیان بیس هایی که مدیر بسته اونا apt بود من مشکلی با این سوییچ نداشتم (البته تو بعضی از توزیع ها که الان دقیق یادم نیست کدوما بودن -q و -qq کار می کرد ولی -qqq نه)
در مورد آینده هم نمی تونم نظری بدم شاید راهکار جدیدی استفاده شد و یا شاید اوبونتو کلا از apt استفاده نکرد (همون طور که فدورا yum رو گذاشت کنار و از dnf استفاده کرد)
در ضمن اضافه کردن [حل شد] به عنوان فراموش نشه  :)

آفلاین rahimi12

  • Full Member
  • *
  • ارسال: 228
  • جنسیت : دختر
پاسخ : نصب پکیج بصورت مخفی
« پاسخ #5 : 07 فروردین 1396، 07:32 ب‌ظ »
چشم اضافه میکنم.

این جمله هم فکر نمیکنم اگر حقیقت پیدا کنه به این زودیا حقیقت پیدا کنه

:::: یا شاید اوبونتو کلا از apt استفاده نکرد ؛؛؛؛؛

آفلاین alipg

  • Full Member
  • *
  • ارسال: 239
  • جنسیت : پسر
پاسخ : نصب پکیج بصورت مخفی
« پاسخ #6 : 07 فروردین 1396، 08:31 ب‌ظ »
سلام در اوبونتو که پایه دبیانه میخام با بش اسکریپت اینکارو.بکنم.

فرض کنید میخام این دستور اجرا بشه

apt update
apt install nmap

حتما دیدین که موقع اجرای دستورا که نصب میشه سطوری از کدها روی محیط ترمینال اجرا میشن. من میخام بجای نمایش اونا متنی که من میگم مثلا این متن installing فقط نشون بده و کاربر این متن من رو ببینه نه پروسه نصب پکیج رو.
چجوری میشه کارو کرد
سلام
علاوه بر روشی که دستومن فرمودن ، این روش هم هست.
همیشه و در همه توزیع‌ها  کار می‌کنه.
sudo apt install nmap > /dev/nullذر این حالت خطا ها رو نشون می‌ده برای حذف کردن خطاها هم
sudo apt install nmap > /dev/null 2>&1می‌تونی به جای فرستان به null داخل یک فایل بریزی که لاگش هم داشته باشی.

آفلاین rahimi12

  • Full Member
  • *
  • ارسال: 228
  • جنسیت : دختر
پاسخ : نصب پکیج بصورت مخفی
« پاسخ #7 : 07 فروردین 1396، 08:41 ب‌ظ »
توی مسیر dev فایلی بنام null نیست اخه. کجا میفرسته با اینحساب؟

آفلاین علی رزم دیده

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 1244
  • جنسیت : پسر
  • ali76 سابق
پاسخ : نصب پکیج بصورت مخفی
« پاسخ #8 : 07 فروردین 1396، 08:43 ب‌ظ »
@alipg
علی جان من این روش رو هم تو کامنتم توضیح داده بودم ولی این روش زیاد توصیه نمی شه چون خیلی اولا apt یا هر مدیربسته ای تو این حالت پایدار نیست درثانی خیلی از هشدار ها و حتی بعضی از ارور ها هم از دست می ده کافیه یه بار دستور مورد نظر رو ران کنیم :
sudo apt install nmap > /dev/null

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

و دستور دوم هم خروجی دستور بالا رو redirect می کنه به /dev/null که اتفاقاً اوضاع بدتر هم میشه چون معدود هشدارهایی که تو حالت قبل قابل رویت بود دیگه قابل رویت نخواهند بود در کل توجه کردن به توصیه خود apt و هم چنین استفاده از سوییچ های آماده apt و بقیه ی مدیربسته ها بیشتر توصیه میشه

آفلاین علی رزم دیده

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 1244
  • جنسیت : پسر
  • ali76 سابق
پاسخ : نصب پکیج بصورت مخفی
« پاسخ #9 : 07 فروردین 1396، 08:46 ب‌ظ »
توی مسیر dev فایلی بنام null نیست اخه. کجا میفرسته با اینحساب؟
ناکجا آباد ! بخوام دقیق تر بگم به null device که در واقع یک نوع device محسوب می شه که هر اطلاعاتی که بهش فرستاده بشه از بین می برتش و نابودش می کنه

آفلاین alipg

  • Full Member
  • *
  • ارسال: 239
  • جنسیت : پسر
پاسخ : نصب پکیج بصورت مخفی
« پاسخ #10 : 07 فروردین 1396، 08:51 ب‌ظ »
@alipg
علی جان من این روش رو هم تو کامنتم توضیح داده بودم ولی این روش زیاد توصیه نمی شه چون خیلی اولا apt یا هر مدیربسته ای تو این حالت پایدار نیست درثانی خیلی از هشدار ها و حتی بعضی از ارور ها هم از دست می ده کافیه یه بار دستور مورد نظر رو ران کنیم :
sudo apt install nmap > /dev/null

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

و دستور دوم هم خروجی دستور بالا رو redirect می کنه به /dev/null که اتفاقاً اوضاع بدتر هم میشه چون معدود هشدارهایی که تو حالت قبل قابل رویت بود دیگه قابل رویت نخواهند بود در کل توجه کردن به توصیه خود apt و هم چنین استفاده از سوییچ های آماده apt و بقیه ی مدیربسته ها بیشتر توصیه میشه
درسته ، البته حالت اول خطاها رو نشون می‌ده و اون هم یک وارنیگ هست :)
 ودر حالت دوم خطاها مشاهده نمی‌شه!!
البته بیشتر برای زانسبه که بر فرض خروجی استاندار رو بفرستی توی null و ارور استاندارد رو بفرستی داخل یک فایل جهت داشتن لاگ.

آفلاین علی رزم دیده

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 1244
  • جنسیت : پسر
  • ali76 سابق
پاسخ : نصب پکیج بصورت مخفی
« پاسخ #11 : 07 فروردین 1396، 09:22 ب‌ظ »
بله علی جان اگه لوگ ها به یک فایل منتقل بشه بعضا می تونه حتی مفید باشه ولی متاسفانه در حالت کلی این طوری نیست مثلا شما دستور پایین رو بزنین :
sudo apt install blender > /dev/null
حالا می بینین که این دستور هم چنان ثابت مونده و هیچ فایلی دانلود و نصب نمی شه که برای اینکه بفهمیم که کجا گیر کرده مراحل زیر رو دنبال می کنیم :
touch apt.log
sudo apt install blender > apt.log
cat apt.log
و اما خروجی :
Reading package lists...
Building dependency tree...
Reading state information...
The following additional packages will be installed:
  blender-data libblosc1 libglew1.13 libjemalloc1 liblog4cplus-1.1-9
  libopencolorio1v5 libopenimageio1.6 libopenvdb3.1 libyaml-cpp0.3v5
Suggested packages:
  glew-utils
The following NEW packages will be installed:
  blender blender-data libblosc1 libglew1.13 libjemalloc1 liblog4cplus-1.1-9
  libopencolorio1v5 libopenimageio1.6 libopenvdb3.1 libyaml-cpp0.3v5
0 upgraded, 10 newly installed, 0 to remove and 0 not upgraded.
Need to get 36.9 MB of archives.
After this operation, 171 MB of additional disk space will be used.
Do you want to continue? [Y/n]
همون طور که حدس می زدم تو قسمت تایید برای دانلود موند و منتظر دریافت y از ماست برای همینه که میگم redirect کردن خروجی پکیجی عینه apt که به شدت interactive هستش کار درستی نیست (حالا تو این مورد خاص می شه از سوییچ -y استفاده ولی ممکنه این پرسش و جواب ها ادامه پیدا کنه که در اون صورت باید از سوییچ --force-yes استفاده کنیم که اصلا توصیه نمی شه)

آفلاین سعيد

  • Sr. Member
  • *
  • ارسال: 296
پاسخ : نصب پکیج بصورت مخفی
« پاسخ #12 : 07 فروردین 1396، 10:18 ب‌ظ »
چشم اضافه میکنم.

این جمله هم فکر نمیکنم اگر حقیقت پیدا کنه به این زودیا حقیقت پیدا کنه

:::: یا شاید اوبونتو کلا از apt استفاده نکرد ؛؛؛؛؛
اوبونتو به زودی به  snap   می ره
apt  در همه توزیع هی دبیانی یکسان عمل می کند

آفلاین rahimi12

  • Full Member
  • *
  • ارسال: 228
  • جنسیت : دختر
پاسخ : نصب پکیج بصورت مخفی
« پاسخ #13 : 07 فروردین 1396، 10:23 ب‌ظ »
چشم اضافه میکنم.

این جمله هم فکر نمیکنم اگر حقیقت پیدا کنه به این زودیا حقیقت پیدا کنه

:::: یا شاید اوبونتو کلا از apt استفاده نکرد ؛؛؛؛؛
اوبونتو به زودی به  snap   می ره
apt  در همه توزیع هی دبیانی یکسان عمل می کند
ینی چجوری؟
آیا مطمئن هستید یا حدسه؟

اگر بره هم اوبونتو توزیع دبیانی است apt هم هنوز سرجاش میمونه ؟

آفلاین alipg

  • Full Member
  • *
  • ارسال: 239
  • جنسیت : پسر
پاسخ : نصب پکیج بصورت مخفی
« پاسخ #14 : 07 فروردین 1396، 10:53 ب‌ظ »
چشم اضافه میکنم.

این جمله هم فکر نمیکنم اگر حقیقت پیدا کنه به این زودیا حقیقت پیدا کنه

:::: یا شاید اوبونتو کلا از apt استفاده نکرد ؛؛؛؛؛
اوبونتو به زودی به  snap   می ره
apt  در همه توزیع هی دبیانی یکسان عمل می کند
سیستم اسنپ فرق داره با apt.
قرار نیست جایگزین apt بشه.