В упаковке debian, control
файл содержит детали о двоичных пакетах, которые произведет исходный пакет. Необходимо будет указать и зависимого дуги и автономные блоки дуги в файле управления.
Используя debhelper
, Вы захотите, чтобы система сборки Вашего программного обеспечения установила на debian/tmp. Как Вы делаете это будет зависеть от системы сборки программного обеспечения. Например, если система сборки программного обеспечения использует GNU autotools
, Вы использовали бы следующее для debhelper
короткие правила:
override_dh_auto_configure:
./configure \
--prefix=/tmp
Оттуда, Вы хотите использовать dh_install
перемещать те файлы в соответствующие каталоги для упаковки. Чтобы сделать это, Вам нужен файл для каждого двоичного названного пакета <package_name>.install
. Файл должен содержать имена файлов или шаблоны, которые будут включены в пакет.
Вот пример, обеспеченный dh_install
страница справочника:
EXAMPLE Suppose your package's upstream Makefile installs a binary, a man page, and a library into appropriate subdirectories of debian/tmp. You want to put the library into package libfoo, and the rest into package foo. Your rules file will run "dh_install --sourcedir=debian/tmp". Make debian/foo.install contain: usr/bin usr/share/man/man1 While debian/libfoo.install contains: usr/lib/libfoo*.so.* If you want a libfoo-dev package too, debian/libfoo-dev.install might contain: usr/include usr/lib/libfoo*.so usr/share/man/man3
Shift+Tab на нескольких терминалах посылает последовательность экранирования, подобную этой
ESC [ Z
Она была частью консольного терминала Linux с 1995 года, частью xterm с 2002 года, и с тех пор используется в терминалах, эмулирующих один или другой из них.
В описании terminfo
это выражается как
kcbt=\E[Z,
а kcbt
документирован в terminfo(5)
:
key_btab kcbt kB back-tab key
С точки зрения разбора, нет никакой разницы между этим и нажатием какой-либо функциональной клавиши. В readline есть специальные случаи для нескольких клавиш редактирования (видно после вызова tgetent
в lib/readline/terminal.c
в bash), но termcap "kB"
не является частью этого.
может показаться, что его интерпретация как клавиши Esc находится на более базовом уровне, чем bash. Возможно, в строке чтения?
Это даже ниже. Это фундаментальное свойство работы терминалов в Unix и Unix-подобных операционных системах. Операционная система рассматривает ввод-вывод терминала как последовательность 8-битных (или даже 7-битных) символов. Функциональные клавиши и расширенные клавиши передаются как многосимвольные escape-последовательности.
В реальных терминалах эти escape-последовательности генерируются встроенным ПО в самом терминале. В программах эмулятора терминала эмулятор терминала превращает данные нажатия клавиш (которые он получил через любой пользовательский интерфейс, который он использует для общения с клавиатурой, будь то система X Window, USB-устройство hid или устройство событий Linux) в escape-последовательности.
Такие приложения, как vim
и различные библиотеки редактирования строк, пытаются отличить их от простого нажатия клавиши Esc по (фактически) времени между чтением escape-символа. и читая следующие символы. Если символы прибывают достаточно быстро один за другим, они рассматриваются как escape-последовательность.
Где я могу найти это задокументированное?
Обработка тайм-аута управляющих последовательностей во входных данных задокументирована в vim
в : help ttimeout
и для ZLE Z Shell в zshzle
страница руководства. Основная идея о том, что терминалы генерируют escape-последовательности, широко документирована.
Сложнее найти документацию по конкретным генерируемым escape-последовательностям.Многие, а в настоящее время, возможно, большинство терминалов (в частности, эмулируемые терминалы) произносят управляющие последовательности, которые произносились терминалами DEC VT (когда они находятся в том, что Digital называет «режимом ANSI») в течение многих лет. DEC предоставляет документацию для своих терминалов, и вы можете найти ее в явном обсуждении того, что Shift + Tab закодировано, как в главе 8 документа VT525 Programmer Information.
Однако: если вы используете виртуальный терминал ядра в Linux или BSD, где программа эмулятора терминала является частью ядра операционной системы, соблюдение соглашений DEC VT заметно нечеткое, когда дело доходит до input управляющих последовательностей. Частично это связано с тем, что операционные системы, такие как FreeBSD, фактически придерживаются соглашений о виртуальных терминалах SCO XENIX по умолчанию, здесь. В результате получается странная смесь DEC VT и SCO XENIX, не имеющая отношения ни к одному реальному терминалу.
Примесь - это не просто несоответствие между эмуляциями входных и выходных терминалов. Это дополнительно усугубляется тем фактом, что современные конфигурации пытаются переопределить настройки SCO XENIX по умолчанию для последовательностей управления вводом, но делают это лишь частично.Так, например: в последних версиях FreeBSD можно обнаружить, что F6 - это управляющая последовательность DEC VT CSI
1
7
~
, а не SCO XENIX последовательность, которая скомпилирована в эмулятор терминала ядра, но Shift + F6 по-прежнему является скомпилированной управляющей последовательностью SCO XENIX CSI
d
, а не Управляющая последовательность DEC VT CSI
1
7
;
2
~
.
И ничего из этого вообще нет в документации FreeBSD.