Руководство начинающего разработчика Debian - Изменение исходных текстов



         

Установка в необходимый каталог - часть 2


Вы можете спросить «почему в этот каталог, а не в какой-нибудь другой?» Потому что существуют определенные правила, говорящие куда должны быть установлены программы. Об этом можно почитать в стандарте «Иерархии файловой системы» (см. /usr/share/doc/debian-policy/fhs/). Поэтому мы должны устанавливать программу в каталог /usr/X11R6/bin вместо каталога /usr/local/bin, а страницу Руководства (в нашем случае она отсутствует, но так как для большинства программ они существуют, мы создадим ее позже) в каталог /usr/share/man/man1, а не в каталог /usr/local/man/man1.

Следующий шаг несколько сложнее. Если вы произведете следующее изменение: ICONS = $(DESTDIR)/usr/share/gentoo/

что соответствует стандарту, вам придется изменить исходные тексты программы. Но где и что искать? Вы можете попробовать выполнить команду: grep -n usr/local/lib *.[ch]

(ее нужно выполнить в каждом каталоге, в котором присутствуют файлы с расширением .c или .h). Программа grep выведет названия файлов и номера строк, в которых присутствует ‘usr/local/lib’. Теперь измените в этих строчках ‘usr/local/lib’ на ‘usr/share’ — и готово. Только будьте внимательны и не измените что-нибудь другое, особенно, если вы не слишком много знаете о программировании на языке C. :-)

Теперь вам нужно найти цель ‘install’ (поищите в файле Makefile строчку, содержащую ‘install:’) и переименуйте все ссылки на каталоги, не использующие переменные, описанные в начале файла. В нашем случае, мы несколько улучшим то, что было. Если раньше было: # ----------------------------------------- Установка

# Для того, чтобы выполнить это, вы должны иметь права пользователя root! install: gentoo install ./gentoo $(BIN) install icons $(ICONS) install gentoorc-example $(HOME)/.gentoorc

После необходимого изменения, он будет выглядеть так: # ----------------------------------------- Установка

# Для того, чтобы выполнить это, вы должны иметь права пользователя root! install: gentoo-target install -d $(BIN) $(ICONS) $(DESTDIR)/etc install ./gentoo $(BIN) install -m644 icons/* $(ICONS) install -m644 gentoorc-example $(DESTDIR)/etc/gentoorc install -d $(DESTDIR)/usr/share/doc/gentoo/html cp -a docs/* $(DESTDIR)/usr/share/doc/gentoo/html

Внимательный читатель заметит, что мы поменяли ‘gentoo’ на ‘gentoo-target’ в строчке, где указано ‘install:’. Это называется исправлением ошибки. :-)

Каждый раз, когда вы вносите изменения, не связанные непосредственно с созданием пакета Debian, обязательно отправьте их авторам программы с тем, чтобы они могли быть включены в следующий выпуск программы. Заметьте, что вы не должны посылать содержимое каталоге debian, однако вы должны посылать любые другие изменения. И попытайтесь не создавать авторам лишних проблем, внося изменения, имеющие отношения только к Linux (или даже Unix!).




Содержание  Назад  Вперед