Manjaro Difference between revisions of "Buildiso with AUR packages: Using buildpkg/ru"

Difference between revisions of "Buildiso with AUR packages: Using buildpkg/ru"

From Manjaro
(Created page with "==Сборка с помощью buildpkg==")
 
(Created page with "NB: '''${profile_dir}''' - это не каталог '''iso-profiles''', а конкретный подкаталог для сборки, например '''iso-profiles/ma...")
Tags: Mobile web edit Mobile edit
 
(34 intermediate revisions by 2 users not shown)
Line 47: Line 47:
==Сборка с помощью buildpkg==
==Сборка с помощью buildpkg==


The '''buildpkg''' has some options you need to familiarize yourself with.
В '''buildpkg''' есть несколько опций, с которыми вам необходимо ознакомиться.


{{File|file=buildpkg -h|content=<pre>
{{File|file=buildpkg -h|content=<pre>
Usage: buildpkg [options]
Использование: buildpkg [options]
   -p <pkg>          Build list or pkg [default: default]
   -p <pkg>          Список или пакет [default: default]
   -a <arch>          Arch [default: x86_64]
   -a <arch>          Азхитектура [default: x86_64]
   -b <branch>        Branch [default: unstable]
   -b <branch>        Ветка [default: unstable]
   -r <dir>          Chroots directory
   -r <dir>          Каталог chroot
                       [default: /var/cache/manjaro-tools]
                       [default: /var/cache/manjaro-tools]
   -i <pkgs>          Install packages into the working copy of the chroot
   -i <pkgs>          Установить пакеты в рабочую копию chroot
   -c                Recreate chroot
   -c                Пересоздать chroot
   -w                Clean up cache and sources
   -w                Очистить кэш и исходиники
   -n                Install and run namcap check
   -n                Установить и запустить проверку namcap
   -s                Sign packages
   -s                Подписать пакеты
   -u                Udev base-devel group (no systemd)
   -u                Группа Udev base-devel (без systemd)
   -q                Query settings and pretend build
   -q                Настройки запросов и предварительная сборка
   -h                This help
   -h                Эта помощь
</pre>}}
</pre>}}


Next thing to do is build the package. Please note that you must be located one level above your actual PKGBUILD. Understand this as the <code>-p</code> argument is '''the name of the folder''' holding the PKGBUILD instructionset.  
Следующее, что нужно сделать - это создать пакет. Пожалуйста, обратите внимание, что Вы должны находиться на один уровень выше Вашего фактического PKGBUILD. Поймите это, поскольку аргумент <code>-p</code> - это "название каталога", содержащего набор инструкций PKGBUILD.  


{{UserCmd|command=buildpkg -p kickchaw}}
{{UserCmd|command=buildpkg -p kickchaw}}


For more examples how to use '''buildpkg''', look [https://wiki.manjaro.org/index.php?title=Manjaro-tools#buildpkg here].
Дополнительные примеры использования '''buildpkg''' смотрите [[Manjaro-tools/ru#buildpkg|здесь]].


The buildpkg script creates a closed environment for building the package. This is done, so not to pollute your system with build artifacts.
Скрипт buildpkg создает закрытую среду для сборки пакета. Это делается для того, чтобы не засорять Вашу систему артефактами сборки.


==Copy package files to online repository==
==Копирование файлов пакета в онлайн-репозиторий==


The resulting package is saved in the location defined in your manjaro-tools.conf on your system (default is the cache folder)
Полученный пакет сохраняется в месте, определенном в manjaro-tools.conf в вашей системе (по умолчанию это каталог cache).


{{UserCmd|command=ls /var/cache/manjaro-tools/pkg/stable/x86_64}}
{{UserCmd|command=ls /var/cache/manjaro-tools/pkg/stable/x86_64}}


You should see compressed package files. The file name should end with <code>.pkg.tar.zst</code>.
Вы должны увидеть сжатые файлы пакета. Имя файла должно заканчиваться на <code>.pkg.tar.zst</code>.


Copy or move your package files to your online repository:
Скопируйте или переместите файлы пакетов в онлайн-репозиторий:


{{UserCmd|command=mv /var/cache/manjaro-tools/pkg/stable/x86_64 ~/online-repo}}
{{UserCmd|command=mv /var/cache/manjaro-tools/pkg/stable/x86_64 ~/online-repo}}


==Build a .db file==
==Создание файла .db==


To keep track of available packages the ''pacman'' package manager uses database files which is downloaded and kept on your computer. You need to create such a database file for your repo. It is crucial that your database filename is the same as your repo name. If your repo is named '''online-repo''' then your database name must be '''online-repo.db.tar.gz'''.
Для отслеживания доступных пакетов менеджер пакетов ''pacman'' использует файлы базы данных, которые загружаются и хранятся на вашем компьютере. Вам необходимо создать такой файл базы данных для Вашего репозитория. Очень важно, чтобы имя файла базы данных совпадало с именем вашего репозитория. Если ваше хранилище называется '''online-repo''', то имя базы данных должно быть '''online-repo.db.tar.gz'''.


Use the command <code>repo-add</code> to build a database file inside your designated repo folder
Используйте команду <code>repo-add</code> для создания файла базы данных в указанном вами каталоге репозитория


{{UserCmd|command=cd ~/online-repo/x86_64}}
{{UserCmd|command=cd ~/online-repo/x86_64}}
Line 102: Line 102:
</pre>}}
</pre>}}


