Я пользователь Fedora Linux, работаю yum upgradeежедневно. Хотя эта привычка позволяет мне запускать все новейшее программное обеспечение (одна из четырех основ Fedora является «первой», и она соответствует этому), она также подчеркивает любую несовместимость между платформой хранения ZFS и новым ядром.
yum upgrade
Как разработчику, иногда мне нужны новые функции из последней ветки ZFS. Например, ZFS 2.0.0 содержит захватывающую новую функцию, значительно улучшающую производительность синхронизации ZVOL , что очень важно для меня как пользователя KVM. Но это означает, что если я хочу использовать ветку 2.0.0, мне придется самому собрать ZFS.
Сначала я просто скомпилировал ZFS вручную из репозитория Git после каждого обновления ядра. Если бы я забыл, ZFS не распознается при следующей загрузке. К счастью, я быстро научился настраивать динамическую поддержку модулей ядра ( DKMS ) для ZFS. Однако это решение не идеально. Во-первых, он не использует мощную систему yum , которая может помочь в разрешении зависимостей и обновлении. Кроме того, с помощью yum довольно легко переключаться между вашим собственным пакетом и исходным пакетом.
В этой статье я продемонстрирую, как настроить репозиторий yum для упаковки ZFS. Решение состоит из двух шагов:
Чтобы создать пакеты RPM, вам необходимо установить набор инструментов RPM. Yum предоставляет группы для сборки инструментов:
sudo dnf group install 'C Development Tools and Libraries' 'RPM Development Tools'
После их установки вы должны установить все пакеты, необходимые для сборки ZFS из репозитория ZFS Git. Пакеты относятся к трем группам:
sudo dnf install libtool autoconf automake gettext createrepo \ libuuid-devel libblkid-devel openssl-devel libtirpc-devel \ lz4-devel libzstd-devel zlib-devel \ kernel-devel elfutils-libelf-devel \ libaio-devel libattr-devel libudev-devel \ python3-devel libffi-devel
Теперь вы готовы создавать свои собственные пакеты.
OpenZFS предоставляет отличную инфраструктуру. Чтобы его построить:
git
make rpm
$ git clone --branch=zfs-2.0.0-rc3 https://github.com/openzfs/zfs.git zfs $ cd zfs $ ./autogen.sh $ ./configure $ make rpm
В yum репо – это серверный или локальный путь, который включает файлы метаданных и RPM. Потребитель устанавливает файл конфигурации INI, и yumкоманда автоматически разрешает метаданные и загружает соответствующие пакеты.
yum
Fedora предоставляет createrepoинструмент для создания репозитория yum. Сначала создайте репо и скопируйте все файлы RPM из папки ZFS в репо. Затем запустите, createrepo --updateчтобы включить все пакеты в метаданные:
createrepo
createrepo --update
$ sudo mkdir -p /var/lib/zfs.repo $ sudo createrepo /var/lib/zfs.repo $ sudo cp *.rpm /var/lib/zfs.repo/ $ sudo createrepo --update /var/lib/zfs.repo
fСоздайте новый файл конфигурации, /etc/yum.repos.dчтобы включить путь репо:
/etc/yum.repos.d
$ echo \ "[zfs-local]\\nname=ZFS Local\\nbaseurl=file:///var/lib/zfs.repo\\nenabled=1\\ngpgcheck=0" |\ sudo tee /etc/yum.repos.d/zfs-local.repo $ sudo dnf --repo=zfs-local list available --refresh
Наконец-то вы достигли конца пути! У вас есть работающее репо yum и пакеты ZFS. Теперь вам просто нужно их установить:
$ sudo dnf install zfs $ sudo /sbin/modprobe zfs
Запустите, sudo zfs versionчтобы увидеть версию вашей пользовательской среды и инструментов ядра. Поздравляю! У вас есть ZFS для Fedora .
sudo zfs version
Продолжая использовать данный сайт вы принимаете политику конфиденциальности и cookies