انجمنهای فارسی اوبونتو
کمک و پشتیبانی => انجمن عمومی => نویسنده: عرفان خیراللهی در 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
در نهایت با یه کاربر دیگه امتحان کنید که درست شده یا نه.