"ল্যাং = সি; সুডো অ্যাপটি-ক্লিন" ইত্যাদি কেন সুপারিশ করা হয়?


16

আমি এই উইকি পৃষ্ঠায় এসে পৌঁছেছি: প্যাকেজ ম্যানেজার সমস্যা সমাধানের পদ্ধতি

এটিতে কমান্ডগুলি ছিল যেমন:

LANG=C;sudo apt-get clean
LANG=C;sudo apt-get autoclean
LANG=C;sudo apt-get -f install
LANG=C;sudo apt-get --fix-missing install
LANG=C;sudo apt-get --purge autoremove
LANG=C;sudo apt-get --fix-missing update -o APT::Cache-Limit=100000000
LANG=C;sudo apt-get update -o APT::Cache-Limit=100000000 && sudo apt-get dist-upgrade

তাহলে উদ্দেশ্য কী LANG=C;?



8
দয়া করে নোট করুন যে দস্তাবেজটি কমান্ডটি ভুলভাবে ব্যবহার করছে - এটি হওয়া উচিত LANG=C commandএবং না হওয়া উচিত LANG=C;command। প্রথম ফর্মটি LANGপরিবেশের পরিবর্তনশীলের মানটির সময়কালের জন্য বাধ্য করে commandযখন দ্বিতীয় ফর্মটি আসলে দুটি কমান্ড যেখানে প্রথম অংশটি একটি স্থানীয় (রফতানি করা হয়নি) ভেরিয়েবল সেট করে এবং দ্বিতীয় অংশটি প্রয়োজনীয় পরিবেশের ভেরিয়েবল সেট না করেই কমান্ড চালায়।
গাস

2
@ গুস: আসলে এটি সেমিকোলনের সাথেও কাজ করে। কেন? কারণ আপনি যখন টার্মিনাল উইন্ডোটি খুলবেন তখন এলএএনজি একটি বিদ্যমান পরিবেশের পরিবর্তনশীল এবং আপনি যদি পৃথক কমান্ড হিসাবে এর মান পরিবর্তন করেন তবে আপনি এটি পরিবর্তন না করা বা প্রক্রিয়া শেষ না হওয়া অবধি কার্যকর মান পরিবর্তনশীল হবে value
গুন্নার হেজালমারসন

3
@ গুন্নার - এটি ভুল: সম্ভবত LANGপরিবেশে রয়েছে, তাই এটি সম্ভবত অপ্রয়োজনীয় সেমিকোলনগুলির সাথে কাজ করে; তবে এটি (1) অপ্রয়োজনীয় কারণ LANGকমান্ডগুলির মধ্যে কোনও পরিবর্তন ঘটছে না । কাউকে এভাবে কমান্ড চালানোর ইঙ্গিত দেওয়া (২) অপ্রয়োজনীয় এবং অবিশ্রুত পরিবর্তনশীল পরিবেশের কারণে ভুল, এবং (৩) এটি কোনও অজ্ঞাত ব্যবহারকারীর জন্য একটি ভুল নিদর্শন সরবরাহ করে যা পরে ব্যবহারটি পুনরায় প্রয়োগ করে - সম্ভবত শেল ভেরিয়েবলের সাথে নেই পরিবেশ এবং এইভাবে সঠিক, সম্ভবত নিরাপদ, ফাংশন জন্য এটি প্রয়োজন কমান্ড রান রান উপর কোন প্রভাব ফেলছে না।
FooF

2
@ ব্রাইয়াম আমি সিনট্যাক্সের সাথে পরিচিত, তবে এটি উল্লেখ করা গুরুত্বপূর্ণ যে ভেরিয়েবলটি রপ্তানি না করা অবধি কমান্ডটি এটি দেখতে পাবে না। LANG হ'ল একটি স্ট্যান্ডার্ড এনভায়রনমেন্ট ভেরিয়েবল এবং তাই এটি ডিফল্টরূপে রফতানি হয় - তবে অন্যান্য ভেরিয়েবলগুলি নাও হতে পারে এবং ওপিকে এটি সম্পর্কে সচেতন হওয়া উচিত।
গাস

উত্তর:


26

আপনি যদি সমস্যা সমাধান করছেন, আপনি সম্ভবত ফলাফলগুলি কোনও ফোরামে, বা খুব শীঘ্রই বা পরে পোস্ট করবেন।

যখন এটি ঘটে, অন্য ব্যবহারকারীরা আপনার লগগুলি এবং আউটপুট বুঝতে, যদি সেগুলি আন্তর্জাতিককরণ না করা হয় তবে এটি আরও সহজ।

এটি বলার অপেক্ষা রাখে না, আপনি যদি ফ্রেঞ্চ বা চীনা বা হিন্দি বা আপনার সিস্টেমের ভাষা হিসাবে যা কিছু ব্যবহার করেন তবে আউটপুটটি সেই ভাষায় পদগুলি ব্যবহার করতে পারে এবং যা চলছে তা বোঝা আরও শক্ত করে তোলে।

সি লোকেল ডিফল্ট আউটপুট (যা সাধারণত ASCII- কেবল ইংরেজী হয়) জোর করে।

এটির সাথে সমস্যার সমাধানের সময়টি শুরু করা ভাল:

export LC_ALL=C

নির্দিষ্ট লোকেল ভেরিয়েবলগুলি সেট করার পরিবর্তে, বা এটি একটি নির্দিষ্ট কমান্ডের জন্য সেট করে।


10

LANG=Cআপনার টার্মিনাল আউটপুটটিকে ডিফল্ট লোকালে পড়ে যাবে। সহায়তার জন্য এই গাইডটি আপনাকে আউটপুটটি লঞ্চপ্যাডে প্রেরণের পরামর্শ দিচ্ছে, তারা আপনাকে এটি করছে যাতে আপনি এটি আটকালে, অন্যরা আপনি সাধারণত কোন ভাষা ব্যবহার করেন না কেন তা পড়তে সক্ষম হবে।


3

একটি ছোট সংযোজন যদিও এটি সম্ভবত যথাযথ ক্ষেত্রে প্রযোজ্য না কারণ আমি এটিকে সফ্টওয়্যারটির বেশ স্থিতিশীল অংশ হিসাবে বিবেচনা করছি:

কিছু প্রোগ্রাম ন্যাংরিওলিভাবে লংয়ের জন্য আলাদা সেটিংস ব্যবহার করার সময় দুর্ব্যবহার করে (বা সি বা en_US থেকে কমপক্ষে পৃথক)।

ইউনিটিতে এই সমস্যাগুলি ছিল (এখনও আছে?) (এবং ইউনিটি-ভিত্তিক গেমস), অবাস্তব ইঞ্জিনটিতেও কিছু সমস্যা ছিল। এছাড়াও অ্যান্ড্রয়েডের কিছু বিল্ড-স্ক্রিপ্টগুলি কেবল LANG = C দিয়ে সঠিকভাবে চলেছিল বা কেবল এই পরিবেশের পরিবর্তনশীল সেট দিয়ে সংকলিত হয়েছে।

সুতরাং এটি সমস্যা সমাধানেও সহায়তা করতে পারে কারণ সম্ভবত এই সেটিংটি দিয়ে বাগটি নাও ঘটে।

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