Ssh ব্যবহার করার সময় ফ্রন্টএন্ড: ডায়ালগ শুরু করতে অক্ষম


52

আমি নীচের কমান্ডটি পরীক্ষার পরিবেশে মূল হিসাবে হিসাবে ssh ওপরে চালাচ্ছি:

ssh <remote_srv> "apt-get autoremove"

আমার sshd_config এ আমার কাছে "PermitRootLogin विना-পাসওয়ার্ড" আছে এবং আমি দূরবর্তী সার্ভারে অনুমোদিত_কি ফাইলগুলিতে মূলের id_rsa.pub যুক্ত করেছি।

তবুও আমি নিম্নলিখিত ত্রুটিগুলি পেয়েছি:

debconf: unable to initialize frontend: Dialog
debconf: (TERM is not set, so the dialog frontend is not usable.)
debconf: falling back to frontend: Readline
debconf: unable to initialize frontend: Readline
debconf: (This frontend requires a controlling tty.)
debconf: falling back to frontend: Teletype

আমি এটি ssh এর ডি ম্যান পৃষ্ঠাগুলিতে সন্ধান করেছি, তবে সিউডো-পদ এবং ttys এর ব্যাখ্যা সম্পর্কে আমার মন জড়িয়ে রাখতে পারিনি।

কেউ কি আছেন যে উপরের ত্রুটিগুলি ব্যাখ্যা করতে পারেন? আমার ধারণা এটি একটি অনুপস্থিত বিকল্প, তবে কোনটি?

দুটি প্ল্যাটফর্মই উবুন্টু 14.04 এলটিএস।

উত্তর:


62

আমি বিশ্বাস করি যে এটি apt-get autoremoveএকটি অ-ইন্টারেক্টিভ শেল চালিত হওয়ার সাথে সত্যতার সাথে কিছু করার আছে । দেখুন ডকারের অধীনে ইনস্টল করার সময় কি ডায়লগ প্রশ্নের উত্তর দেওয়া সম্ভব?

সমাধানটি কমান্ডটির সাথে উপসর্গ হিসাবে প্রদর্শিত হবে DEBIAN_FRONTEND=noninteractive:

ssh <remote_srv> "DEBIAN_FRONTEND=noninteractive apt-get autoremove"

12
ডকার ইনস্টলের সময় অ্যাপটি-গেট ব্যবহার করার সময়, উপসর্গটি যুক্ত করার পরে এটি দুর্দান্ত কাজ করে
নীল ম্যাকগিল

নীল মন্তব্যের জন্য আপনাকে ধন্যবাদ। আমার মনে হয়েছিল আমি আমার পথটি হারিয়ে ফেলেছি তবে ডকার ইনস্টলের সময় অ্যাপটি-গেট ব্যবহার করার সময় আমি একই সমস্যায় পড়েছি।
কিউকম

13

অ্যালেক্সের সমাধান ত্রুটিগুলি দমন করে, এবং সে কারণটি প্রায় সঠিক পেয়েছে তবে এটি আপনাকে কোনও প্রশ্নের জবাব দিতে দেয় না (যখন আপনি উত্তরগুলি পূর্বনির্ধারিত করেছেন এবং স্ক্রিপ্ট থেকে চালাচ্ছেন ঠিক তখনই ঠিক হয়, তবে নতুন প্যাকেজগুলির চেষ্টা করার সময় সত্যই বিরক্ত হয়) )। মূল ইস্যুটি এসএসএস এবং ডাবকনফের বিভিন্ন সীমান্ত দ্বারা অনুমানগুলির মধ্যে একটি মিথস্ক্রিয়া।