Every time you change the content of your online repository, the database must be rebuild! Otherwise, ''buildiso'' will complain later about missing packages in your online repository.
Каждый раз, когда вы изменяете содержимое вашего онлайн-репозитория, база данных должна быть пересоздана! В противном случае ''buildiso'' впоследствии будет жаловаться на отсутствие пакетов в вашем онлайн-репозитории.


Two of the files are symlinks which may or may not work on your chosen host so they can be left out.
Два из этих файлов являются символическими ссылками, которые могут работать или не работать на выбранном вами хосте, поэтому их можно не указывать.


==Upload online-repo to Host Server==
==Загрузка онлайн-репозитория на хост-сервер==


Now you need to upload online-repo to your Host Server. Upload everything from online-repo to your Host Server. Your web address as to match the name of the directory folder you created. This is what your web address should look like after upload online-repo to your Host Server.
Теперь вам необходимо загрузить online-repo на Ваш хост-сервер. Загрузите все из online-repo на ваш хост-сервер. Ваш веб-адрес должен соответствовать названию созданного Вами каталога. Вот как должен выглядеть ваш веб-адрес после загрузки online-repo на ваш хост-сервер.


  <nowiki>http://www.myserver.com/repository/online-repo/x86_64/</nowiki>
  <nowiki>http://www.myserver.com/repository/online-repo/x86_64/</nowiki>


==Add online-repo to your iso-profile==
==Добавление online-репо в ваш iso-профиль==


