Next: Стиль кодирования, Previous: Совершенная установка, Up: Содействие [Contents][Index]
Дистрибутив GNU - в процессе возникновения и может не содержать ваши любимые пакеты. Этот раздел описывает как можно помочь с развитием дистрибутива.
Пакеты свободного программного обеспечения обычно распространяются в виде архивов исходного кода (файлы tar.gz), которые содержат все исходные файлы. Добавить пакет в дистрибутив означает, по существу, две вещи: добавление рецепта, в котором обозначено, как собирать пакет, включая список других пакетов, необходимых для сборки данного, а также добавление метаданных пакета вместе с рецептом, как например, описание информации о лицензировании.
В Guix вся эта информация включена в определения пакетов. Определения пакетов представляют собой высокоуровневый обзор пакета. Они написаны с использованием синтаксиса языка программирования Scheme. Для каждого пакета задаётся набор переменных, которые составляют определение пакета, и затем это определение пакета экспортируется из модуля (see Пакетные модули). Однако основательные знания Scheme not не обязательны для создания пакетов. Для информации об определении пакетов см. see Описание пакетов.
Когда определение пакета создано, сохранено в файле в дереве исходников
Guix, оно может быть протестировано командой guix build
(see Запуск guix build). Например, допустим, новый пакет называется
gnew
, тогда можно запустить эту команду из дерева сборки Guix
(see Запуск Guix перед его установкой):
./pre-inst-env guix build gnew --keep-failed
Использование --keep-failed
помогает при отладке ошибок сборки, так
как эта опция предоставляет доступ к дереву неудачных сборок. Другая
полезная опция командной строки при отладке - --log-file
, которая
даёт доступ к логу сборки.
Если пакет не известен команде guix
, это может означать, что файл
исходника содержит синтаксическую ошибку или не имеет предложения
define-public
, которое экспортирует переменную пакета. Чтобы
разобраться, можно загрузить модуль из Guile и получить больше информации о
текущей ошибке:
./pre-inst-env guile -c '(use-modules (gnu packages gnew))'
Если ваш пакет собирается без ошибок, пришлите нам свой патч (see Отправка исправлений). Если вам нужна помощь, мы будем рады помочь вам со своей стороны. После фиксации патча в репозитории Guix новый пакет будет автоматически собран для всех поддерживаемых платформ нашей https://ci.guix.gnu.org CI-системой.
Пользователи могут получать новые доступные определения пакетов простым
запуском guix pull
(see Запуск guix pull). Если
ci.guix.gnu.org
выполнил сборку пакета, установка пакета
выполнит автоматическое скачивание бинарных файлов оттуда
(see Подстановки). Единственное место, где нужна активность человека, -
обзор и применение патча.
• Свобода программного обеспечения | Что может быть принято в дистрибутив. | |
• Как называть пакеты | Что может быть в имени? | |
• Номера версий | Когда имени не достаточно. | |
• Краткие обзоры и описания | Помощь пользователю в поиске нужного пакета. | |
• Сниппеты против Фаз | Где использовать сниппет, а где фазу сборки. | |
• Пакеты Emacs | Ваш Elisp фикс. | |
• Модули Python | Английский юмор. | |
• Модули Perl | Жемчужинки. | |
• Пакеты Java | Кофе-брейк. | |
• Rust Crates пакеты | Остерегайтесь окисления. | |
• Шрифты | Любителям шрифтов. |
Next: Стиль кодирования, Previous: Совершенная установка, Up: Содействие [Contents][Index]