Использование определенной версии программы в настройке

Я хотел бы установить bison на машину, где у меня нет привилегий root. Когда я попытался использовать configure я получил следующую ошибку:

 checking for GNU M4 that supports accurate traces... configure: error: no acceptable m4 could be found in $PATH. GNU M4 1.4.6 or later is required; 1.4.16 or newer is recommended. GNU M4 1.4.15 uses a buggy replacement strstr on some systems. Glibc 2.9 - 2.12 and GNU M4 1.4.11 - 1.4.15 have another strstr bug. 

Я узнал, что моя версия M4 1.4.13. Я установил новую версию (1.4.17) в свою домашнюю папку и хотел, чтобы configure использовал эту локальную версию, чтобы сделать это, я нашел это в скрипте configure:

 M4 Location of GNU M4 1.4.6 or later. Defaults to the first program of 'm4', 'gm4', or 'gnum4' on PATH that meets Autoconf needs. 

Поэтому я использовал команду:

 ../configure --prefix=$HOME/local/bison M4='$HOME/local/m4/bin/' 

Я предполагаю, что это нормально (поправьте меня, если я ошибаюсь).

После этого я получил эту ошибку:

 checking for flex... flex checking whether lex is flex... no checking lex output file root... lex.yy checking lex library... none needed checking whether yytext is a pointer... no configure: error: Flex is required 

Я установил flex локально в $HOME/local/flex и попытался изменить переменную PATH .

 PATH=$HOME/local/flex/bin/:$PATH 

, но я все равно получил ту же ошибку. Поэтому я не знаю, как сообщить configure, чтобы использовать это местоположение. Я не думаю, что на этот раз есть варианты для него, как и для m4 . И даже если бы это было так, мне все равно было бы интересно, если можно указать расположение (-ы) для configure чтобы искать произвольные программы (с предпочтительным более высоким приоритетом, чем /usr/bin )?

One Solution collect form web for “Использование определенной версии программы в настройке”

Вы близки.

Во-первых, переменная M4 должна быть установлена ​​в путь к фактическому файлу программы M4, а не к каталогу, в котором он живет. Вероятно, более распространенное использование этой переменной, чем ваш случай, заключается в выборе нескольких программ M4, которые уже находятся в PATH , поэтому вам нужно назвать фактический исполняемый файл. В ОС BSD обычно используется платформа m4 а затем программа GNU M4, которая, например, называется gm4 . Возможно, вы захотите использовать версию GNU M4 при создании GNU Bison, и эта переменная позволяет вам это сделать. В противном случае скрипт в противном случае нашел бы версию BSD, в нашей примерной системе.

Во-вторых, я думаю, что ваша модификация PATH игнорируется. Если вы не export PATH , новое значение будет доступно только для оболочки. У вас есть два способа исправить это:

  export PATH=$HOME/local/flex/bin/:$PATH 

или:

  PATH=$HOME/local/flex/bin/:$PATH ../configure --flags-and-stuff-here 

Вторая версия делает изменения только для скрипта configure . Любые программы, запускаемые сценарием, не будут видеть измененную PATH , если она не экспортирует новое значение.

Лично я сделал бы это первым способом в одном из ваших сценариев запуска (например, ~/.bash_profile ), потому что вы захотите, чтобы ваша личная версия Flex была доступна вам после того, как вы также установили Bison. Выйдите из системы, затем вернитесь и попробуйте запустить flex чтобы проверить его. Если это работает, скрипт configure Bison также должен найти эту версию.

  • Как установить rastertoezpl на Pardus?
  • Свежая сборка и установка бизона с пользовательским --prefix не ищет его данные, где я ожидаю
  • Как выйти из установки Fedora?
  • Альтернатива не KDE для KNotes?
  • Редактор Linux с режимом направления VMS EDT
  • Выключить версию Maven после установки из jpackage?
  • Выполнение Ярбу
  • Как установить Liquidsoap & Airtime на CentOS 6.5?
  • Что произойдет, если я обновлю Fedora?
  • Скомпилировать программу без доступа sudo
  • Создание и установка C * Music Player (CMUS)
  • Каков предпочтительный способ обновления всего программного обеспечения в установке Fedora?
  • Interesting Posts

    Как изменить требования к экранам программ bash?

    Подключайте пользовательские Samba-ресурсы, используя cifs

    Как я могу программно добавлять записи в историю Bash и работать с метками времени?

    Что такое сообщение из памяти: жертвовать ребенком?

    печать блока текста, соответствующего шаблону

    Монтаж только определенной части sysfs

    Как интерпретировать явные ссылки на GNU в спецификациях LSB?

    Как проверить, является ли конкретный жесткий диск динамическим?

    Пользовательская Launcher не появляется в Slingshot (eOS Freya)

    Сообщение Systemd init появляется при загрузке OpenRC

    Почему этот трубопровод получает SIGTTIN?

    Копирование файлов из командной строки в буфер обмена

    «Ошибка при загрузке разделяемых библиотек: libgtk-x11-2.0.so.0: невозможно открыть файл общих объектов» при выполнении двоичного кода oald8

    Разберите несколько тысяч строк txt в строки и столбцы

    Поддержка SSNiper SSN Scanner

    Linux и Unix - лучшая ОС в мире.