Проверка необходимых макросов M4… yelp.m4 не найден

Модульные файлы конфигурации как функция обработки текста

То, что вы просите, - это более правильная обработка текста, чем обработка файлов, и это во многом зависит от того, какая программа использует текстовые файлы.

Традиционный простой способ сделать то, что вы хотите, - это иметь файл верхнего уровня, который включает другие файлы в модульном виде, например:

~ / .bash_profile:

source ~/dotfiles/bash/bash_profile
source ~/dotfiles/proj/bash_profile

Преимущество заключается в том, что вы можете комментировать вычерчивает строки для внесения временных изменений, и вы сохраняете намерение очевидным:

source ~/dotfiles/bash/bash_profile
# source ~/dotfiles/proj/bash_profile
source ~/dotfiles/proj2/bash_profile

Управление сценариями с каталогами символических ссылок

Но если вы действительно хотите использовать символические ссылки для управления коллекцией файлов конфигурации bash , есть хорошо зарекомендовавший себя способ сделать это с очень небольшим количеством «клея» поверх существующих символических ссылок.

Попробуйте создать каталог с именем (например) ~ / .bash_profiles , который содержит ссылки с такими именами, как 00base (указывающие на ~ / dotfiles / bash / bash_profile ]) и 10proj (указывая на ~ / dotfiles / proj / bash_profile ), затем поместив это в ~ / .bash_profile:

for file in ~/.bash_profiles/* ; do source $file ; done

Затем вы можете активировать, деактивировать и изменить порядок config, манипулируя символическими ссылками и не редактируя файлы. Это работает, потому что расширение ~ / .bash_profiles / * лексически отсортировано с помощью bash.

Именно так классический Unix / Linux init позволяет управлять сценариями запуска системы. Вероятно, это будет излишним для bash , если у вас нет очень сложного набора настроек для выборочной загрузки в зависимости от проекта, над которым вы работаете.

3
25.11.2016, 07:28
2 ответа

Во-первых, я, должно быть, выяснил, где расположены макросы:

aclocal --print-ac-dir

Атрибуция этой строки находится здесь .

В моем случае это:

/usr/share/aclocal

Поиск такого файла не дал результата:

ls /usr/share/aclocal | grep yelp

Итак, охота началась:

apt-cache policy yelp*

Есть 3 упакованных файла, два из них уже установлены, поэтому я установил недостающий :

sudo apt-get install yelp-tools

Повторяющийся поиск:

ls /usr/share/aclocal | grep yelp

Дал результат:

yelp.m4

Проблема решена.

3
27.01.2020, 21:11

Для этого вы можете использовать apt-file , не обязательно зная, куда идут файлы M4:

apt-file search yelp.m4

сообщит вам, где конкретный файл должен быть расположен даже без установленного пакета ( yelp-tools ).

yelp-tools: /usr/share/aclocal/yelp.m4

Это говорит о том, что установка yelp-tools позволит продолжить сборку.

В качестве альтернативы, вы можете проверить зависимости сборки файлового ролика в Debian : в нем перечислены yelp-tools вместе со всеми другими пакетами. вам понадобиться.

В Linux Mint 18 apt-файл предварительно не установлен, но его легко установить:

sudo apt-get install apt-file

После установки вам нужно будет обновить его базу данных с помощью:

sudo apt-file update
7
27.01.2020, 21:11

Теги

Похожие вопросы