হ্যাঁ / না থেকে প্রম্পট করার জন্য জোর করে চাপ দিন


11

apt-getহ্যাঁ / কোন প্রম্পট প্রদর্শন করার জন্য জোর করার কোনও উপায় আছে কি ? একটি --force-yesবিকল্প বিদ্যমান, তবে মনে হয় --force-promptএটির মতো বা কোনও অনুরূপ বিকল্প নেই। যদি আপনি এমন প্যাকেজ ইনস্টল করার চেষ্টা করেন যা ইতিমধ্যে ইনস্টল করা সমস্ত নির্ভরতা রয়েছে তবে এটি হ্যাঁ / না প্রম্পট প্রদর্শন না করে ইনস্টলেশন শুরু করবে। নির্ভরশীলতা বিদ্যমান এবং কোনটি ইনস্টল করা হবে কিনা তা আপনি পর্যালোচনা করতে চাইলে এটি উদ্বেগজনক হতে পারে কারণ সম্ভাব্য নির্ভরতা সময়ের আগে ইনস্টল করা হয়েছে কিনা তা আপনি জানেন না।

দ্রষ্টব্য: কখন "অ্যাপটি-ইনস্টল করুন" আমাকে চালিয়ে যেতে চাই কিনা তা নিশ্চিত করতে জিজ্ঞাসা করে? কিছুটা সম্পর্কিত যা এতে প্রম্পটটি প্রদর্শিত হয় এমন কোন স্ট্যান্ডার্ড শর্তে বর্ণনা করে। আমি কীভাবে এটি জোর করা যায় তা জানতে আগ্রহী।


1
"নির্ভরশীলতা বিদ্যমান এবং কোনটি ইনস্টল করা হবে কিনা তা পর্যালোচনা করতে চাইলে এটি বিরক্তিকর হতে পারে।" আমি এতে বিভ্রান্ত যদি কোনও নির্ভরতা ইনস্টল করা হয় না, আপনি কী পর্যালোচনা করছেন?
ফাহিম মিঠা

2
আকর্ষণীয় প্রশ্ন। এটি করার কোনও উপায় নেই বলে মনে হচ্ছে, apt-getউপযুক্ত বিকল্পের সাথে সংক্ষিপ্ত প্যাচিং । যাইহোক, এই অনুমানী বিকল্পটি আমার কাছে খুব স্পষ্টভাবে মনে হয় না ran
ফাহিম মিঠা

@ ফাহিমমিঠ এটি করার জন্য আমার উদ্দেশ্য হ'ল apt-get installপরিবর্তে নতুন কোন নির্ভরতা / ইনস্টল করা যাবে তা খুঁজে পাওয়া অনেক সহজ apt-cache showpkg
ব্যবহারকারী369450

উত্তর:


10

এপটি-গেটের বর্তমান প্রয়োগের সাথে এটি করার কোনও উপায় নেই, আপনাকে একটি বৈশিষ্ট্য অনুরোধ খোলার প্রয়োজন এবং রক্ষণাবেক্ষণকারীকে আবেদন করতে হবে। অ্যাপট-গেটের বর্তমান আচরণটি হ'ল আপনি যখন প্যাকেজগুলি ইনস্টল করার ঘোষণা দিয়েছিলেন তখন যে প্যাকেজগুলি ইনস্টল হবে তার সমান এবং অন্য কোনও প্যাকেজ আপগ্রেড বা ব্রেক দ্বারা প্রভাবিত হয় না, অ্যাপটি-গেট ইতিমধ্যে ব্যবহারকারীকে ধরে নেয় নিশ্চিত কি করা যাচ্ছে হয় , যদি আপনি নিশ্চিত না বা বিশ্লেষণ করতে আসলে প্যাকেজ ইনস্টল ছাড়াই সম্পন্ন করা হবে চান, আপনি ব্যবহার করতে পারেন Costas সুপারিশ এর -s, --simulate, --just-print, --dry-run, --recon, --no-act

অ্যাপটি-লিস্টব্যাগগুলির মতো অন্যান্য সরঞ্জাম রয়েছে যা প্যাকেজগুলির ইনস্টল করার পূর্বে সংস্করণগুলি ইনস্টল করার আগে তাদের বিশ্লেষণ করবে (বাগের ক্ষেত্রে এই ক্ষেত্রে) এবং আপনাকে সতর্ক করতে হবে।


4

কমান্ডটি yesকেবলমাত্র একটি প্যাকেজ ইনস্টল করার ক্ষেত্রে ধরে নিয়েছে (যা কমান্ড লাইন থেকে শুরু হয়েছিল) এবং সিস্টেমের সমস্ত নির্ভরতা ইতিমধ্যে অর্থাৎ কোন জিজ্ঞাসা করা প্যাকেজ ব্যতীত ইনস্টল করার জন্য কিছুই নেই।

