Как с помощью pip сделать установленные пакеты Python видимыми для rpm?

Тем временем (единственный )способ, который я вижу, не зависит от используемой файловой системы, поскольку он действует на блочном уровне.

Чего бы хотелось, так это своего рода lvmcache. :Настройте его для устройства, затем прочитайте метаданные файловой системы (find /path/to/mountpoint -perm 700 -printf ""), чтобы они были скопированы на устройство кэширования, а затем заморозьте устройство кэширования.

К сожалению, кажется, что lvmcache не имеет такой функции замораживания.

Но можно сделать что-то подобное :Можно настроить снимок. Вы должны сделать это вручную, потому что LVM поддерживает это только в группе томов. Создайте снимок в VG и просмотрите детали с помощью dmsetup lsи dmsetup tableдля задействованных устройств. dmsetupне важно, принадлежат ли вовлеченные устройства к группе томов (или вообще являются LVM-устройствами ).

Обычно вы создаете снимок и продолжаете использовать основное устройство. Предыдущее состояние основного устройства можно восстановить, вернув моментальный снимок, поскольку исходные данные записываются в моментальный снимок перед изменением на исходном устройстве. Это не то, что вы хотите. Вы хотите свести к минимуму доступ к исходному устройству. Таким образом, вы монтируете не (новое )исходное устройство, а устройство моментального снимка.

Затем вы модифицируете все сектора, содержащие метаданные, чтобы они записывались на устройство моментального снимка.Даже если вы напишите дважды (, потому что вы изменили данные, а затем изменили их обратно в исходное состояние ), чтобы сами данные вообще не изменились, сектор сохраняет часть устройства моментального снимка. Это означает, что он всегда считывается с устройства моментального снимка. В случае сбоя вам просто нужно восстановить конфигурацию dmsetup, и исходное устройство больше не будет доступно для метаданных.

Однако вам может понадобиться достаточно большой моментальный снимок с небольшим размером кластера. Но вам не нужно кэшировать все метаданные файловой системы сразу. Вы можете настроить снимок, кэшировать метаданные для дерева каталогов, скопировать оттуда все файлы, удалить снимок, создать новый и кэшировать метаданные для следующего поддерева. Вы можете увидеть (IIRC с dmsetup status), сколько пространства моментального снимка используется.

Для записи инодов можно изменить отметку времени (touch /path/to/file), особенно если исходное значение вам не нужно. Или вы (, возможно, после записи исходного значения где-то )выполните, например. chmod o=rwx /path/to/file ; chmod o= /path/to/file. Для записи всех секторов, принадлежащих записям каталога, вы можете переименовать все файлы (на любое неиспользуемое имя и обратно):

unique_suffix=4itxIIq5kyGhMVPJ
mv "$file" "${file}${unique_suffix}"
mv "${file}${unique_suffix}" "$file"

Я не уверен, что кеш страниц достаточно умен, чтобы определить отсутствие изменений, поэтому вы можете проверить, действительно ли записывается моментальный снимок.

Эти операции должны выполняться для всех файлов (возможно, только для подкаталога )с

find /path/to/mountpoint -type f -exec... + # for chmod and mv
find /path/to/mountpoint -type d -exec... + # for mv
0
06.03.2020, 18:35
1 ответ

Вы смешиваете две несвязанные системы хранения пакетов (RPM и pip ). Они не предназначены для общения, используют разные модели. Это можно сделать, но лучше иметь только одну, а не комок отдельных систем, которые в чем-то согласуются.

1
28.04.2021, 23:21

Теги

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