If you want to add local packages to a repository (i.e., packages that are stored on your local file system), the corresponding host package folder must be bound explicitly to a folder inside the chroot container with -bind since otherwise the package files cannot be accessed from inside the container. To make the new alias know to the system, execute for example $ source ~/.zshrc To make the execution of repman inside the chroot container more convenient, it might make sense to create a shell alias like below by adding that row to your ~/.bashrc or ~/.zshrc etc.: alias repman-armv7h="sudo arm-nspawn /root sudo -u alarm repman" Building them on ARM hardware worked without problems. While - at least as far as I tried that out - most packages could be built with the described approach, for some packages that does not work - I observed errors thrown by qemu in some cases. Since repman builds in a chroot per default and a chroot in a chroot is not working, the option -nochroot / -n has to be set. Now you can, for example, add an ARM package from AUR to your custom repository by executing # arm-nspawn /root sudo -u alarm repman add -r -n -a >PACKAGE> (Optional) Enable distributed builds by installing distcc in the chroot container and configure /root/etc/nf as described in this documentation. Install repman and remove the cloned folder afterwards: ~]# pacman -Syu ~]# cd alarm]# sudo -u alarm git clone alarm]# cd repman-git]# sudo -u alarm makepkg repman-git]# cd alarm]# rm -rd repman-gitĬreate repman configuration and exit chroot: alarm]# sudo -u alarm mkdir -p alarm]# sudo -u alarm nano alarm]# exitĬonfigure ssh: Create the keys and the ssh config as required to be able to access your repositories via rsync. Remove the comment sign from the row #ParallelDownloads = 5. (Optional) Enable parallel package downloads: ~]# nano /etc/nf Make user alarm a sudoer: ~]# echo "%wheel ALL=(ALL) ALL" > /etc/sudoers.d/10-alarm Install armutils: $ yay -Syu armutils-gitĬreate an Aarch64 chroot container in the folder and install the base-devel group: # mkarmchroot -u /root base-devel A row starting with # indicates a command that must be executed as root, if a row starts with $ the command is executed as normal user. The how-to below describes the detailed steps of that approach for an Aarch64 chroot container, but it also works for other ARM architectures, just replace the ARM image in the mkarmchroot command accordingly. The idea is to create an ARM chroot container on an x86_64 host using armutils, install repman in that container and use it to manage ARM packages in a custom repository. armutils provides scripts to create chroot containers for ARM architectures on x86_64 hosts and to utilize them.It is available for multiple architectures repman is a tool to manage custom Arch Linux repositories. The approach is based on the combination of two tools: In this blog post, I explain how this works. However, by combining some tools it’s also possible to manage ARM packages from a x86_64 system, even distributed builds via distcc are supported. One possibility to do so is installing Arch Linux ARM on an ARM device and use it for the management tasks. Recently, I started supporting ARM architectures and thus needed a way to manage (i.e., add/build, update, remove) these packages for ARM architectures as well. I have some custom repositories for Arch Linux packages that I use for packages from AUR and other packages that I created.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |