Использовать файл requirements.txt проектов Python в качестве входных данных для определения пакета Guix?

Это сценарий, который я использую для настройки Archlinux для виртуальных машин

Я запустил этот скрипт из archiso и работает как в qemu -, так и в установках kvm и virtualbox, изменив первичное имя диска (sda Vs vda ).

Позвольте мне разобраться с этим:

  • В качестве отказоустойчивого скажите bash выйти из сценария при возникновении ошибки (установить -e)
  • Создайте таблицу разделов с sfdisk , один раздел под IBM -Таблица разделов DOS
  • Отформатировать раздел и смонтировать в каталог /mnt/
  • обновить репозиторий pacman
  • установить базу archlinux с pacstrap в /mnt/
  • Создать fstab
  • Приготовить жрач.ш. Этот файл установит и настроит grub (legacy )в Archroot. Кроме того, я создаю файл подкачки для использования в качестве подкачки.
  • Измените Root на /mnt/ и запустите файл grub.sh.
  • Перезагрузка

Плюсы:

  • Очень просто и быстро
  • Использование sfdisk (oneline )для подготовки таблицы разделов.
  • Использование grub.sh для запуска каждой необходимой нам команды в корневом каталоге -
  • Автоматизация !
  • Легко адаптировать и изменить.

Минусы

  • Ничего необычного
  • Нет настройки языка (по умолчанию)
  • Сеть уже должна существовать
  • Нет паролей (root/пользователь)

Этот скрипт автоматизировал мои сборки. Затем я обычно запускаю ansible (управление конфигурацией )для более сложных настроек. Но что мне нужно, так это супер быстрый способ сборки archlinux без каких-либо дополнительных действий. Перезагрузите -> Войдите и исправьте все остальное ПОСЛЕ, а не раньше.

#!/usr/bin/bash
set -e

# Archlinux Installation Script for VMs
# ebal, Wed 21 Aug 2019

#Disk=sda # VirtualBox
Disk=vda # Qemu/KVM

echo ',,,*;' | sfdisk /dev/$Disk

mkdir -pv /mnt/$Disk
mkfs.ext4 -v -L rootfs /dev/${Disk}1
mount /dev/${Disk}1 /mnt/$Disk

pacman -Syy

pacstrap /mnt/$Disk base
genfstab -U /mnt/$Disk >> /mnt/$Disk/etc/fstab

# Install Grub
cat > /mnt/$Disk/root/grub.sh <<EOF
pacman -S --noconfirm grub vim
grub-install /dev/$Disk
grub-mkconfig -o /boot/grub/grub.cfg
# Add Swap Partition
dd if=/dev/zero of=/swapfile bs=2048 count=1048576
mkswap /swapfile -L swapfs
chmod 0600 /swapfile
echo "/swapfile swap swap defaults 0 0" >> /etc/fstab
EOF

chmod +x /mnt/$Disk/root/grub.sh

arch-chroot /mnt/$Disk/ /root/grub.sh

reboot

надеюсь, что вы найдете его полезным для себя.

1
24.11.2020, 10:10
1 ответ

К сожалению, в настоящее время это не поддерживается. Имена пакетов Guix, которые не обязательно соответствуют именам, используемым в PyPI, и любая версия Guix обычно предоставляет только одну или две версии каждого пакета. Формат requirements.txt также имеет ряд опций, таких как установка из произвольных репозиториев Git, которые не будут соответствовать пакету в Guix.

Это то, что потенциально можно было бы сделать в будущем для подмножества функций, указанных в файле requirements.txt.

Если вы хотите использовать Guix, вы можете создать файл guix-requirements.scm, дублирующий ваш файл requirements.txt. Возможно, что-то вроде этого:

(use-modules (guix)
             (gnu packages python)
             (gnu packages python-web))
(package
  (name "my-project-env")
  (propagated-inputs `(("python",python)
                       ("python-flask",python-flask))))

Запуск с помощью guix environment -l guix-requirements.scm.

Подробнее см. Вызов среды guix .

4
18.03.2021, 22:47

Теги

Похожие вопросы