
Pkgbuild – это скрипт для автоматизации сборки пакетов в Arch-подобных системах, включая Manjaro. Он описывает источник, зависимости, шаги компиляции и установки пакета. Использование Pkgbuild позволяет создавать локальные пакеты, которые полностью интегрируются с системным менеджером пакетов Pacman.
Перед установкой Pkgbuild важно убедиться, что на системе установлены базовые инструменты сборки. В Manjaro это пакеты base-devel и git, которые включают компиляторы, утилиты make, patch и другие необходимые инструменты. Проверка и установка выполняется через команду sudo pacman -S —needed base-devel git.
Рекомендуется создавать отдельную рабочую директорию для сборки пакетов, например ~/pkgbuild, чтобы структура файлов оставалась чистой и сборка не затрагивала системные директории. В этой папке можно клонировать репозитории AUR или сохранять собственные Pkgbuild для дальнейшей сборки.
Работа с Pkgbuild предполагает последовательное выполнение команд makepkg и pacman -U. Сначала makepkg -si собирает пакет, проверяет зависимости и устанавливает его. Такой подход позволяет избежать ручной компиляции и упрощает контроль версий пакетов.
Проверка наличия необходимых инструментов для сборки

Для сборки пакетов через Pkgbuild в Manjaro требуется установить базовые инструменты разработки. Убедитесь, что на системе присутствуют пакеты base-devel, включающие make, gcc, fakeroot и patch. Проверку можно выполнить командой pacman -Qs base-devel. Если пакет не установлен, используйте sudo pacman -S --needed base-devel.
Дополнительно убедитесь в наличии утилит для работы с AUR: git и pkgconf. Проверку проводят через git --version и pkgconf --version. При отсутствии установите их через sudo pacman -S git pkgconf.
Скачивание Pkgbuild с официального репозитория Arch User Repository

Для начала необходимо убедиться, что в системе установлен пакет git, так как он потребуется для клонирования репозитория AUR. Проверка выполняется командой sudo pacman -Qi git. Если пакет отсутствует, установите его через sudo pacman -S git.
После этого выберите Pkgbuild, который требуется скачать, на сайте Arch User Repository. Используйте поиск по названию пакета. На странице пакета найдите ссылку Git Clone URL и скопируйте её.
Клонирование выполняется командой:
git clone [скопированный URL]
Эта команда создаст локальную папку с содержимым Pkgbuild, включая файл PKGBUILD, скрипты и метаданные пакета. После клонирования перейдите в папку с пакетом командой cd [имя_папки], чтобы подготовиться к сборке или редактированию.
Рекомендуется проверить актуальность Pkgbuild перед сборкой. Это можно сделать, сравнив SHA256 суммы исходников, указанных в PKGBUILD, с официальными источниками, чтобы исключить повреждённые или изменённые файлы.
Настройка прав доступа к файлам Pkgbuild
Файлы Pkgbuild должны иметь корректные права доступа для безопасной сборки пакета. Обычно достаточно установить права 644 для самого Pkgbuild и 755 для скриптов и каталогов, используемых в сборке.
Для изменения прав доступа используйте команду chmod. Например, чтобы установить стандартные права для Pkgbuild:
chmod 644 Pkgbuild
Если в каталоге есть вспомогательные скрипты, назначьте им права на выполнение:
chmod +x build.sh
Проверить текущие права можно с помощью команды ls -l:
| Файл | Права |
|---|---|
| Pkgbuild | -rw-r—r— |
| build.sh | -rwxr-xr-x |
Для корректной работы сборки важно, чтобы Pkgbuild принадлежал пользователю, под которым выполняется makepkg. Изменить владельца можно через:
chown username:username Pkgbuild
Соблюдение этих правил предотвращает ошибки при сборке и обеспечивает безопасность системы при использовании AUR-пакетов.
Анализ и редактирование Pkgbuild перед сборкой

Перед запуском сборки необходимо проверить содержимое Pkgbuild. Начните с анализа полей pkgname, pkgver и pkgrel, чтобы убедиться, что они соответствуют версии пакета. Проверьте arch, чтобы сборка выполнялась для вашей архитектуры.
Обратите внимание на depends и makedepends. Убедитесь, что все зависимости установлены в системе или доступны через репозитории. При необходимости добавьте недостающие пакеты.
Проверьте функции prepare(), build() и package() на корректность команд и путей. Особое внимание уделяйте переменным окружения и флагам компилятора. Некорректные пути или отсутствующие файлы могут вызвать ошибки сборки.
Если Pkgbuild загружен из AUR, сравните его с официальными источниками проекта. Убедитесь, что ссылки на исходники и контрольные суммы (sha256sums) актуальны. Обновите их при необходимости, чтобы избежать ошибок проверки.
Редактирование Pkgbuild выполняйте в текстовом редакторе с поддержкой кодировки UTF-8. Сохраняйте изменения после каждого шага проверки. Для тестовой сборки используйте команду makepkg -si, чтобы выявить ошибки до установки.
Сборка пакета с помощью команды makepkg

Для сборки пакета из Pkgbuild используется команда makepkg, которая автоматически выполняет все этапы: загрузку исходников, проверку контрольных сумм, компиляцию и упаковку.
Базовая команда для сборки пакета:
makepkg -si
Опции:
-s– автоматически устанавливает отсутствующие зависимости через pacman.-i– после сборки автоматически устанавливает пакет.
Для сборки без установки используется просто:
makepkg
Если Pkgbuild содержит патчи или дополнительные файлы, команда применяет их автоматически в процессе сборки. При необходимости можно использовать дополнительные ключи:
-C– очищает предыдущие файлы сборки перед началом.-f– принудительно пересобирает пакет даже при наличии готового.-p /путь/к/Pkgbuild– указание конкретного Pkgbuild.
После успешной сборки в текущей папке появится файл .pkg.tar.zst, который можно установить вручную с помощью:
sudo pacman -U имя_пакета.pkg.tar.zst
Установка собранного пакета через pacman

