Файл prototype - это файл в кодировке ASCII, используемый для указания информации об объектах пакета. Каждая запись в файле prototype описывает объект, например файл данных, каталог, исходный файл или исполняемый объект. Записи в файле prototype состоят из нескольких информационных полей, разделенных пробелами. Обратите внимание на то, что поля должны следовать в определенном порядке. Строки с комментариями начинаются со знака диеза (#) и игнорируются.
Создать файлprototype можно с помощью текстового редактора или команды pkgproto. При создании этого файла в первый раз, вероятно, проще это сделать с помощью команды pkgproto, потому что она создает файл на основе ранее созданной иерархии каталогов. Если вы не упорядочили файлы в соответствии с описанием, приведенном в разделе Упорядочение содержимого пакета, перед вами стоит нелегкая задача создания файла prototype с нуля в своем любимом текстовом редакторе.
Ниже приведен пример формата каждой строки в файле prototype:
partftypeclasspathmajorminormodeownergroup |
part |
Необязательное числовое поле, позволяющее сгруппировать объекты пакета в части. Значение по умолчанию - 1. |
ftype |
Поле, состоящее из одного символа, указывающего на тип объекта. См. раздел Поле ftype. |
class |
Класс установки, к которому принадлежит объект. См. раздел Поле class. |
path |
Абсолютное или относительное имя пути, указывающее, в каком месте целевой системы будет находиться объект пакета. См. раздел Поле path. |
major |
Старший номер устройства для специальных блочных или символьных устройств. |
minor |
Младший номер устройства для специальных блочных или символьных устройств. |
mode |
Восьмеричный режим объекта (например, 0644). См. раздел Поле mode. |
owner |
Владелец объекта (например, bin или root). См. раздел Поле owner. |
group |
Группа, к которой принадлежит объект (например, bin или sys). См. раздел Поле group. |
Обычно определяются только поля ftype, class, path, mode, owner,и group. Эти поля описаны в следующих разделах. Для получения дополнительной информации по этим полям см. справочную страницу prototype(4).
Поле ftype или тип файла является односимвольным полем, обозначающим тип файла объекта пакета. Допустимые типы файлов представлены в следующей ниже таблице.
Таблица 2–3 Допустимые типы файлов в файле prototype
Допустимое значение типа файла |
Описание типа файла |
---|---|
f |
Стандартный исполняемый файл или файл данных |
e |
Файл, который изменяется во время установки или удаления (может быть общим для нескольких пакетов) |
v |
Непостоянный файл (содержимое которого будет меняться, например, файл журнала) |
d |
Каталог |
x |
Монопольный каталог, доступный только этому пакету (может содержать незарегистрированные журналы или информацию базы данных) |
l |
Ссылочный файл |
p |
Именованный канал |
c |
Специальное символьное устройство |
b |
Специальное блочное устройство |
i |
Информационный файл или сценарий установки |
s |
Символическая ссылка |
Поле class именует класс, к которому принадлежит объект. Использование классов является необязательной функцией для разработки пакета. Более подробно эта функция рассматривается в разделе Создание сценариев действий над классами.
Если классы не используются, объект принадлежит к классу none. При выполнении команды pkgmk для сборки пакета команда вставляет параметр CLASSES=none в файл pkginfo. У файлов типа i поле class должно быть пустым.
Поле path используется для определения местонахождения объекта пакета в целевой системе. Указать местоположение файла можно с помощью абсолютного (например, /usr/bin/mail) или относительного имени пути (например, bin/mail). Использование абсолютного имени пути означает, что местоположение объекта в целевой системе определяется пакетом и не может быть изменено. Объекты пакета с относительными именами пути являются перемещаемыми.
Перемещаемому объекту не требуется абсолютного пути в целевой системе. Вместо этого его местоположение определяется в ходе процесса установки.
Перемещаемыми могут быть отдельные объекты или все объекты пакета. Перед написанием сценария установки или созданием файла prototype необходимо решить, будут ли объекты пакета иметь фиксированное местоположение (например, сценарии запуска в каталоге /etc) или перемещаемое .
Существуют два типа перемещаемых объектов: коллективно перемещаемые и индивидуально перемещаемые.
Коллективно перемещаемые объекты расположены в месте, связанном с общей установочной базой, называемой базовым каталогом . Базовый каталог определяется в файле pkginfo с помощью параметра BASEDIR. Например, перемещаемый объект tests/generic в файле prototype требует, чтобы в файле pkginfo по умолчанию был установлен параметрBASEDIR. Пример:
BASEDIR=/opt |
В данном примере после установки объекта он будет расположен в каталоге /opt/tests/generic.
Единственным каталогом, куда можно устанавливать программное обеспечение, не являющееся базовым ПО Solaris, это каталог /opt.
По возможности старайтесь использовать коллективно перемещаемые объекты. В общем случае основная часть пакета может быть перемещаемой, а несколько файлов (например, файлы в каталогах /etc или /var) могут быть указаны как абсолютные. Однако, если пакет содержит множество различных перемещений, рекомендуется разделить пакет на несколько пакетов с явно указанными значениями BASEDIR в соответствующих файлах pkginfo.
Индивидуально перемещаемые объекты, в отличие от коллективно перемещаемых, не ограничены размещением в одном и том же каталоге. Для определения индивидуально перемещаемого объекта необходимо указать установочную переменную в поле path файла prototype. После определения установочной переменной нужно создать сценарий request, запрашивающий установщик о расположении перемещаемого базового каталога, или сценарий checkinstall для получения имени пути из данных файловой системы. Для получения дополнительной информации по сценарию request см. раздел Создание сценария request , а информация по сценарию checkinstall находится в разделе Сбор данных о файловой системе.
Управлять индивидуально перемещаемыми объектами сложно. Использование индивидуально перемещаемых объектов может привести к большому разнесению компонентов пакета, которые будет сложно изолировать при установке нескольких версий или архитектур пакета. По возможности старайтесь использовать коллективно перемещаемые объекты.
Параметрическое имя пути - это имя пути, содержащее спецификацию переменной. Например, /opt/$PKGINST/filename является параметрическим именем пути, поскольку включает спецификацию переменной $PKGINST. Значение спецификации переменной по умолчанию должно быть определено в файле pkginfo. Позднее это значение может быть изменено сценариями request или checkinstall.
Спецификация переменной должна стоять в начале или в конце имени пути или должна быть заключена между символами наклонной черты (/). Допускаются следующие формы параметрических имен пути.
$PARAM/tests tests/$PARAM/generic /tests/$PARAM |
После того как спецификация переменной определена, путь может быть вычислен как абсолютный или перемещаемый. В примере ниже файл prototype содержит следующую запись:
f none $DIRLOC/tests/generic |
Файл pkginfo содержит следующую запись:
DIRLOC=/myopt |
Имя пути $DIRLOC/tests/generic приобретает вид абсолютного имени пути /myopt/tests/generic независимо от того, был ли установлен параметр BASEDIR в файле pkginfo.
В данном примере файл prototype идентичен одному из предыдущих примеров, а в файле pkginfo содержатся следующие записи:
DIRLOC=firstcut BASEDIR=/opt |
Имя пути $DIRLOC/tests/generic будет выражено в виде перемещаемого имени пути /opt/firstcut/tests/generic.
Для получения дополнительной информации о параметрических именах путей см. раздел Использование параметрических базовых каталогов.
Поле path в файле prototype определяет расположение объекта в целевой системе. Если структура каталога не повторяет структуру, которую необходимо получить в целевой системе, то следует указать существующее местоположение объектов пакета в файле prototype. Для получения дополнительной информации о структурировании объектов в пакете см. раздел Упорядочение содержимого пакета.
Если структура области разработки отличается от желаемой структуры пакета, то можно использовать формат path1=path2 в поле path. В этом формате path1 означает расположение объекта в целевой системе, а path2 - расположение объектов в системе разработчика.
Этот же формат имени пути (path1=path2) можно использовать следующим образом: определить path1 в качестве перемещаемого имени объекта , а path2 - в качестве полного имени пути к этому объекту в системе разработчика.
path1 не должен содержать неопределенных переменных сборки, но может содержать неопределенные переменные установки. path2 не может содержать никаких неопределенных переменных, однако можно использовать переменные обоих типов. Для получения дополнительной информации о разнице между переменными установки, и переменными, создаваемыми в процессе сборки пакета, см. раздел Переменные среды пакета.
Для ссылок должен использоваться формат path1= path2, поскольку они создаются с помощью команды pkgadd. В общем случае путь path2 в ссылках никогда не должен быть абсолютным. Данный путь должен указываться относительно части пути path1, обозначающей каталог.
Вместо формата path1=path2 можно использовать команду !search. Для получения дополнительной информации см. раздел Указание пути поиска для команды pkgmk..
Поле mode может содержать восьмеричное число, знак вопроса (?) или спецификацию переменной. Восьмеричное число определяет режим объекта после его установки на целевую систему. Знак вопроса ? означает, что при установке объекта режим останется неизменным. Подразумевается, что объект с тем же именем уже существует в целевой системе.
Спецификация переменной в форме $mode означает, что данное поле будет установлено во время сборки пакета. Первая буква переменной должна быть строчной. Обратите внимание, что эта переменная должна быть определена во время сборки пакета либо в файле prototype, либо в качестве параметра команды pkgmk. Для получения дополнительной информации о разнице между переменными установки и переменными сборки пакета см. раздел Переменные среды пакета.
У файлов типа i (информационные файлы), l (жесткая ссылка) и s (символическая ссылка) это поле должно быть пустым.
Поле owner может содержать имя пользователя, знак вопроса (?) или спецификацию переменной. Имя пользователя не должно быть длиннее 14 символов и должно соответствовать имени, уже существующему в целевой системе (например, bin или root). Знак вопроса ? означает, что при установке объекта владелец (owner) останется неизменным. Подразумевается, что объект с тем же именем уже существует в целевой системе.
Спецификация переменной может быть указана в форме $ Owner или $owner, т.е. первая буква может быть как заглавной, так и строчной. Если переменная начинается со строчной буквы, то ее необходимо определить в период сборки пакета в файле prototype или в качестве параметра команды pkgmk. Если переменная начинается с заглавной буквы, то спецификация переменной будет внесена в файл pkginfo в качестве значения по умолчанию и может быть переопределена в ходе установки с помощью сценария request. Для получения дополнительной информации о разнице между переменными, создаваемыми в процессе установки, и переменными, создаваемыми в процессе сборки пакета, см. раздел Переменные среды пакета.
У файлов типа i (информационный файл) и lb (жесткая ссылка) это поле должно быть пустым.
Поле group может содержать имя группы, знак вопроса (?) или спецификацию переменной. Имя группы не должно быть длиннее 14 символов и должно соответствовать имени, уже существующему в целевой системе (например, bin или sys). Знак вопроса ? означает, что при установке объекта группа (group) останется неизменной. Подразумевается, что объект с тем же именем уже существует в целевой системе.
Спецификация переменной может быть указана в форме $ Group или $group, т.е. первая буква переменной может быть как заглавной, так и строчной. Если переменная начинается со строчной буквы, то ее необходимо определить в период сборки пакета в файле prototype или в качестве параметра команды pkgmk. Если переменная начинается с заглавной буквы, то спецификация переменной будет внесена в файл pkginfo в качестве значения по умолчанию и может быть переопределена в ходе установки с помощью сценария request. Для получения дополнительной информации о разнице между переменными установки и переменными сборки пакета см. раздел Переменные среды пакета.
У файлов типа i (информационный файл) и l (жесткая ссылка) это поле должно быть пустым.
При необходимости создания файла prototype с нуля можно использовать свой любимый текстовый редактор и добавлять по одной записи для каждого объекта пакета. Для получения дополнительной информации по формату этого файла см. раздел Формат файла prototype и справочную страницу prototype(4). После определения каждого объекта пакета можно включить в файл некоторые функции, описанные в разделе Добавление функций в файл prototype.
С помощью команды pkgproto можно создать базовый файл prototype при условии, что структура каталогов пакета была упорядочена в соответствии с процедурой, описанной в разделе Упорядочение содержимого пакета. Например, с помощью используемой в примерах структуре каталогов и файла pkginfo, описание которого дано в предыдущих разделах, команды для создания файла prototype будут выглядеть следующим образом:
$ cd /home/jane $ pkgproto ./SUNWcadap > InfoFiles/prototype |
В результате получится следующий файл prototype:
d none SUNWcadap 0755 jane staff d none SUNWcadap/demo 0755 jane staff f none SUNWcadap/demo/file1 0555 jane staff d none SUNWcadap/srcfiles 0755 jane staff f none SUNWcadap/srcfiles/file5 0555 jane staff f none SUNWcadap/srcfiles/file6 0555 jane staff d none SUNWcadap/lib 0755 jane staff f none SUNWcadap/lib/file2 0644 jane staff d none SUNWcadap/man 0755 jane staff f none SUNWcadap/man/windex 0644 jane staff d none SUNWcadap/man/man1 0755 jane staff f none SUNWcadap/man/man1/file4.1 0444 jane staff f none SUNWcadap/man/man1/file3.1 0444 jane staff |
Действительный владелец и группа, в которую входит сборщик пакета, записываются командой pkgproto. Полезным приемом считается использование команд chown -R и chgrp -R, указывающих владельца и группу, до выполнения команды pkgproto.
В приведенном выше примере создание файла prototype не закончено. В следующем разделе приводится информация по завершению создания этого файла.
Несмотря на то, что команда pkgproto очень полезна при создании первичного файла prototype, она не создает записей для всех объектов пакета, которые должны быть определены. Эта команда не создает полных записей. Команда pkgproto не делает ничего из перечисленного ниже.
Не создает полных записей для объектов типа v (непостоянные файлы), e (редактируемые файлы), x (монопольные каталоги) и i (информационные файлы или сценарии установки)
Не поддерживает множественные классы с единым вызовом
Как минимум необходимо изменить файл prototype и добавить в него объекты с типом файла i. Если информационные файлы и сценарии установки были сохранены на первом уровне каталога пакета (например, /home/jane/SUNWcadap/pkginfo), тогда запись в файле prototype будет выглядеть следующим образом:
i pkginfo |
Если же они не были сохранены на первом уровне каталога пакета, то потребуется указать из исходное местоположение. Пример:
i pkginfo=/home/jane/InfoFiles/pkginfo |
В качестве альтернативы можно использовать команду !search для указания местоположения, которое команда pkgmk будет искать при сборке пакета. Для получения дополнительной информации см. раздел Указание пути поиска для команды pkgmk..
Для добавления записей для объектов типа v, e и x используйте формат, описанный в разделе Формат файла prototype, или воспользуйтесь справочной страницей prototype(4).
Не забывайте всегда назначать класс для файлов типа e (редактируемые) и создавать для него связанный сценарий действия над классом. В противном случае файлы будут удалены в ходе удаления пакета, даже если указанное имя пути совместно используется другими пакетами.
При использовании команды pkgproto для создания базового файла prototype можно назначить все объекты пакета классу none или одному определенному классу. Как показано в разделе Пример. Создание файла prototypeс помощью команды pkgproto, базовая команда pkgproto назначает все объекты классу none. Чтобы назначить все объекты какому-либо определенному классу, можно использовать параметр -c. Пример:
$ pkgproto -c classname /home/jane/SUNWcadap > /home/jane/InfoFiles/prototype |
При использовании нескольких классов придется изменить файл prototype вручную и отредактировать поле class для каждого объекта. При использовании классов необходимо также определить параметр CLASSES в файле pkginfo, а также написать сценарии действий над классами. Использование классов является необязательным и подробно обсуждается в разделе Создание сценариев действий над классами.
При наличии файла prototype, созданного ранее при помощи команды pkgproto, как описано в разделе Пример. Создание файла prototypeс помощью команды pkgproto, в нем требуется произвести некоторые изменения.
Необходима запись для файла pkginfo.
Поле path необходимо перевести в формат path1=path2, поскольку источник пакета находится в каталоге /home/jane . Так как исходный пакет представляет собой иерархический каталог, а команда !search не может осуществлять поиск рекурсивно, проще использовать формат path1=path2.
Поля owner и group должны содержать имена существующих в целевой системе пользователей и групп. Следовательно, при указании владельца jane возникнет ошибка, так как данный владелец не является частью операционной системы SunOSTM.
Измененный файл prototype будет выглядеть следующим образом:
i pkginfo=/home/jane/InfoFiles/pkginfo d none SUNWcadap=/home/jane/SUNWcadap 0755 root sys d none SUNWcadap/demo=/home/jane/SUNWcadap/demo 0755 root bin f none SUNWcadap/demo/file1=/home/jane/SUNWcadap/demo/file1 0555 root bin d none SUNWcadap/srcfiles=/home/jane/SUNWcadap/srcfiles 0755 root bin f none SUNWcadap/srcfiles/file5=/home/jane/SUNWcadap/srcfiles/file5 0555 root bin f none SUNWcadap/srcfiles/file6=/home/jane/SUNWcadap/srcfiles/file6 0555 root bin d none SUNWcadap/lib=/home/jane/SUNWcadap/lib 0755 root bin f none SUNWcadap/lib/file2=/home/jane/SUNWcadap/lib/file2 0644 root bin d none SUNWcadap/man=/home/jane/SUNWcadap/man 0755 bin bin f none SUNWcadap/man/windex=/home/jane/SUNWcadap/man/windex 0644 root other d none SUNWcadap/man/man1=/home/jane/SUNWcadap/man/man1 0755 bin bin f none SUNWcadap/man/man1/file4.1=/home/jane/SUNWcadap/man/man1/file4.1 0444 bin bin f none SUNWcadap/man/man1/file3.1=/home/jane/SUNWcadap/man/man1/file3.1 0444 bin bin |
Помимо определения каждого объекта пакета в файле prototype, можно расширить его функциональность следующим образом.
Определить дополнительные объекты, которые будут создаваться во время установки пакета.
Создать ссылки во время установки.
Распределить пакеты по нескольким томам.
Организовать вложенные файлы prototype.
Установить значения по умолчанию для полей mode, owner и group.
Указать путь поиска для командыpkgmk.
Установить переменные среды.
В представленных ниже разделах содержится информация о том, как произвести указанные изменения.
С помощью файла prototype можно определять объекты, не поставляемые на распространяемом носителе. Если во время установки объекты требуемого типа не существуют, команда pkgadd создает эти объекты.
Для того чтобы указать, что объект будет создаваться на целевой системе, добавьте для него запись в файле prototype и укажите соответствующий тип файла.
Например, если на целевой системе необходимо создать каталог, отсутствующий на распространяемом носителе, следует добавить следующую запись в файл prototype:
d none /directory 0644 root other |
Для создания пустого файла на целевой системе запись для такого файла в файле prototype может принять следующий вид:
f none filename=/dev/null 0644 bin bin |
Единственными объектами, которые должны поставляться на распространяемом носителе, являются обычные файлы и сценарии редактирования (файлы типов e, v, f), а также каталоги, в которых они содержатся. Любые дополнительные объекты создаются без ссылки на поставляемые объекты, каталоги, именованные каналы, устройства, жесткие и символические ссылки.
Для создания ссылок во время установки пакета в записи файла prototype для ссылочного объекта укажите следующее:
Его тип в виде l (ссылка) или s (символическая ссылка).
Имя пути ссылочного объекта в формате path1=path2, где path1 - файл назначения, а path2 - исходный файл. В общем случае путь path2 в ссылках никогда не должен быть абсолютным. Данный путь должен указываться относительно части пути path1, обозначающей каталог. Например, запись в файле prototype, определяющая символическую ссылку, может выглядеть следующим образом:
s none etc/mount=../usr/etc/mount |
Создание относительных ссылок будет зависеть от способа установки пакета, то есть будет ли он установлен как абсолютный или перемещаемый пакет.
При сборке пакета с помощью команды pkgmk эта команда производит расчеты и действия, необходимые для упорядочения многотомного пакета. Многотомный пакет называется сегментированным пакетом.
Существует и другой способ указать, в какой части будет располагаться объект. Для этого следует воспользоваться необязательном полем part в файле prototype. Номер, указанный в этом поле, отменяет команду pkgmk и помещает компонент в часть, указанную в этом поле. Обратите внимание на то, что существует взаимно-однозначное соответствие между частями и томами для сменных носителей, отформатированных как файловые системы. Если тома были назначены разработчиком, при недостаточном количестве места на любом из томов команда pkgmk выдает ошибку.
Можно создать несколько файлов prototype, а затем включить их при помощи команды !include в один файл prototype. Вложение файлов может потребоваться для облегчения поддержки.
В следующем примере присутствуют три файла prototype. Редактируется главный файл (prototype). Два других файла (proto2 и proto3) включаются в этот файл.
!include /source-dir/proto2 !include /source-dir/proto3 |
Чтобы установить значения по умолчанию для полей mode, owner и group отдельных объектов пакета, необходимо вставить команду !default в файл prototype. Пример:
!default 0644 root other |
Действие команды !default начинается с места ее включения в файл и продолжается до его конца. Действие команды не распространяется на вложенные файлы.
Следует иметь в виду, что для каталогов (тип файла d) и редактируемых файлов (тип файла e), имеющихся в целевой системе (таких как /usr или /etc/vfstab), необходимо установить в значениях полей mode, owner и group в файле prototype вопросительный знак (?). Таким образом, не будут нарушены существующие параметры, измененные администратором сайта.
Если исходное расположение объектов пакета отличается от из расположения в целевой системе, и использование формата path1=path2, описанного в разделе Краткие замечания о расположении каталогов источника и приемника объекта, нежелательно, то можно использовать команду !search в файле prototype.
Например, если в домашнем каталоге был создан каталог pkgfiles, содержащий все информационные файлы и сценарии установки, то можно указать, что необходим поиск этого каталога при сборке пакета с помощью команды pkgmk.
Команда в файле prototype будет выглядеть следующим образом:
!search /home-dir/pkgfiles |
Запрос на поиск не распространяется на вложенные файлы. Кроме того, поиск ограничен определенными перечисленными каталогами. Рекурсивный поиск также не производится.
К файлу prototype можно добавлять команды и в следующей форме: !PARAM=value. Команды, представленные в такой форме, определяют переменные в существующей среде. При наличии нескольких файлов prototype действие этой команды распространяется на тот файл prototype , в котором она была определена.
Переменная PARAM может начинаться с заглавной или со строчной буквы. Если значение переменной PARAM неизвестно во время сборки пакета, то выполнение команды pkgmk прерывается, и выдается сообщение об ошибке. Для получения дополнительной информации о разнице между переменными установки и переменными сборки пакета см. раздел Переменные среды пакета.
Рекомендуется создавать информационные файлы и сценарии установки до создания файла prototype. Однако этот порядок не является обязательным. Файл prototype всегда можно отредактировать после изменения содержимого пакета. Для получения дополнительных данных об информационных файлах и сценариях установки см. Глава 3Расширение функциональности пакета (задачи).
Определите, какие объекты пакета будут абсолютными, а какие - перемещаемыми.
Для получения информации о выполнении этого этапа см. раздел Поле path.
Упорядочите объекты пакета таким образом, чтобы они повторяли свое расположение в целевой системе.
Если пакеты уже упорядочены так, как описано в разделе Упорядочение содержимого пакета, возможно, придется внести в них некоторые изменения в зависимости от того, какое решение было принято в Шаг 1. Если пакет еще не упорядочен, следует сделать это сейчас. Если пакет не будет упорядочен, использование команды pkgproto для создания файла prototype будет невозможно.
Если пакет содержит коллективно перемещаемые объекты, необходимо отредактировать файл pkginfo и присвоить параметру BASEDIR соответствующее значение.
Пример:
BASEDIR=/opt |
Для получения информации о коллективно перемещаемых объектах см. раздел Коллективно перемещаемые объекты.
Если пакет содержит индивидуально перемещаемые объекты, необходимо создать сценарий request, который будет предлагать установщику ввести соответствующее имя пути. Как вариант, можно создать сценарий checkinstall, который определит соответствующий путь на основе системных данных.
Ниже приведены ссылки на наиболее общие задачи.
Для создания сценария request см. раздел Создание сценария request .
Для создания сценария checkinstall см. раздел Сбор данных о файловой системе.
Для получения дополнительной информации об индивидуально перемещаемых объектах см. раздел Индивидуально перемещаемые объекты.
Измените владельца и группу во всех компонентах пакета таким образом, чтобы они соответствовали владельцу и группе в целевой системе.
Используйте команды chown -R и chgrp -R в каталоге пакета и каталоге информационных файлов.
Выполните команду pkgproto для создания базового файла prototype.
Команда pkgproto сканирует каталоги и создает базовый файл. Пример:
$ cd package-directory $ pkgproto ./package-directory > prototype |
Файл prototype может располагаться в любом месте системы. Для упрощения доступа и обслуживания информационных файлов и сценариев установки рекомендуется хранить их в одном месте. Для получения дополнительной информации о команде pkgproto см. справочную страницу pkgproto(1).
Откройте файл prototype в своем любимом текстовом редакторе и добавьте записи для файлов типа v, e, x и i.
Для получения информации об изменениях, которые, вероятно, придется сделать, см. раздел Настройка файла prototype, созданного с помощью команды pkgproto.
(Необязательное действие) При использовании нескольких классов отредактируйте файлы prototype и pkginfo. Используйте текстовый редактор для производства необходимых изменений и создания соответствующих сценариев действий над классами.
Для получения информации об изменениях, которые вероятно придется сделать, см. раздел Настройка файла prototype, созданного с помощью команды pkgproto и Создание сценариев действий над классами.
Откройте файл prototype в текстовом редакторе и переопределите имена путей, а также измените другие настройки полей.
Для получения дополнительной информации см. раздел Настройка файла prototype, созданного с помощью команды pkgproto.
(Необязательно) Откройте файл prototype в любом удобном текстовом редакторе и добавьте дополнительные функции к файлу prototype.
Для получения дополнительной информации см. раздел Добавление функций в файл prototype.
Сохраните изменения и выйдите из редактора.
Для перехода к следующей задаче перейдите по ссылке Как собрать пакет.