انجمنهای فارسی اوبونتو
		کمک و پشتیبانی => انجمن عمومی => نویسنده: عرفان خیراللهی در 09 خرداد 1401، 05:20 بظ
		
			
			- 
				سلام
 در توزیع Debian Unstable با میزکار KDE هنگام نصب هر بستهای با apt این هشدار را دریافت میکنم:
 
                                                                        
 perl: warning: Setting locale failed.
 perl: warning: Please check that your locale settings:
 LANGUAGE = "",
 LC_ALL = (unset),
 LC_TIME = "az_IR.UTF-8",
 LC_MONETARY = "en_US.UTF-8",
 LC_ADDRESS = "en_US.UTF-8",
 LC_TELEPHONE = "en_US.UTF-8",
 LC_NAME = "en_US.UTF-8",
 LC_MEASUREMENT = "en_150.UTF-8",
 LC_IDENTIFICATION = "en_US.UTF-8",
 LC_NUMERIC = "en_US.UTF-8",
 LC_PAPER = "en_US.UTF-8",
 LANG = "en_US.UTF-8"
 are supported and installed on your system.
 perl: warning: Falling back to a fallback locale ("en_US.UTF-8").
 locale: Cannot set LC_ALL to default locale: No such file or directory
 
 
 آیا چیزی در نرمافزارهای من اشکال دارد؟
- 
				اول sudo locale-gen "en_US.UTF-8"بعدsudo dpkg-reconfigure localesرو بزنید.
- 
				اولی لازم نیست. همون دومی کافیه. هرچند با توجه به اینکه همیشه این اخطار رو میگیرید فکر کنم اصلا بسته locales نصب نیست. اگه dpkg-reconfigure گفت که چنین بستهای نصب نیست، اول نصبش کنید و بعد دوباره dpkg-reconfigure رو اجرا کنید.
			
- 
				سپاسگزارم.
 بستهٔ locales نصب است. بهنظر دستور locales-gen هم بهدرستی کار میکند. خروجی آن چنین است:
 Generating locales (this might take a while)...
 en_US.UTF-8... done
 Generation complete.
 
 هنگام dpkg-reconfigure هر گزینهای را که انتخاب میکنم، چنین پیامی دریافت میکنم:
 /usr/bin/locale: Cannot set LC_ALL to default locale: No such file or directory
 
 Generating locales (this might take a while)...
 en_US.UTF-8... done
 Generation complete.
 perl: warning: Setting locale failed.
 perl: warning: Please check that your locale settings:
 LANGUAGE = "",
 LC_ALL = (unset),
 LC_TIME = "az_IR.UTF-8",
 LC_MONETARY = "en_US.UTF-8",
 LC_ADDRESS = "en_US.UTF-8",
 LC_TELEPHONE = "en_US.UTF-8",
 LC_NAME = "en_US.UTF-8",
 LC_MEASUREMENT = "en_150.UTF-8",
 LC_IDENTIFICATION = "en_US.UTF-8",
 LC_NUMERIC = "en_US.UTF-8",
 LC_PAPER = "en_US.UTF-8",
 LANG = "C"
 are supported and installed on your system.
 perl: warning: Falling back to the standard locale ("C").
 perl: warning: Setting locale failed.
 perl: warning: Please check that your locale settings:
 LANGUAGE = "",
 LC_ALL = (unset),
 LC_TIME = "az_IR.UTF-8",
 LC_MONETARY = "en_US.UTF-8",
 LC_ADDRESS = "en_US.UTF-8",
 LC_TELEPHONE = "en_US.UTF-8",
 LC_NAME = "en_US.UTF-8",
 LC_MEASUREMENT = "en_150.UTF-8",
 LC_IDENTIFICATION = "en_US.UTF-8",
 LC_NUMERIC = "en_US.UTF-8",
 LC_PAPER = "en_US.UTF-8",
 LANG = "C"
 are supported and installed on your system.
 perl: warning: Falling back to the standard locale ("C").
 
 باز هم هنگام نصب بستهها این هشدار دیده میشود.
- 
				مشکل برطرف شد!
 
 بهنظر مشکل از تنظیم شل بود. با زدن این دستورها مشکل برطرف شد:
 export LANGUAGE=en_US.UTF-8
 export LC_ALL=en_US.UTF-8
 export LANG=en_US.UTF-8
 export LC_CTYPE=en_US.UTF-8
 
 البته با اجرای دوبارهٔ ترمینال، تنظیمها از بین میرفت و لازم بود در فایل تنظیمات شل اضافه شود. برای من که از شل fish استفاده میکنم، یک فایل در مسیر زیر ایجاد کردم و این دستورها را در آن گذاشتم.
 ~/.config/fish/conf.d
 
- 
				مشکل حل نشده. اگه با یه کاربر دیگه امتحان کنید همینجوری هست.
			
- 
				همینطوره. ولی من حتی نفهمیدم مشکل از چیه!
 همهچیز که بهدرستی کار میکنه! پس چرا این میگه لوکال انگلیسی رو نمیتونه پیدا کنه؟
 
 شاید این مشکل از اینجا به وجود آمده که من اول debian testing نصب کرده بودم و بعد تبدیلش کردم به unstable. شاید بستهای تداخل داشته هنگام نصب.
- 
				به نظر میاد بسته locales مشکل داره.
 اول خروجی این دستورات رو قرار بدید.
 cat /etc/locale.gen
 cat /etc/default/local
 locale
- 
				
 ~ $ cat /etc/locale.gen | grep '^[^#]'
 en_US.UTF-8 UTF-8
 
 ~ $ cat /etc/default/local
 cat: /etc/default/local: No such file or directory
 
 ~ [1]$ locale
 LANG=en_US.UTF-8
 LANGUAGE=en_US.UTF-8
 LC_CTYPE="en_US.UTF-8"
 LC_NUMERIC="en_US.UTF-8"
 LC_TIME="en_US.UTF-8"
 LC_COLLATE="en_US.UTF-8"
 LC_MONETARY="en_US.UTF-8"
 LC_MESSAGES="en_US.UTF-8"
 LC_PAPER="en_US.UTF-8"
 LC_NAME="en_US.UTF-8"
 LC_ADDRESS="en_US.UTF-8"
 LC_TELEPHONE="en_US.UTF-8"
 LC_MEASUREMENT="en_US.UTF-8"
 LC_IDENTIFICATION="en_US.UTF-8"
 LC_ALL=en_US.UTF-8
 ~ $
 
 
- 
				قبل از اینکه ادامه بدید، بهتره یه پشتیبان بگیرید تا اگه مشکلی پیش اومد، بتونید به حالت قبل برگردید.
 اول دوتا فایل locale.gen توی /etc/ و locale توی /etc/default/ رو پاک کنید.
 sudo rm /etc/local.gen /etc/default/locale
 الان بسته locales رو دوباره نصب کنید.
 sudo apt install --reinstall locales
 در آخر بسته locales رو با dpkg-reconfigure دوباره پیکربندی کنید.
 sudo dpkg-reconfigure locales
 در نهایت با یه کاربر دیگه امتحان کنید که درست شده یا نه.