эмулировать bash в zsh, нарушая динамически назначаемый файловый дескриптор

Ваш поиск пакета, охватывающего «все основные зависимости», не существует в CentOS/RedHat. Доступны «группы» пакетов, которые содержат группы пакетов и все их зависимости (yum group list, yum group info $GROUP,yum group install $GROUP). Хотя, как вы обнаружили, вам не нужно использовать ни одну из этих групп для создания работающей системы.

Обычно при первой установке CentOS вас спрашивают, какие группы пакетов вы хотите установить. Вы можете выбрать столько, сколько хотите, чтобы они были включены в ваш базовый установочный образ.

Если вам нравятся небольшие базовые образы, загрузка зависимостей не должна стать большой проблемой. Если у вас есть проблемы с Интернетом или вам нужно установить на много компьютеров, вы можете разместить свой собственный локальный репозиторий пакетов.

2
17.09.2020, 08:39
1 ответ

zsh не имеет режима эмуляции bash. Если вы передадитеbash(или что-либо, начинающееся с sилиb(для Bourne))до emulate, будет использоваться режим эмуляции sh:

.
$ emulate bash -c emulate
sh
Режимы эмуляции

zsh:zsh(по умолчанию ),sh(первоначально в основном SysV/Bourne sh, теперь больше POSIX sh), cshи ksh.

bash— это оболочка, в основном совместимая с POSIX sh, но с расширениями, большинство из которых исходит из оболочки Korn, поэтому лучше всего иметь zshинтерпретацию bashкода, использующего не -расширения POSIX. это эмуляция ksh (вы также можете включить опцию BASH_REMATCH, предназначенную для bashсовместимости ).

Функция {fd}<на самом деле исходит из zsh. Он был реализован одновременно в zsh, ksh93и bashпо предложению одного из разработчиков zsh в ходе обсуждения между сопровождающими всех трех оболочек.

echo {fd}< /dev/nullтребуется POSIX для вывода {fd}(, хотя изменится в будущих версиях стандарта ), поэтому zshотключает его в эмуляции sh. Этого нет в эмуляции ksh, так что это тот, который вы захотите использовать здесь.

Что касается того, какая опция включена, в какой эмуляции (zsh, sh, ksh, csh )см. <C>, <K>, <S>, <Z>рядом с описанием каждой опции в руководство(info zsh 'Description of Options').

Какой параметр влияет на функцию {fd}>..., указано в описании этой функции в руководстве (info zsh 'file descriptors, use with parameters'):IGNORE_BRACES, чье описание(info zsh IGNORE_BRACES)имеет рядом с ним <S>, означающее, что эта функция включена по умолчанию только в shэмуляции.

Хотя zshпоставляется с справочными страницами (и некоторыми из них ), справочных страниц недостаточно для такого большого руководства. Вместо этого я бы рекомендовал использовать info, который является гипертекстом и имеет доступный для поиска указатель и оглавление. Чтобы узнать о встроенной функции zshдля emulate, вы можете запустить info zsh emulateили изнутри info zsh, нажать I для индекса и ввестиemulate(доступно завершение табуляции ).В некоторых системах может потребоваться установка пакета zsh-docили его эквивалента, поскольку информационная документация не всегда устанавливается по умолчанию.

2
18.03.2021, 23:04

Теги

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