এসএসএস দিয়ে শুরু করা যাক। ssh ধরেছে যে আপনি যখন রিমোট কমান্ড নির্দিষ্ট না করে থাকেন তখন আপনি রিমোট প্রান্তে একটি pty চান এবং আপনি যে কোনও রিমোটটি নির্দিষ্ট করেন না তা (যা উল্লেখযোগ্যভাবে 90% সময় কাজ করে, কেবল এটি নয়)। এটি -tবিকল্পের দ্বারা কোনও পিটিআই বা এমন -Tবিকল্প যা কোনও পিটিআই (বা সম্পর্কিত কনফিগারেশন ফাইল অপশন) জোর করে তার দ্বারা ওভাররাইড করা যেতে পারে । আরও একটি pty ব্যবহার করার সময় TERMপরিবেশ পরিবর্তনশীল অনুলিপি করা হয় (ব্যতিক্রম সম্পূর্ণ বিশদ এবং অফিসিয়াল সুইপস্টেক এন্ট্রি ফর্ম জন্য চেক ডকুমেন্টেশন প্রয়োগ করতে পারে)। এছাড়াও নোটের -xবিকল্পটি X11 ফরওয়ার্ডিংকে অক্ষম করে এবং -Xএটি সক্ষম করে।

ড্যাবকনফের নিজেই কোনও ইন্টারঅ্যাক্টিভিটি প্রয়োজনীয়তা নেই (ডিজাইন অনুসারে), তবে বিভিন্ন সীমান্ত রয়েছে এবং প্রত্যেকটির আলাদা আলাদা প্রয়োজনীয়তা রয়েছে।

আমি বিশ্বাস করি যে সর্বাধিক সন্ধানের সম্মুখভাগটি জিনোম (এমন একটি কেডের সম্মুখ প্রান্তটিও রয়েছে যা আমি কাজ করিনি)। জিনোম ফ্রন্টএন্ড (এবং কেডিএর পাশাপাশি একটি) কিছু অ-ডিফল্ট লাইব্রেরি এবং একটি এক্স 11 সার্ভারের প্রয়োজন, সুতরাং জিনোম ফ্রন্টএন্ডকে বাধ্য করার জন্য কমান্ড লাইনটি (একবার উপযুক্ত লাইব্রেরি ইনস্টল করা হবে)

ssh -X <remote_srv> "DEBIAN_FRONTEND=gnome apt-get autoremove"

অথবা আপনি যদি kde পছন্দ করেন

ssh -X <remote_srv> "DEBIAN_FRONTEND=kde apt-get autoremove"

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

ssh -t <remote_srv> "TERM=$TERM DEBIAN_FRONTEND=dialog apt-get autoremove"

অথবা

ssh -t <remote_srv> "apt-get autoremove"

পঠন সীমানার কম কঠোর প্রয়োজনীয়তা রয়েছে এবং বোবা টার্মিনালগুলির সাথে কাজ করবে, তবে একটি pty দরকার হবে।

ssh -t <remote_srv> "DEBIAN_FRONTEND=readline apt-get autoremove"

সম্পাদক সম্মুখভাগ একটি সম্পাদকের উপর নির্ভর করে যার সম্পাদকের উপর নির্ভর করে নির্দিষ্ট প্রয়োজনীয়তা থাকতে পারে।

ssh -t <remote_srv> "DEBIAN_FRONTEND=editor EDITOR=vi apt-get autoremove"
ssh -X <remote_srv> "DEBIAN_FRONTEND=editor EDITOR=gvim\ -f apt-get autoremove"

নন-ইন্টারেক্টিভ ফ্রন্টএন্ডের কোনও প্রয়োজনীয়তা নেই তবে এটি কোনও প্রশ্ন জিজ্ঞাসা করে না (যা আপনি চান তা হতে পারে বা নাও পারে)।

ssh <remote_srv> "DEBIAN_FRONTEND=noninteractive apt-get autoremove"

"রিডলাইন সীমানার কম কঠোর প্রয়োজনীয়তা রয়েছে এবং বোবা টার্মিনালগুলির সাথে কাজ করবে, তবে একটি pty দরকার হবে।" আপনি কি ব্যাখ্যা করতে পারেন আমি কীভাবে একটি pty সেট করতে পারি?
লিনাক্স্যাটিকো

@ লিনাক্স্যাটিকো, ssh -tআরও বিশদ এবং অন্যান্য বিকল্পগুলির জন্য ssh ম্যান পৃষ্ঠাটি দেখুন। এই উত্তরের দ্বিতীয় অনুচ্ছেদটি আবারও পড়ুন।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.