dpkg-reconfigure: stdin আবার খুলতে অক্ষম: ফাইল বা ডিরেক্টরি নেই


74

নিম্নলিখিত প্যাকেজগুলি ইনস্টল করার সময় আমি ubuntu vagrant vmকোনও ubuntu host, উভয়ের জন্য প্রভিশন স্ক্রিপ্ট তৈরি করছি 12.10 64bit:

sudo apt-get -y install php5-xsl graphviz php-pear unison

আমি সতর্কতা পেয়েছি:

dpkg-reconfigure: unable to re-open stdin: No file or directory

অনুসন্ধানের চেষ্টা করেছেন তবে ফলাফলগুলি যথাযথ-সম্ভাব্যতার সাথে প্রতিটি অন্যান্য ত্রুটি ছুঁড়ে ফেলছে, উপরের সতর্কতাটি কীভাবে দমন করা যায় তা খুঁজে বের করতে পারে না। ইনস্টলগুলি কাজ করে, তবে উপরের সতর্কবাণীটি ভিজান্ট আপ স্টডআউটে ত্রুটি রেখাগুলি সৃষ্টি করছে।

সতর্কতাটি কীভাবে দমন করা যায় তার কারণ কী হতে পারে সে সম্পর্কে যে কোনও ধারণা

উত্তর:


90

আমি কোনও apt-getকল করার আগে আমার প্রভিশন স্ক্রিপ্টটিতে নিম্নলিখিতটি রেখে ত্রুটি বার্তাটি পেয়েছি :

export DEBIAN_FRONTEND=noninteractive

এটি debconfএমন একটি ফ্রন্টএন্ড ব্যবহার করে যা কোনও ইন্টারেক্টিভ ইনপুট মোটেই আশা করে না, এমনকি এটি অ্যাক্সেস করার চেষ্টা থেকেও বাধা দেয় stdin


3
এটা সঠিক উত্তর. বেশিরভাগ কনফিগারেশন ম্যানেজমেন্ট অ্যাপ্লিকেশনগুলি (সল্টস্ট্যাক, পুতুল ইত্যাদি) অ-ইন্টারেক্টিভ প্যাকেজ ইনস্টলের জন্য এটিকে উত্সাহ দেয়।
notpeter

1
সঠিক উত্তর, আমি দ্বিতীয়।
স্টেফগোসেলিন

13
যদিও এটি dpkg-preconfigure এর জন্য কাজ করে না।
কুর্সুস

export DEBIAN_FRONTEND=noninteractivedpkg-preconfigureমঞ্চে আমার জন্য কাজ করেছেন
স্নো ক্র্যাশ

23

উত্তরটি এইperl:locale অনুযায়ী সেট করা ছিল :

export LANGUAGE=en_US.UTF-8
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
locale-gen en_US.UTF-8
dpkg-reconfigure locales

এটি সমস্যাটি সমাধান করে তবে vagrant upবিধানে অযাচিত সময় যুক্ত করে না ।


2
এটি একা আমার পক্ষে কাজ করেনি। আমি পূর্বরূপীকরণের জন্য @ কেনরব এর 70debconfমন্তব্য-আউট স্থিরতা কার্যকর না করা পর্যন্ত আমি সতর্কতা পেয়েছি ।
ব্রায়ান

আমার প্রশ্ন হ'ল: এই সতর্কতাগুলিকে উপেক্ষা করা কি ঠিক? @ কোম্বেসি
মার্কো প্রিনস

@ মার্কোপ্রিনস হ্যাঁ, আপনি "স্টিডিন: টিটিটি নয়" বা "ডিপিকিজি-প্রিঙ্কনফিগার: স্টিডিন পুনরায় খুলতে অক্ষম: এ জাতীয় কোনও ফাইল বা ডিরেক্টরি নেই" এর মতো সতর্কতাগুলি আপনি নিরাপদে অগ্রাহ্য করতে পারেন। আশেপাশে অসংখ্য নিশ্চয়তার একটি খুঁজে পাওয়া যায়, যেমন ikusalic.com/blog/2013/10/03/vagrant-intro
mloskot

9

এই আদেশটি চালান:

cat /etc/apt/apt.conf.d/70debconf 

আপনি এই ফাইলটি আছে কিনা তা দেখতে। যদি তা হয়, তবে সমাধানটি হ'ল DPkgলাইনটি মন্তব্য করা হবে যা সমস্ত প্যাকেজ debconfইনস্টল হওয়ার আগে পূর্ব-কনফিগার করতে বাধা দেয় ।

