Ошибка устаревшей версии пакета, хотя она обновлена вручную
Я строю проект GNOME. Когда я запускаю autogen.sh, он выдает ошибку об устаревшем gettext.
nidhi@nidhi:~/gnome-calendar$ ./autogen.sh
autoreconf: Entering directory .
autoreconf: running: autopoint --force
autopoint: *** The AM_GNU_GETTEXT_VERSION declaration in your configure.ac
file requires the infrastructure from gettext-0.19.8 but this version
is older. Please upgrade to gettext-0.19.8 or newer.
autopoint: *** Stop.
autoreconf: autopoint failed with exit status: 1
Я обновил этот пакет вручную, так как использую Ubuntu 16.04.
nidhi@nidhi:~/gnome-calendar$ dpkg -s gettext
Package: gettext
Status: install ok installed
Priority: optional
Section: devel
Installed-Size: 4236
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Architecture: amd64
Multi-Arch: foreign
Version: 0.19.8.1-1ubuntu2
Depends: libc6 (>= 2.17), libcroco3 (>= 0.6.2), libgomp1 (>= 4.9), libtinfo5 (>= 6), libunistring0, libxml2 (>= 2.9.1), gettext-base, dpkg (>= 1.15.4) | install-info
Recommends: curl | wget | lynx-cur
Suggests: gettext-doc, autopoint, libasprintf-dev, libgettextpo-dev
Breaks: autopoint (<= 0.17-11)
Почему это дает эту устаревшую ошибку?
3 ответа
Просто обновить gettext
до последней версии. Чтобы обновить его вручную, загрузите и установите gettext
с https://ftp.gnu.org/gnu/gettext/.
Я вижу эту ошибку, когда пытаюсь запустить./autogen
в этом репо: https://github.com/libyal/libfsapfs
libfsapfs$ ./autogen.sh
autopoint: *** The AM_GNU_GETTEXT_VERSION declaration in your configure.ac
file requires the infrastructure from gettext-0.21 but this version
is older. Please upgrade to gettext-0.21 or newer.
autopoint: *** Stop.
autoreconf: autopoint failed with exit status: 1
Видимо надо обновить.
Проверено на Ubuntu 20.04.
sudo apt install gettext
устанавливает только версию0.19.8.1-10build1
. Таким образом, нам нужно будет обновить его вручную.
Из: https://www.gnu.org/software/gnulib/manual/html_node/gettextize-and-autopoint.html
Если вы получаете сообщение об ошибке, например *** ошибка: несоответствие инфраструктуры gettext: использование файла Makefile.in.in из версии gettext... но макросы Autoconf взяты из версии gettext..., это означает, что был выпущен новый выпуск GNU gettext. сделан, а его макросы Autoconf были интегрированы в Gnulib и теперь не соответствуют инфраструктуре po/. В этом случае скачайте и установите новую версию GNU gettext и запустите gettextize, а затем gnulib-tool.
Как обновить:
# check your current version. I see `gettext (GNU gettext-runtime) 0.19.8.1`
gettext --version
Перейдите сюда: https://www.gnu.org/software/gettext/ --> раздел "Загрузка" --> найдите URL последней загрузки прямо здесь. Он будет использоваться ниже:
wget https://ftp.gnu.org/pub/gnu/gettext/gettext-0.21.1.tar.gz
tar -xf gettext-0.21.1.tar.gz
cd gettext-0.21.1
time ./configure
time make # took my computer about 4 minutes
sudo make install
. ~/.profile
# check your version to make sure it updated! I now see
# `gettext (GNU gettext-runtime) 0.21.1`
gettext --version
Примечание: при тестированииgettext --version
в терминале, отличном от того, который вы построили, запустите. ~/.profile
сначала в этом другом терминале или закройте и снова откройте его, чтобы сделать новую версиюgettext
доступный.