Как показано в вашем:
$ trap -p DEBUG
trap -- 'preexec_invoke_exec' DEBUG
У вас есть DEBUG
ловушка, которая запускает команды перед каждой командой. Судя по всему, кажется, что preexec_invoke_exec
команда (в конечном итоге )пытается обновить название вашего эмулятора терминала с помощью выполняемой команды.
Однако для этого он записывает управляющую последовательность на стандартный вывод, а не на терминал.
Вы должны определить, где он это делает, и добавить перенаправление > /dev/tty
, чтобы убедиться, что он всегда отправляется на tty-устройство, даже когда стандартный вывод перенаправляется, как внутри этой подстановки команды $(...)
.
Также обратите внимание, что если этот preexec_invoke_exec
предназначен для эмуляции zsh
's preexec
, он делает что-то неправильно, поскольку хук preexec
в zsh
должен выполняться только один раз сразу после командной строки. был принят и до его запуска, а не для каждой команды в этой командной строке.
«Общепринятая передовая практика» заключается в установке всех наборов файлов, (что не следует путать с «запуском всех демонов» ). Если вы склонны оставить некоторые наборы из соображений безопасности, помните, что если кто-то проник в вашу систему достаточно глубоко, чтобы запустить компилятор, запустить демоны (, такие как X )или что-то в этом роде, у вас есть много возможностей. уже большие проблемы. Кроме того, помните, что даже если OpenBSD поставляется с (удивительно )большим набором демонов в базовой установке, они не будут работать по умолчанию, если вы не настроите их. Вкратце,наличие файлов в «не -основных» наборах данных создает проблему (безопасности -с точки зрения ), только если они могут быть использованы злонамеренно, и если кто-то имеет достаточно привилегий, чтобы использовать их против вашей воли, ты уже облажался.
Если вы пропускаете некоторые наборы из-за нехватки места на диске, то это совсем другая история. У меня есть несколько небольших/старых машин, использующих IPSec и маршрутизацию, которые работают на небольших SD-картах, поэтому я склонен опускать все, кроме ядер (, включаяbsd.rd
)и base**.tgz
. Да, и man**.tgz
, потому что мне лень переключать терминалы только для того, чтобы найти какую-нибудь страницу man
. Но это не имеет ничего общего с безопасностью.
Упоминание в часто задаваемых вопросах связано с такими случаями, как запуск веб-сервера, на котором размещено какое-либо приложение PHP, которое выполняет манипуляции с изображениями/шрифтами с помощью таких вещей, как GD (через модуль php-gd
). Из-за этого мне пришлось установить xbase
на безголовый сервер. Я не думаю, что он вам понадобится для tor
, но вы всегда можете оставить X-элемент и добавить его позже.
Короче говоря, вы можете не указывать comp*
, x*
и games*
, но помните, что вы их исключили , имейте в виду, что что-то может сломаться, и будьте готовы добавить наборы постов. -установить, если необходимо. Кроме того, имейте в виду, что вам нужно знать, какие наборы вы установили при обновлении машины. Легко забыть, что вы добавили xbase
к вашему (, например. )система 6.4, де -выбираем ее при обновлении до 6.5, а заканчиваем франкенштейном.
В большинстве случаев проще установить все и ни о чем не беспокоиться.
Обновление:sysupgrade
, инструмент для автоматического обновления, поставляемый с OpenBSD, автоматически установит все наборы при обновлении системы.