Здравствуйте!
Можно ли как-нибудь узнать, с какими опциями по "--enabled-..." собран bash?
опции bash
Нет.
Весьма благодарен за быстрый ответ.
Peter, man bash
Не помогает ни разу?
stranger,
Все мимо.
Peter,
В самом bash нет возможности посмотреть опции, с которыми он собран, но можно скачать исходник для вашего дистрибутива. Например, в Slackware bash Патрик собирает с такими опциями:
--prefix=/usr
--mandir=/usr/man
--infodir=/usr/info
--build=x86_64-slackware-linuxКак видите, все отдано на волю случая зависит от набора установленного ПО.
"man bash" мне в этом отношении как-то не помог, даже и после того,
как я скачал архив bash-4.2 из архива Debian с исходным текстом и посмотрел,
какие в configure есть опции. При этом с "--enable-profiling" не компилируется.
В самой configure prefix, как обычно, /usr/local.
Все мимо.
Вовсе нет. Но в данный момент нет времени, не готов спорить. Готов признать Вашу правоту. Так проще.
У Debian есть еще патч, его надо наложить на исходник bash и в debian/rules будут искомые опции сборки. Но можно и просто сам патч почитать.
stranger, вы правильно сказали, что у bash нет возможности посмотреть опции, с которыми его собрали, например, в выводе [console=inline]bash --help[/console], в отличие от mc, у которого такая возможность есть. Но причем здесь man bash, не понимаю. Там такого нет.
Я всё это делаю в Astra LInux 1.3 и в deb-пакете для bash есть clear_console,
но при компиляции bash из Wheezy он не появился.
Там такого нет.
Это был юмор. Жаль, не оценён. :(
Не взыщите. Что со старого дурака взять...
при компиляции bash из Wheezy он не появился
А вот это уже интересно! Он должен был появиться в виде чего?
В виде elf-файла в /usr/bin.
Я так и не нашёл, откуда берётся clear_console,
grep даже не находит само это слово во всём каталоге.
Откуда же она берётся и как это делается? Она есть только в пакете с bash.
А этот clear_console обязательно должен быть встроенным в bash?
Не знаю, но clear_console находится именно в deb-пакете bash.
Ещё к моему перовначальному вопросу: я скомпилировал bash с опцией
--enable-net-redirections
и другими, после запуска configure создался файл config.h со строкой
#define NETWORK_REDIRECTIONS 1значит ли это, что он скомпилируется с этой опцией?
И можно ли после запуска такого bash как-то убедиться из списка опций,
хотя бы косвенно, что эта опция включена?
Я пробовал запускать shopt, set, выводить BASHOPTS и SHELLOPTS,
но не понял.
И можно ли после запуска такого bash как-то убедиться из списка опций,
хотя бы косвенно, что эта опция включена?
Я не проверял такое, но полагаю, что если у bash-а такой возможности нет, то он выведет сообщение об ошибке, если попытаться ее использовать.
По поводу clear_console: полагаю, надо смотреть на redline, т.к. bash во многом опирается на его возможности.
значит ли это, что он скомпилируется с этой опцией?
Разумеется, при условии, что для этого все необходимое установлено, иначе не соберется, ругаясь на "undefined reference to..."
У меня скомпилировался вроде бы без замечаний.
Но ведь configure проверяет, есть ли всё достаточное для каждой опции, надеюсь, что она включилась.
Я установил bash, скомпилированный с --enable-net-redirections, но всё равно команда в скрипте
exec 3<>/dev/tcp/192.168.1.7/$nprtне выполняется, число в $nprt правильное, соединение происходит.
Дальше есть вызов ffmpeg и она сообщает, что нет такого файла, ещё для проверки я перед ffmpeg вставил команду
#read -r -u 3 -t 12 -n 40 $msg <&3
read -r -n 40 $msg <&3
тоже ничего не читается. Так в чём причина и что делать?
надеюсь, что она включилась.
Раз в config.h есть определение, значит, включилась, вы же сами показывали.
Кажется, это был config.log, не помню точно. В выводе make есть некий redir.o.