После сборки пакета с помощью makepkg в рабочей директории появится файл с расширением .pkg.tar.zst. Для его установки используется команда pacman с флагом -U, который указывает на локальный пакет.
Пример установки: sudo pacman -U имя_пакета.pkg.tar.zst. Эта команда автоматически проверяет зависимости и устанавливает пакет в систему.
Если возникают конфликты с уже установленными пакетами, pacman выдаст соответствующее предупреждение. В таких случаях рекомендуется сначала удалить старую версию через sudo pacman -R имя_пакета, а затем выполнить установку новой.
Для проверки успешной установки используйте команду pacman -Qi имя_пакета. Она отображает версию, дату установки и список зависимостей.
При необходимости пакет можно обновить аналогичным образом, повторно выполнив sudo pacman -U имя_пакета.pkg.tar.zst после сборки новой версии.
Проверка корректной установки пакета в системе
Для проверки установки используйте команду pacman -Q имя_пакета. Она возвращает точное название пакета и его версию. Если пакет не установлен, команда выдаст сообщение об ошибке.
Для проверки файлов, установленных пакетом, примените pacman -Ql имя_пакета. Список покажет все пути файлов, что позволяет убедиться в правильности установки.
Чтобы проверить целостность и изменения файлов пакета, используйте pacman -Qk имя_пакета. Команда указывает отсутствующие или изменённые файлы.
Для дополнительной проверки можно запустить bin-файлы пакета из терминала, например: /usr/bin/имя_программы —version, чтобы убедиться, что программа работает и отображает корректную версию.
Если пакет был собран из AUR, полезно сверить контрольную сумму исходников с оригиналом в PKGBUILD через команду makepkg -C перед сборкой, что исключает повреждённые или модифицированные файлы.
Удаление или обновление пакета при необходимости

Для управления установленными пакетами в Manjaro используется пакетный менеджер pacman. Если требуется удалить пакет, используйте команду:
sudo pacman -R имя_пакета
Для удаления пакета вместе с неиспользуемыми зависимостями:
sudo pacman -Rs имя_пакета
Для полного удаления пакета с его конфигурационными файлами и зависимостями, которые не нужны другим пакетам:
sudo pacman -Rns имя_пакета
Для обновления пакета до последней версии из репозитория:
sudo pacman -Syu имя_пакета
Если пакет был собран из Pkgbuild и требуется его обновление после изменения скрипта:
- Перейдите в каталог с Pkgbuild.
- Соберите пакет заново с помощью
makepkg -si. - Команда установит новую версию, заменив старую.
Перед удалением или обновлением рекомендуется проверить, какие зависимости будут затронуты, командой:
pacman -Qi имя_пакета
или для проверки удаляемых зависимостей:
pacman -Rns имя_пакета --print
Вопрос-ответ:
Что такое Pkgbuild и зачем он нужен в Manjaro?
Pkgbuild — это текстовый файл с инструкциями для сборки пакета в системах на базе Arch Linux, включая Manjaro. Он содержит информацию о зависимости, источниках исходного кода, шагах компиляции и установке. Используя Pkgbuild, можно создавать локальные пакеты или собирать программы из Arch User Repository, обеспечивая удобное управление и обновление установленного ПО.
Какие инструменты нужны для сборки пакета через Pkgbuild?
Для работы с Pkgbuild потребуется набор базовых утилит: makepkg для сборки пакета, pacman для установки, а также компиляторы и библиотеки, указанные в разделе depends файла Pkgbuild. Обычно достаточно установить пакет base-devel, который содержит gcc, make, patch и другие необходимые компоненты. Без этих инструментов сборка будет прервана с ошибками.
Как проверить, что пакет был установлен корректно после сборки?
После сборки и установки пакета через pacman следует использовать команду pacman -Qi <имя_пакета> для проверки информации о пакете. Это покажет версию, дату установки, список файлов и зависимости. Также полезно проверить наличие основных файлов программы в соответствующих каталогах, чтобы убедиться, что сборка прошла полностью и приложение готово к использованию.
Что делать, если сборка пакета завершилась с ошибкой?
Если makepkg завершает работу с ошибкой, первым делом стоит изучить сообщение об ошибке, чтобы понять причину. Часто проблема связана с отсутствующими зависимостями, неверными правами на файлы или устаревшими исходниками. Необходимо установить недостающие пакеты через pacman, проверить корректность Pkgbuild и права доступа, а затем повторить сборку. В некоторых случаях помогает очистка кэша и повторная загрузка исходных файлов.
Можно ли обновить уже установленный пакет через Pkgbuild?
Да, пакет, собранный через Pkgbuild, можно обновить. Для этого нужно скачать новую версию исходников, проверить и при необходимости изменить Pkgbuild, а затем снова собрать пакет с makepkg. После сборки новый пакет устанавливается через pacman -U <имя_пакета>, что заменяет старую версию. Это позволяет поддерживать программы в актуальном состоянии без удаления других пакетов и настроек.
Можно ли использовать Pkgbuild для установки пакетов, которых нет в официальных репозиториях Manjaro?
Да, Pkgbuild позволяет собрать и установить пакеты из исходного кода, которых нет в стандартных репозиториях. Для этого нужно скачать соответствующий Pkgbuild с AUR или другого источника, проверить его содержимое, убедиться, что все зависимости доступны, и затем собрать пакет с помощью команды makepkg. После сборки готовый пакет можно установить через pacman -U. Такой подход позволяет использовать программное обеспечение, не включённое в официальные репозитории, сохраняя контроль над версией и настройками сборки.
