Невозможно найти пакет php gettext
Не удается получить gettext (php) на Ubuntu работает
следующий пример работает на Mac OS X с Apache, т. е. я получаю переведенную строку эхом назад. Но на Ubuntu с lighttpd я получаю оригинальный текст “неактивный аккаунт”. Я пробовал всевозможные комбинации окружения varialbes без какой-либо удачи. Это не права доступа к файлам, потому что я могу эхо из содержимого.МО файл.
У кого-нибудь есть идеи?
2 ответов
я столкнулся с той же проблемой. Я опишу, что я сделал, чтобы исправить это на Ubuntu 10.10.
1) Убедитесь, что у вас установлен “gettext”,
кроме того, вы можете установить “php-gettext”, если “gettext” не может быть установлен. Пакет “php-gettext” не требуется, если у вас уже установлен “gettext”.
2) затем создать язык для язык. В этом примере я буду использовать ‘sv_SE’. Посмотрите поддерживаемые локали в ‘/usr / share/i18n / поддерживается’,
вы найдете несколько строк, которые начинаются с ‘sv_SE’,
это означает, что у вас есть несколько вариантов создания локали для sv_SE. Один из вариантов не имеет периода (.) во имя его (т. е. sv_SE ISO-8859-1 ); это набор символов по умолчанию для этой локали. Чтобы создать локаль для набора символов по умолчанию, выполните следующую команду:
если вы хотите создать эту локаль для UTF-8 набор символов, выполните эту команду,
перезагрузите Apache после генерации локалей (в противном случае он не найдет вновь созданные локали),
3) Наконец, обновите свой PHP-скрипт, чтобы он соответствовал сгенерированной вами локали. Если вы создали локаль для ‘sv_SE’,
функции setlocale(значение lc_all, “sv_SE”);
но если вы создали эквивалент UTF-8 этого языка, используйте,
Устранение ошибки “E: Unable to locate package” на Ubuntu
Туториал для новичков: как избавиться от ошибки “E: Unable to locate package” на Linux Ubuntu.
Иногда в процессе установки происходит сбой. Уведомление выглядит следующим образом:
Текст ошибки говорит сам за себя. Система не может найти пакеты, которые вы пытаетесь установить. Почему это происходит?
Устранение ошибки “Unable to locate package” на Ubuntu
Шаг за шагом рассмотрим, что могло пойти не так.
1. Имя пакета
Это нужно проверить в первую очередь. Возможно, в название закралась опечатка. Если нужно установить “vlc”, а в команде прописано “vcl”, то, вполне естественно, процесс прервётся.
2. Обновление кэша репозитория
Во время первого старта системы необходимо запустить обновление при помощи следующей команды:
Эта команда не будет сразу же обновлять Ubuntu. Она предназначена для обновления информации о пакетах, содержащихся в репозиториях.
Когда запускается команда установки, apt-менеджер находит в кэше информацию о пакете и его версии, после чего загружает файлы через репозиторий. Соответственно, если пакета нет в кэше, появится уведомление об ошибке.
Сразу после установки новой системы, её кэш еще пуст. Именно поэтому в таких случаях необходимо прописать команду обновления как для Ubuntu, так и для любого другого дистрибутива на её основе (например, Linux Mint) во время первого запуска.
Но даже при работе с давно установленной системой есть шанс, что нужный пакет не был подгружен. Чтобы исключить такую вероятность, стоит перестраховаться и обновить кэш.
3. Доступен ли пакет для используемой версии Ubuntu
Итак, название написано правильно, кэш обновлён, но ошибка всё равно появляется.
Вероятно, пакет доступен через репозиторий Universe, а ваша система или не поддерживает его, или версия Ubuntu не поддерживается данной программой.
Шаг первый – проверить актуальную версию Ubuntu через терминал.
На выходе отображается номер версии и кодовое имя.
Например, версия Ubuntu 18.04 c кодовым именем “bionic”.
Шаг второй – расширенный поиск на сайте пакетов Ubuntu.
На сайте доступна опция поиска по ключевому слову. Вводим название пакета и выставляем кодовое имя дистрибутива. В графе ”секция” нужно выставить значение ”any”. Запускаем поиск.
Так можно узнать, доступен ли пакет для конкретной версии Ubuntu и, если доступен, то к какому репозиторию он относится. Разберём на примере Shutter, программы для создания скриншотов, которую не обновляли в течение последних лет. Для версии Ubuntu18.04 Bionic будут выведены следующие данные.
В этом случае есть точное совпадение с названием пакета. Он доступен для версии Ubuntu 18.04 Bionic и относится к репозиторию Universe.
Если искомый пакет доступен для вашей версии системы, но относится к Universe или Multiverse, необходимо установить дополнительные репозитории.
После этого обновите кэш, чтобы убедиться, что пакеты доступны через репозитории.
Ничего не помогло, что делать?
Если пакет недоступен и на сайте Ubuntu, то нужно искать другой способ установки. Усилиями сторонних разработчиков были созданы персональные архивы пакетов (PPA). Здесь стоит быть осторожными с неофициальными архивами и не добавлять сомнительные версии в систему.
Всегда есть вероятность, что проект был закрыт и более не поддерживается. В таком случае выход один: искать альтернативу самой программе.
apache2 — php-gettext установлен, но недоступен
У меня установлены следующие пакеты в Ubuntu 16.04:
Единственное упоминание о gettext, когда я звоню phpinfo() находится в разделе авторов модуля («GetText = Alex Plotnick»), так что я бы предположил, что поддержка была скомпилирована правильно.
Кажется, что gettext не загружается должным образом в PHP, потому что следующий код:
Действительно ли выдает «У вас не установлена библиотека gettext с PHP».
Помимо документации, единственным php-gettext Установленные мной файлы:
Я на самом деле не коснулся ни одной конфигурации PHP или Apache (кроме попробовать и установить icingaweb2 )
Кто-нибудь может увидеть, в чем может быть моя проблема?
Обновить
Больше отладки …
Решение
Проверьте, существует ли файл /etc/php/7.0/apache2/conf.d/20-gettext.ini (или аналогичный путь в вашей системе), содержащий строку
Там должны не быть точкой с запятой, в противном случае это закомментировано. Некоторые установки могут также настроить эту строку в основном файле конфигурации php /etc/php/php/7.0/php.ini Однако путь производного от Debian состоит в том, чтобы использовать дополнительные файлы в conf.d папка.
Вы можете включить модули PHP (например, gettext) в командной строке
Если это не работает, отредактируйте конфигурацию вручную.
Наконец, перезапустите службу Apache, как описано выше.
Проверьте также, работает ли Apache ожидаемой версии PHP 7.0 со следующей строкой на вашей странице PHP
Вы можете включить / отключить модули Apache2 из нескольких установленных версий PHP в командной строке
Не удается получить gettext (php) на Ubuntu, работающем
У кого-нибудь есть идеи?
Я столкнулся с той же проблемой. Я опишу, что я сделал, чтобы исправить это на Ubuntu 10.10.
1) убедитесь, что у вас установлен «gettext»,
Кроме того, вы можете установить «php-gettext», если «gettext» не может быть установлен. Пакет «php-gettext» не требуется, если у вас уже установлен «gettext».
2) Затем создайте языковой стандарт для своего языка. В этом примере я буду использовать ‘sv_SE’. Посмотрите поддерживаемые локали в ‘/ usr / share / i18n / SUPPORTED’,
Вы найдете несколько строк, начинающихся с «sv_SE»,
Это означает, что у вас есть несколько вариантов генерации языка для sv_SE. Один из параметров не имеет периода (.) В его имени (т.е. sv_SE ISO-8859-1 ); это набор символов по умолчанию для этой локали. Чтобы сгенерировать языковой стандарт для набора символов по умолчанию, выполните следующую команду,
Если вы хотите сгенерировать эту локаль для набора символов UTF-8, запустите эту команду,
Перезапустите Apache после генерации локалей (иначе он не найдет вновь созданные локали),
3) Наконец, обновите свой PHP-скрипт в соответствии с созданным вами языком. Если вы создали локаль для ‘sv_SE’,
Но если вы создали эквивалент UTF-8 этого языка, используйте,
Теперь все должно работать.
Хотя я выполнил шаги, изложенные в принятом ответе, я не мог заставить его работать над Ubuntu 14.04 LTS. Мне пришлось сделать две важные вещи:
(1) Прежде чем генерировать файл messages.mo, я должен был указать в message.po явно UTF-8 для charset:
Ubuntu чувствителен к регистру и папкам. Поэтому убедитесь, что заглавные буквы сохранены, как показано выше.
Ошибка unable to locate package в Ubuntu
Один из многих способов установки программного обеспечения в Ubuntu – команда apt-get или apt. Установка пакетов с помощью пакетного менеджера намного удобнее и безопаснее, чем поиск и загрузка программ в интернете. Открыв терминал, вы должны вызвать утилиту apt с параметром install написать название программы, чтобы установить ее.
При использовании этой команды иногда возникает ошибка E: Unable to locate package. Ошибка не нуждается в пояснении. Linux-система не может найти пакет, который вы пытаетесь установить. Но почему так? Почему она не видит пакет? Рассмотрим несколько способов решения данной проблемы. В этой статье мы рассмотрим как исправить ошибку Unable to locate package error в Ubuntu.
Ошибка Unable to locate package error в Ubuntu
Дальше пошагово рассмотрим процесс устранения ошибки.
1. Проверьте имя пакета
Это первое, что вы должны сделать. Может, в названии пакета опечатка? Если вы пытаетесь установить vlc и написали vcl, то непременно ничего не получится. Опечатки – распространенная проблема, так что убедитесь в том, что вы не допустили ошибок во время ввода имени пакета.
2. Обновите кэш репозиториев
Если вы в первый раз запустили систему после установки, следует написать команду update:
Данная команда не обновит Ubuntu полностью. На деле, команда apt update составляет локальный список доступных для установки пакетов.
При использовании команды install, менеджер пакетов apt просматривает кэш, чтобы получить информацию о пакете и его версии, а затем скачать его из репозиториев в сети. Если пакета в кэше нет, система не сможет его установить.
Кэш в только что установленной системе изначально пуст. Именно поэтому вам стоит запустить команду apt update сразу после установки Ubuntu или других дистрибутивов, основанных на Ubuntu (например, Linux Mint).
Даже если система не новая, кэш apt вполне может оказаться устаревшим. В любой момент не лишним будет его обновить.
3. Убедитесь, что пакет доступен в вашей версии Ubuntu
Отлично! Вы проверили название пакета, и оно верно. Вы запустили команду update, чтобы обновить состояние кэша, но все ошибка unable to locate package все еще присутствует. Вполне возможно, что пакет попросту недоступен. Но вы следуете инструкции с какого-то сайта, и у всех получается установить его указанным образом. В чем может заключаться проблема?
Есть два варианта. Либо пакет доступен в репозитории Universe, который в вашей системе не включен, либо пакета вовсе не существует для вашей версии Ubuntu.
Первый шаг – проверьте, какая версия Ubuntu у вас запущена. Откройте терминал и введите следующую команду:
В результате вы увидите версию Ubuntu и ее кодовое название. Именно кодовое название нам важно больше всего. Как видите, мы используем Ubuntu 18.04 с кодовым именем bionic. У вас может быть иначе, но суть должна быть понятна. Как только вы получили сведения о версии и названии, откройте сайт Ubuntu Packages.
Пролистайте пониже и остановитесь на заголовке Поиск. Вы увидите поле с ключевым словом. Введите название пакета, который ваша система не может найти, и выберите соответствующее кодовое имя. Секцию поставьте любую. После проделанных действий, нажмите на кнопку поиска.
Вам будет показано, доступен ли пакет для вашей версии Ubuntu, и если это так, то вместе с этим отобразится репозиторий, в котором он находится. Мы искали средство создания скриншотов Shutter и вот, что вышло для Ubuntu 18.04 Bionic:
В нашем случае, название пакета точно совпало. Это значит, что пакет shutter существует для Ubuntu 18.04 Bionic, но в репозитории Universe.
Если необходимый пакет доступен для вашей версии Ubuntu, но в Universe или Multiverse, эти репозитории необходимо включить:
sudo add-apt-repository universe multiverse
Также нужно обновить кэш для того, чтобы система узнала о новых пакетах, находящихся в подключенных репозиториях:
Теперь установка пакета должна пройти гладко.
Ничего не работает, что делать?
Если сайте Ubuntu Packages показывает, что пакета для вашей версии системы нет, то придется найти обходные пути его установки.
Возьмем в качестве примера Shutter. Это отличное средство создания скриншотов для Linux, но его несколько лет не обновляли, поэтому в Ubuntu 18.10 и более новых версиях оно не поддерживается. Как же его установить? К счастью, один сторонний разработчик создал собственный репозиторий (PPA) и установить программу можно с помощью него. Искать пакеты и PPA, в которых они находятся, можно на сайте Launchpad для Ubuntu.
Учтите, что не стоит подключать неофициальные PPA к списку репозиториев. Лучше пользоваться теми, которые есть в вашем дистрибутиве.
Иными словами, проверьте на официальном сайте, не изменился ли метод установки приложения.
Если ничего не помогло, есть вероятность, что проект уже не поддерживают, и в таком случае придется поискать программе замену.
В заключение…
Теперь вы знаете как исправить ошибку unable to locate package Ubuntu. Если вы начали пользоваться Linux недавно, все может казаться очень непонятным. По этой причине мы освещаем подобные темы, чтобы вы могли лучше разобраться в том, как работают те или иные аспекты вашей системы.
Надеемся, что это руководство помогло решить проблему с пакетами в Ubuntu. Если у вас есть вопросы или предложения, можно оставить их в комментариях.












