
Как смонтировать файл .tar.gz, обновить его (добавить новые файлы, отредактировать файлы), а затем размонтировать его так, чтобы изменения отразились в исходном сжатом файле?
Я открыт для других форматов сжатия, если не существует инструментов, позволяющих сделать то же самое для сжатых gzip-файлов tar.
Я пробовал archivemount, но он монтирует файлы .tar.gz в режиме только для чтения.
решение1
По умолчанию archivemount
работает в режиме чтения-записи, вероятно, права доступа к смонтированному файлу tar.gz не позволяют пользователю обновить его.
Добавление «-o debug» к параметрам монтирования может помочь понять, что происходит.
решение2
У меня все отлично работает на Fedora 20 1 , может у вас ошибка, или какmpromonet предложил, архив доступен только для чтения:
[root@f20 ~]# tar czf /tmp/ul137194.tar.gz -C / /etc/passwd /etc/group /etc/shells
tar: Removing leading `/' from member names
[root@f20 ~]# mkdir /tmp/ul137194
[root@f20 ~]# archivemount /tmp/ul137194.tar.gz /tmp/ul137194
[root@f20 ~]# find /tmp/ul137194
/tmp/ul137194
/tmp/ul137194/etc
/tmp/ul137194/etc/passwd
/tmp/ul137194/etc/group
/tmp/ul137194/etc/shells
[root@f20 ~]# rm /tmp/ul137194/etc/shells
rm: remove regular file ‘/tmp/ul137194/etc/shells’? y
[root@f20 ~]# echo nogroups > /tmp/ul137194/etc/group
[root@f20 ~]# umount /tmp/ul137194
[root@f20 ~]# tar xzf /tmp/ul137194.tar.gz -C /tmp/ul137194
[root@f20 ~]# find /tmp/ul137194
/tmp/ul137194
/tmp/ul137194/etc
/tmp/ul137194/etc/group
/tmp/ul137194/etc/passwd
[root@f20 ~]# cat /tmp/ul137194/etc/group
nogroups
1 архивmount-0.8.1-2.fc20.x86_64, libarchive-3.1.2-7.fc20.x86_64, fuse-2.9.3-2.fc20.x86_64