apt "অস্থির সিএলআই ইন্টারফেস" সতর্কতা দেয়


63

আমি এমন একটি স্ক্রিপ্ট লিখছি যা একটি প্যাকেজের তথ্য সম্বলিত একটি ফাইল পড়ার প্রয়োজন যার জন্য আমি এই লাইনটি লিখেছি

apt show $PACKAGE_NAME > pack_info.txt

তবে এটি pack_info.txtফাইল তৈরি করে না এবং সর্বদা এই সতর্কতা দেয়:

সতর্কতা: এপ্টের একটি স্থিতিশীল সিএলআই ইন্টারফেস নেই। স্ক্রিপ্টগুলিতে সতর্কতার সাথে ব্যবহার করুন।

আপাতত আমি উভয়কে পুনঃনির্দেশ করার চেষ্টা STDOUTSTDERRব্যবহার করার চেষ্টা করেছি &>এবং এটি pack_info.txtআমাদের প্রয়োজন এমন একটি ফাইল দেওয়ার জন্য কাজ করেছে ।

আমি এগুলি থেকে সামগ্রীগুলি পাওয়ার চেষ্টা করেছি এবং dpkgএটিও কাজ করেছে:

dpkg -s $PACKAGE_NAME > pack_info.txt

কী ভাল এটি এটি কোনও সতর্কতা বা ত্রুটি দেখায় না।

কী খারাপ যে আমরা dpkg ব্যবহার করতে চাই না এবং কেবল এসটিডিওটি চাই ফাইলটিতে পুনর্নির্দেশ করতে।

সুতরাং, আমার কাছে জিজ্ঞাসার জন্য তিনটি প্রশ্ন রয়েছে:

  1. স্থিতিশীল সিএলআই ইন্টারফেস বলতে আমরা আসলে কী বুঝি?
  2. স্ক্রিপ্টগুলিতে কীভাবে নিরাপদে এবং ত্রুটি-মুক্ত এই জাতীয় কমান্ড ব্যবহার করবেন? [উদাহরণ দিয়ে ব্যাখ্যা করতে দয়া করে]
  3. কেবলমাত্র এবং কেবল apt showকোনও ফাইলের STDOUT পুনর্নির্দেশ করার কোনও উপায় আছে ?

উত্তর:


80

aptটার্মিনাল জন্য হয় এবং সুন্দর আউটপুট দেয় যখন apt-getএবং apt-cacheস্ক্রিপ্ট জন্য এবং স্থিতিশীল, parseable আউটপুট দিতে। আপনার apt showআদেশের স্ক্রিপ্ট সমতুল্য :

apt-cache show $PACKAGE_NAME >pack_info.txt

এখন এক এক করে আপনার প্রশ্নের উত্তর দিতে:

স্থিতিশীল সিএলআই ইন্টারফেস বলতে আমরা আসলে কী বুঝি?

aptস্ক্রিপ্টগুলির আউটপুট ভাল ব্যবহারযোগ্য নয়। উদাহরণস্বরূপ, apt install(তুলনা করা apt-get install) এমন একটি অগ্রগতি বার প্রদর্শন করে যা স্ক্রিপ্টগুলির জন্য অকেজো এবং আউটপুট পার্স করার সময় ত্রুটিগুলি ফেলে দিতে পারে। apt show firefoxএকটি অতিরিক্ত রেকর্ডের জন্য একটি ইঙ্গিত দেখায়, যা কোনও স্ক্রিপ্টেও পুরোপুরি অকেজো, আপনি এটি এখানে প্রতিটি রেকর্ড আউটপুট করতে চান - এটিই apt-cache show firefoxঘটে। আসুন দেখে নেওয়া যাক এর man aptসম্পর্কে কী বলা আছে:

কার্যক্ষম (8) কমান্ড end-user হাতিয়ার হিসেবে ডিজাইন করা হয়েছে এবং এটি সংস্করণের মধ্যে আচরণ পরিবর্তন হতে পারে। যদিও এটি পশ্চাদপদ সামঞ্জস্যতা না ভাঙার চেষ্টা করে তবে ইন্টারেক্টিভ ব্যবহারের জন্য যদি কোনও পরিবর্তন উপকারী মনে হয় তবে এটির গ্যারান্টিও নেই।

অ্যাপ্ট (8) এর সমস্ত বৈশিষ্ট্য অ্যাপটি- গেট (8) এবং অ্যাপট-ক্যাশে (8) এর মতো উত্সর্গীকৃত এপিটি সরঞ্জামগুলিতে উপলব্ধ । apt (8) কেবলমাত্র কয়েকটি বিকল্পের ডিফল্ট মান পরিবর্তন করে (দেখুন apt.conf (5) এবং বিশেষত বাইনারি স্কোপ)। সুতরাং আপনার স্ক্রিপ্টগুলিতে এই কমান্ডগুলি (সম্ভাব্য কয়েকটি অতিরিক্ত বিকল্প সক্ষম করার সাথে) ব্যবহার করা পছন্দ করা উচিত কারণ তারা যথাসম্ভব পশ্চাদপটে সামঞ্জস্য রাখে।


স্ক্রিপ্টগুলিতে কীভাবে নিরাপদে এবং ত্রুটি-মুক্ত এই জাতীয় কমান্ড ব্যবহার করবেন?

কেবল apt-getবা apt-cacheযথাক্রমে প্লেইনের পরিবর্তে ব্যবহার করুন apt। :) সমমানের তালিকার জন্য এই উত্তরটি দেখুন ।


কেবলমাত্র এবং কেবল কোনও ফাইলের কাছে অ্যাপ্লিকেশন প্রদর্শনের STDOUT পুনঃনির্দেশ করার কোনও উপায় আছে?

আপনি এটি ইতিমধ্যে সঠিকভাবে করেছেন: >fileবা 1>fileস্টডআউট 2>fileপুনর্নির্দেশ করে, স্ট্যাডারকে &>fileপুনঃনির্দেশ করে এবং উভয়টিতে পুনঃনির্দেশ করে file

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.