Create a file
Создайте файл
{{File|file=${profile_dir}/user-repos.conf|content=<pre>
{{File|file=${profile_dir}/user-repos.conf|content=<pre>
[online-repo]
[online-repo]
Line 120: Line 120:
Server = <nowiki>http://www.myserver.com/repository/online-repo/$repo/$arch</nowiki></pre>}}
Server = <nowiki>http://www.myserver.com/repository/online-repo/$repo/$arch</nowiki></pre>}}


Custom online repositories will be added to the resulting '''pacman.conf'''. This means AUR packages cannot be installed unless you are using webserver to provide <code>[online-repo]</code> as shown this article).
Пользовательские онлайн-репозитории будут добавлены в результирующий файл '''pacman.conf'''. Это означает, что пакеты AUR не могут быть установлены, если Вы не используете веб-сервер для предоставления <code>[online-repo]</code>, как показано в этой статье).


==Add package names to ISO profile==
NB: '''${profile_dir}''' - это не каталог '''iso-profiles''', а конкретный подкаталог для сборки, например '''iso-profiles/manjaro/kde'''. Поместите туда свой файл '''user-repos.conf''', чтобы он был найден в процессе сборки.


Now you add <code>kickshaw</code> to your package list for your ISO profile. This means your '''Packages-Desktop''' file should look something like this:
==Добавление названий пакетов в профиль ISO==
 
Теперь вы добавляете <code>kickshaw</code> в список пакетов для вашего профиля ISO. Это означает, что файл '''Packages-Desktop''' должен выглядеть примерно так:


{{File|file=~/iso-profiles/manjaro/xfce/Packages-Desktop|content=<pre>
{{File|file=~/iso-profiles/manjaro/xfce/Packages-Desktop|content=<pre>
Line 141: Line 143:
kickshaw</pre>}}
kickshaw</pre>}}


==Cleaning build environment==
==Очистка среды сборки==


For removing your build environment from your hard drive, execute:
Для удаления среды сборки с жесткого диска выполните команду:


{{UserCmd|command=sudo rm -r /var/lib/manjaro-tools/buildpkg}}
{{UserCmd|command=sudo rm -r /var/lib/manjaro-tools/buildpkg}}


==NOTE==
==ПРИМЕЧАНИЕ==


Now, you can continue to [https://wiki.manjaro.org/index.php?title=Build_Manjaro_ISOs_with_buildiso#manjaro-tools.conf adjust your manjaro-tools.conf] or [https://wiki.manjaro.org/index.php?title=Build_Manjaro_ISOs_with_buildiso#Build_your_ISO build your ISO].
Теперь вы можете продолжить [[Build_Manjaro_ISOs_with_buildiso/ru#manjaro-tools.conf|корректировать manjaro-tools.conf]] или [[Build_Manjaro_ISOs_with_buildiso/ru#Создание_собственного_ISO|собирать ISO]].


Creating an online repo requires you to keep the repo up-to-date when changes are made upstream.
Создание онлайн-репозитория требует, чтобы вы поддерживали репозиторий в актуальном состоянии при внесении в него изменений.
[[Category:Contents Page{{#translation:}}]]
[[Category:Contents Page{{#translation:}}]]
[[Category:ISO{{#translation:}}]]
[[Category:ISO{{#translation:}}]]
[[Category:Development{{#translation:}}]]
[[Category:Development{{#translation:}}]]

Latest revision as of 06:47, 13 May 2024

Other languages:
English • ‎русский

Это руководство посвящено созданию собственного онлайн-репозитория и сборке пользовательского пакета (набора) с помощью buildpkg. Позже вы сможете установить эти пакеты в ваш настроенный Manjaro ISO с помощью buildiso.

Прежде чем приступить к этому руководству - убедитесь что Вы выполнили предварительные шаги в Сборка Manjaro ISO с помощью buildiso.

Этот же профиль XFCE ISO будет использоваться в качестве примера на этой странице Wiki.

Инструменты для установки

Синхронизируйте вашу систему с последними пакетами и убедитесь что у вас установлены следующие пакеты.

  • git
  • manjaro-tools-{base|base-git}
  • manjaro-tools-{pkg|pkg-git}

Важно, чтобы ваши пакеты инструментов соответствовали друг другу - не смешивайте пакеты по умолчанию и git.

Создание каталогов

Первое, что вы должны сделать - это создать каталог для вашего онлайн-репозитория. Онлайн-репозиторий называется online-repo в этом руководстве и находится в Вашем домашнем каталоге. Однако, Вы можете выбрать название по своему вкусу. Это поможет сохранить порядок. Ваше хранилище состоит только из этого каталога:

user $ mkdir ~/online-repo/x86_64 COPY TO CLIPBOARD


Это онлайн хранилище создается в Вашем домашнем каталоге, но Вы можете создать его в любом удобном для Вас месте.

Создание дерева пользовательских пакетов

Создайте каталог для пакетов, которые вы хотите собрать. Название каталога произвольно - вы можете назвать его так, как считаете нужным.

user $ mkdir ~/pkgbuild COPY TO CLIPBOARD


Клонируйте соответствующий пакет(-ы) из AUR или с Github. Позже Вы могли бы создать их сами! Вы можете выбрать любой пакет для сборки, но в качестве примера мы создаем пакет kickshaw. Kickshaw - это современный редактор меню, в частности, для openbox. Сначала Вы добавляете его в свой репозиторий pkgbuild. Сделайте это с помощью git

user $ cd ~/pkgbuild COPY TO CLIPBOARD


Клонирование примера пакета из AUR

user $ git clone https://aur.archlinux.org/kickshaw COPY TO CLIPBOARD


Теперь у вас есть каталог с файлом PKGBUILD в вашем репозитории pkgbuild.

user $ ls -R ~/pkgbuild COPY TO CLIPBOARD


Лучше всего всегда знакомиться с содержимым пакета, чтобы убедиться, что все соответствует ожиданиям.

Сборка с помощью buildpkg

В buildpkg есть несколько опций, с которыми вам необходимо ознакомиться.

buildpkg -h
Использование: buildpkg [options]
   -p <pkg>           Список или пакет [default: default]
   -a <arch>          Азхитектура [default: x86_64]
   -b <branch>        Ветка [default: unstable]
   -r <dir>           Каталог chroot
                      [default: /var/cache/manjaro-tools]
   -i <pkgs>          Установить пакеты в рабочую копию chroot
   -c                 Пересоздать chroot
   -w                 Очистить кэш и исходиники
   -n                 Установить и запустить проверку namcap
   -s                 Подписать пакеты
   -u                 Группа Udev base-devel (без systemd)
   -q                 Настройки запросов и предварительная сборка
   -h                 Эта помощь

Следующее, что нужно сделать - это создать пакет. Пожалуйста, обратите внимание, что Вы должны находиться на один уровень выше Вашего фактического PKGBUILD. Поймите это, поскольку аргумент -p - это "название каталога", содержащего набор инструкций PKGBUILD.

user $ buildpkg -p kickchaw COPY TO CLIPBOARD


Дополнительные примеры использования buildpkg смотрите здесь.

Скрипт buildpkg создает закрытую среду для сборки пакета. Это делается для того, чтобы не засорять Вашу систему артефактами сборки.

Копирование файлов пакета в онлайн-репозиторий

Полученный пакет сохраняется в месте, определенном в manjaro-tools.conf в вашей системе (по умолчанию это каталог cache).

user $ ls /var/cache/manjaro-tools/pkg/stable/x86_64 COPY TO CLIPBOARD


Вы должны увидеть сжатые файлы пакета. Имя файла должно заканчиваться на .pkg.tar.zst.

Скопируйте или переместите файлы пакетов в онлайн-репозиторий:

user $ mv /var/cache/manjaro-tools/pkg/stable/x86_64 ~/online-repo COPY TO CLIPBOARD


Создание файла .db

Для отслеживания доступных пакетов менеджер пакетов pacman использует файлы базы данных, которые загружаются и хранятся на вашем компьютере. Вам необходимо создать такой файл базы данных для Вашего репозитория. Очень важно, чтобы имя файла базы данных совпадало с именем вашего репозитория. Если ваше хранилище называется online-repo, то имя базы данных должно быть online-repo.db.tar.gz.

Используйте команду repo-add для создания файла базы данных в указанном вами каталоге репозитория

user $ cd ~/online-repo/x86_64 COPY TO CLIPBOARD


user $ repo-add online-repo.db.tar.gz *.pkg.tar.* COPY TO CLIPBOARD


~/online-repo/x86_64
kickshaw-0.5-2-x86_64.pkg.tar.zst
online-repo.db
online-repo.db.tar.gz
online-repo.files
online-repo.files.tar.gz

Каждый раз, когда вы изменяете содержимое вашего онлайн-репозитория, база данных должна быть пересоздана! В противном случае buildiso впоследствии будет жаловаться на отсутствие пакетов в вашем онлайн-репозитории.

Два из этих файлов являются символическими ссылками, которые могут работать или не работать на выбранном вами хосте, поэтому их можно не указывать.

Загрузка онлайн-репозитория на хост-сервер

Теперь вам необходимо загрузить online-repo на Ваш хост-сервер. Загрузите все из online-repo на ваш хост-сервер. Ваш веб-адрес должен соответствовать названию созданного Вами каталога. Вот как должен выглядеть ваш веб-адрес после загрузки online-repo на ваш хост-сервер.

http://www.myserver.com/repository/online-repo/x86_64/

Добавление online-репо в ваш iso-профиль

Создайте файл

${profile_dir}/user-repos.conf
[online-repo]
SigLevel = Never
Server = http://www.myserver.com/repository/online-repo/$repo/$arch

Пользовательские онлайн-репозитории будут добавлены в результирующий файл pacman.conf. Это означает, что пакеты AUR не могут быть установлены, если Вы не используете веб-сервер для предоставления [online-repo], как показано в этой статье).

NB: ${profile_dir} - это не каталог iso-profiles, а конкретный подкаталог для сборки, например iso-profiles/manjaro/kde. Поместите туда свой файл user-repos.conf, чтобы он был найден в процессе сборки.

Добавление названий пакетов в профиль ISO

Теперь вы добавляете kickshaw в список пакетов для вашего профиля ISO. Это означает, что файл Packages-Desktop должен выглядеть примерно так:

~/iso-profiles/manjaro/xfce/Packages-Desktop
ffmpegthumbnailer
gconf # fix qt-theme
gnome-keyring # fix wlan segfault
gufw # firewall
accountsservice
lightdm-gtk-greeter
lightdm-gtk-greeter-settings
light-locker
manjaro-settings-manager
menulibre

## AUR packages
kickshaw

Очистка среды сборки

Для удаления среды сборки с жесткого диска выполните команду:

user $ sudo rm -r /var/lib/manjaro-tools/buildpkg COPY TO CLIPBOARD


ПРИМЕЧАНИЕ

Теперь вы можете продолжить корректировать manjaro-tools.conf или собирать ISO.

Создание онлайн-репозитория требует, чтобы вы поддерживали репозиторий в актуальном состоянии при внесении в него изменений.

Cookies help us deliver our services. By using our services, you agree to our use of cookies.