সুতরাং আপনার বিধান ফাইলটিতে এই আদেশগুলি যুক্ত করুন:

sudo ex +"%s@DPkg@//DPkg" -cwq /etc/apt/apt.conf.d/70debconf
sudo dpkg-reconfigure debconf -f noninteractive -p critical

অন্যথায় যদি আপনি এই ফাইলটির বিষয়ে চিন্তা না করেন তবে কেবল এটিকে সরিয়ে দিন:

sudo rm -v /etc/apt/apt.conf.d/70debconf

এখানে বিবেচনা করার জন্য আরও কয়েকটি আদেশ রয়েছে, তবে আমি মনে করি না তারা কার্যকর কিছু করে:

sudo dpkg-preconfigure -f noninteractive -p critical
sudo dpkg --configure -a

1
অবশেষে এটিই আমার জন্য ওএসএক্স ইয়োসেমাইট ভ্যাগ্রান্ট এবং উবুন্টু 14.04 এ কাজ করেছিল।
ব্রায়ান

আপনার এখনও শেল ভ্যাগ্র্যান্টের ব্যবহারগুলি পরিবর্তন করতে হবে।
টুথলেস রিবেল

1
এই ফাইলটির সাথে জগাখিচুড়ি করা আমার পক্ষে কাজ করেছিল (স্পষ্টতই "পুনর্নির্দেশ স্টাডার" পরামর্শগুলি উপেক্ষা করছেন, যা আমি খারাপ পরামর্শ বলে মনে করি)। আমি অস্থায়ীভাবে --frontend=noninteractiveফাইলে সংজ্ঞায়িত কমান্ডের বিকল্পটি অন্তর্ভুক্ত করার জন্য প্রযোজনীয় পদক্ষেপগুলির আগে / পরে ব্যবহার করার সিদ্ধান্ত নিয়েছিলাম । sudo sed -i 's/\(dpkg-preconfigure\) --apt/\1 --frontend=noninteractive --apt/' /etc/apt/apt.conf.d/70debconfআগে এবং sudo sed -i 's/ --frontend=noninteractive//' /etc/apt/apt.conf.d/70debconfপরে
ফিল্ড

5

বাশ পুনঃনির্দেশ stdout এবং stderr জন্য সূক্ষ্ম কাজ করে।

ত্রুটি প্রবাহকে পুনর্নির্দেশ করতে, নিম্নলিখিতটি ব্যবহার করুন:

sudo apt-get -y install php5-xsl graphviz php-pear unison 2> /dev/null

উভয় stdout (বার্তা যে ত্রুটি / সতর্কতা নয়) এবং stderr উভয় পুনর্নির্দেশ করতে, ব্যবহার করুন:

sudo apt-get -y install php5-xsl graphviz php-pear unison &> /dev/null

এটি এর জন্য ব্যাশে একটি শর্টকাট উপলভ্য:

sudo apt-get -y install php5-xsl graphviz php-pear unison > /dev/null 2>&1

বা:

sudo apt-get -y install php5-xsl graphviz php-pear unison 1> /dev/null 2>&1

নীচে, আমরা স্পষ্টভাবে দেখতে পাচ্ছি যে ফাইল বর্ণনাকারী 1 হ'ল স্টাডাউট, 2 স্টার্ডার, 3 স্টিডিন।

$ ls -l /dev/std*
lrwxrwxrwx 1 root root 15 Apr 18 19:03 /dev/stderr -> /proc/self/fd/2
lrwxrwxrwx 1 root root 15 Apr 18 19:03 /dev/stdin -> /proc/self/fd/0
lrwxrwxrwx 1 root root 15 Apr 18 19:03 /dev/stdout -> /proc/self/fd/1

সুতরাং আপনি যা বলছেন তার জন্য আপনি যা করতে চান, আপনার কেবলমাত্র প্রথম আদেশটি আমার দেওয়া উচিত।


1
আমি এপিটি-গেট থেকে স্বাভাবিক স্টডআউট প্রতিধ্বনি করতে সক্ষম হতে চাই তবে আপনি আমাকে সঠিক পথে রাখতে পারেন ... আমি কেবল স্টাডারকে বিট-বালতিতে প্রেরণ করার চেষ্টা করব - চিয়ার্স সম্পাদনা করুন: আমরা দু'জনেই একই সময়ে মন্তব্য করলাম লো - চিয়ার্স (আবার)
দাইথ

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