`Gtk-ПОПЕРЕДЖЕННЯ **: Місцезнаходження не підтримується бібліотекою C. `при запуску програм з командного рядка


31

Я не отримав відповіді, але нічого не робив, і це цікава тема. В Ubuntu 12.04 під час відкриття файлу в gedit або якщо я працюю в командному рядку в dpkg, мені повертається помилка ", що не підтримується.

Gtk-WARNING **: Locale not supported by C library.
    Using the fallback 'C' locale.

Ваші місцеположення здаються порушеними. Як ви точно встановили Ubuntu? Схоже, ви встановили його таким чином, що локалі не налаштовані належним чином. Будь ласка, надайте додаткову інформацію щодо цього у своєму питанні (відредагуйте). І ні, місце Cлокалізації - це те, куди воно повертається, якщо локалізації немає. Це з мови програмування на С.
gertvdijk

Дякую за відповідь. Моя установка Ubuntu - це папка всередині каталогу Windows. Я знаю, чому я його там встановив. Я був ледачий при встановленні і дозволив демону Linux зробити цю частину за мене.
Діоген Ліхтар

Відповіді:


30

Спочатку переконайтесь, що мова вашої бібліотеки встановлена

sudo apt-get install language-pack-en-base,

наприклад.

Потім, як суперпользователь, скорочуйте роботу, дозволяючи Ubuntu автоматично налаштувати їх:

sudo dpkg-reconfigure locales

Перевірте налаштування, якщо воно правильне, то добре. Але якщо у вас LANG=або LANGUAGE=параметри порожні, запустіть це в командному рядку:

locale -a

Що генерує встановлені та доступні вам локалі.

Виберіть локаль із отриманого результату, який відповідає вашій ситуації, та експортуйте це налаштування, щоб замінити ваші локалі, наприклад:

export LC_ALL="en.utf-8"

Для ручного встановлення використовуйте exportдля встановлення локального вручну, який вручну встановить власні локалі, спочатку запустіть налаштування, як зазначено вище.

Потім скажіть, що ви хочете встановити "en_us-8"мову, але у вас потрібна інша локаль для, NUMERICі TIME, можливо, ви хочете використовувати "en_NZ.utf-8"(пам'ятайте: це залежно від регістру) або LANGUAGE="en_GB.utf-8"і NUMERIC="en.dk.ISO-8859-15". Подорожуючи до Нової Зеландії, я міг змінити місце LANGUAGE="en.NZ". У Німеччині мені просто потрібно встановити локали pkg для нього та ввести в терміналі, як приклади нижче:

export LC_ALL="en_US"
export LANG="en_US"
export LANGUAGE="en_NZ"
export C_CTYPE="en_US"
export LC_NUMERIC=
export LC_TIME=en"en_US"

LC_ALL= може залишатися порожнім.


3

спочатку:

sudo apt-get purge locales

потім:

sudo aptitude install locales

і відомі:

sudo dpkg-reconfigure locales

Це позбавляє систему локалів, після чого перевстановлює локалі та знижує рівень libc6 з 2.19 до 2.13, в чому полягає проблема. Потім знову налаштовує локалі.


1
Це дуже вводить в оману. Ніколи не використовуйте цю відповідь, перша команда видасть багато програмного забезпечення разом із їхніми даними, наприклад postgresql.
Ерік Ван

@EricWang ви праві, що це може скинути інше програмне забезпечення, і це станеться тому, що це програмне забезпечення покладається на бібліотеку libc6 2.19 (або щось вище). Дуже часто саме це програмне забезпечення було те, що оновило вашу систему і поставило її в такий стан локалів, не підтримуючи бібліотеку C. Незалежно від цього слід переглянути, що видаляється, перш ніж підтвердити.
tkjef

3

Це траплялось у мене не раз у мого монетного двору 18, який базується на Ubuntu 16.04, тому я хотів би поділитися знайденим рішенням у випадку, якщо комусь потрібно.

Кроки:

(Ці кроки працюють для монетного двору, але Ubuntu може мати подібні конфігурації, не впевнений)

  • Відкрийте "Налаштування мови".
  • Встановіть мови, якщо вони відсутні. (Для мене я б встановив китайську та японську мови на додаток до англійської)
  • Для опції Languageта Regionпереконайтесь, що мова за замовчуванням для них належним чином, наприклад, встановлено "Англійська, Сполучені Штати UTF-8",
  • Перезавантажте, якщо внесені зміни.
  • Перевірте, чи добре.

0

За допомогою локалів ви повинні видалити мову, яка суперечить вашій системі, це працювало для мене, на ubunty kylin 16.04, я встановив її через ubuntu 14.04


0

він просто працював для мене, перейшовши на gnome-термінал і ввівши команду apt --fix locales і перезавантажте ваш linux, і ваше очікування помилки термінала закінчиться. Це буде точно на вашому моніторі цього разу точно.


0
$ mkdir -p $HOME/.locale
$ I18NPATH=./wrk/ localedef -f UTF-8 -i fi_SE $HOME/.locale/fi_SE.UTF-8
$ LOCPATH=$HOME/.locale LC_ALL=fi_SE.UTF-8 date
$ echo "export LOCPATH=\$HOME/.locale" >> $HOME/.bashrc
$ echo "export LANG=fi_SE.UTF-8" >> $HOME/.bashrc

fi_SE до LOCALE, і перегляньте UTF-8 або utf8


0

Мені вдалося це викликати самостійно під час переміщення точкових файлів домашнього каталогу на нову машину, і я на деякий час не зміг визначити причину для пошуку файлів, LC_але ні LOC.

~/.bashrcФайл я скопіював мав наступне:

export LOCPATH=/var/guix/profiles/per-user/root/guix-profile/lib/locale

(особливе значення тут було у зв'язку з попередніми експериментами з GNU Guix на старій машині; але відповідний факт полягає лише в тому, що змінна середовища була встановлена ​​на недійсний шлях.)

Це призвело до наступної помилки під час запуску різних програм:

Warning: locale not supported by C library, locale unchanged

І ці помилки при запуску locale:

locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory

Видалення (або коментування) LOCPATHрядка вирішило мої проблеми.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.