অন্য কথায় "যদি কিছু না দেখার (অতিরিক্ত প্যাকেজ না থাকে) তবে প্রম্পট (জিজ্ঞাসা করার জন্য কিছুই নেই)"।

পরীক্ষার উদ্দেশ্যে আপনি একটি কী ব্যবহার করতে পারেন -s, --simulate, --just-print, --dry-run, --recon, --no-act


@cpburnz যদি all dependecies are installedইতিমধ্যে আপনার হবে না , যাতে অন্য কোন প্যাকেজ ইনস্টল করা হবে না হয়েছে promted হয়েছে।
কস্টাস

0

পুরানো প্রশ্ন, আমি দেখতে পারি, তবে এখন একই পরিস্থিতিতে in সাধারণত আমি sudo aptitude install -P PACKAGE_NAMEইনস্টল করার আগে যা জিজ্ঞাসা করি তা ব্যবহার করি । তবে এখন ডেবিয়ান ডিফল্ট প্যাকেজ ম্যানেজারটিতে রয়েছে apt|apt-getএবং এটির এই কার্যকারিতা নেই। অবশ্যই আমি এখনও এটি ইনস্টল করতে aptitudeএবং ব্যবহার করতে পারি ... তবে আমি apt-getইনস্টলেশনের আগে জিজ্ঞাসা করার জন্য ছোট sh / bash wrapper ফাংশন / স্ক্রিপ্ট লিখেছি । এটি সত্যিই কাঁচা এবং আমি এটি আমার টার্মিনালে একটি ফাংশন হিসাবে লিখেছি।

$ f () { sudo apt-get --simulate install "$@" | grep -v '^Inst\|^Conf'; read -p 'Do You want to continue (y/N): ' ans; case $ans in [yY] | [yY][eE][sS]) sudo apt-get -y install "$@";; *);; esac; }

এখন, এটি আরও পরিষ্কার করা যাক:

f () {
  # Do filtered simulation - without lines contains 'Inst' and 'Conf'
  sudo apt-get --simulate install "$@" | grep -v '^Inst\|^Conf';

  # Interact with user - If You want to proceed and install package(s),
  # simply put 'y' or any other combination of 'yes' answer and tap ENTER.
  # Otherwise the answer will be always not to proceed.
  read -p 'Do You want to continue (y/N): ' ans;
  case $ans in
    [yY] | [yY][eE][sS])
      # Because we said 'yes' I put -y to proceed with installation
      # without additional question 'yes/no' from apt-get 
      sudo apt-get -y install "$@";
    ;;
    *)
      # For any other answer, we just do nothing. That means we do not install
      # listed packages.
    ;;
  esac
}

এই ফাংশনটি শ / বাশ স্ক্রিপ্ট হিসাবে ব্যবহার করতে সহজভাবে স্ক্রিপ্ট ফাইল তৈরি করুন যেমন my_apt-get.shসামগ্রী সহ (দ্রষ্টব্য: তালিকায় মন্তব্যগুলি থাকে না, এটি কিছুটা ছোট করার জন্য ;-)):

#!/bin/sh

f () {
  sudo apt-get --simulate install "$@" | grep -v '^Inst\|^Conf';
  read -p 'Do You want to continue (y/N): ' ans;
  case $ans in
    [yY] | [yY][eE][sS])
      sudo apt-get -y install "$@";
    ;;
    *)

    ;;
  esac
}

f "$@"

তারপরে এটি উদাহরণস্বরূপ রাখুন ~/bin/এবং এটির সাথে সম্পাদনযোগ্য করুন $ chmod u+x ~/bin/my_apt-get.sh। ডিরেক্টরিটি ~/binযদি আপনার PATHচলকটিতে অন্তর্ভুক্ত থাকে তবে আপনি এটিকে কেবল সম্পাদন করতে সক্ষম হবেন:

$ my_apt-get.sh PACKAGE_NAME(S)_TO INSTALL

দয়া করে নোট করুন:

  • কোডটি ব্যবহার করে sudo । আপনি যদি rootঅ্যাকাউন্ট ব্যবহার করেন তবে আপনার সম্ভবত এটি সামঞ্জস্য করা দরকার।
  • কোডটি শেল স্বতঃপূরণ সমর্থন করে না
  • কোড কীভাবে শেল প্যাটার্নগুলির সাথে কাজ করে তার কোনও ধারণা নেই (উদাঃ "!", "*", "?", ...)
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.