LINUX.ORG.RU

Вышел fuse-zip 0.2.0: первая файловая система для FUSE с поддержкой модификации ZIP-архивов

 , , ,


0

0

Вышла fuse-zip 0.2.0. Релиз хоть и минорный, но революционный по своей сути.

fuse-zip позволяет любой программе работать с содержимым zip-архива как с обычным каталогом, читать/редактировать/добавлять/удалять файлы безо всяких дополнительных модификаций.

fuse-zip не имеет аналогов, так как из всех существующих файловых систем изменять содержимое архива может только виртуальная файловая система mc, требующая для своего использования специальной доработки в программе.

По производительности fuse-zip превосходит все известные аналоги, будь то KIO, Gnome GVFS, mc vfs, unpackfs, avfs или файловая система, построенная на основе fuse-j, на больших архивах и не уступает им на малых объёмах данных.

Тесты производительности VFS: http://code.google.com/p/fuse-zip/wik...

>>> Скачать

Ответ на: комментарий от anonymous

>А как прикрутить к фоксу?

делаете сжатый mountpoint закидываете туда всю кучу мусора на нужном месте ставите symlinks на перемещенные папки в 2 раза жмет на лету с дефолтными настройками и без тормозов

Sylvia ★★★★★
()
Ответ на: комментарий от GFORGX

>> А после этого оно в сегфолт ушло?

> terminate called after throwing an instance of 'std::exception*'

Вот, так уже лучше. Буду смотреть.

gaa ★★
() автор топика
Ответ на: комментарий от GFORGX

> Кстати, а нельзя сделать, чтобы данные записывались после каждого изменения?

Получим такое же г, как и mc vfs.

gaa ★★
() автор топика

допилите лучше hurd *мечтательно*, там трасляторы есть

fdm
()
Ответ на: комментарий от gaa

> 0.9.8

Ух ты, так оно еще развивается? А я уже несколько лет как вспоминаю о нем с тоской, с тех пор, как 0.9.3 перестала собираться (на ядерной обвязке вокруг coda, по-моему). Автор ушел в разработку fuse, а avfs так и осталась мертвым проектом..

Сейчас попробую, может что улучшили с тех времен.

anonymous
()
Ответ на: комментарий от gaa

> новые/модифицированные файлы до отмонтирования сидят в оперативке.

Т. е. если работешь с архивом, питание неожиданно пропадает, а УПСа нет, то все изменения отправляются в женский половой орган?

INFOMAN ★★★★★
()
Ответ на: комментарий от INFOMAN

>Т. е. если работешь с архивом, питание неожиданно пропадает, а УПСа нет, то все изменения отправляются в женский половой орган?

вы что-то имеете против женского полового органа? О.о

anonymous
()
Ответ на: комментарий от gaa

>> А после этого оно в сегфолт ушло?

> terminate called after throwing an instance of 'std::exception*'

Кстати, пришли ещё unzip -l $archive (и unzip -t на всякий случай)

gaa ★★
() автор топика
Ответ на: комментарий от Sylvia

> а на sync ?

Надо попробовать. В любом случае спасибо за идею.

gaa ★★
() автор топика
Ответ на: комментарий от INFOMAN

>> новые/модифицированные файлы до отмонтирования сидят в оперативке.

> Т. е. если работешь с архивом, питание неожиданно пропадает, а УПСа нет, то все изменения отправляются в женский половой орган?

Да.

gaa ★★
() автор топика

ЗдОрово, хотя формат zip почти никогда не использую.

Demon37 ★★★★
()

А копировать файлы в неё нельзя чтоли? Создать могу, например текстовый, а если копирую, то говорит мол мало места =/ А так задумка очень хороша!

anonymous
()
Ответ на: комментарий от gaa

>На распаковке fuse-zip быстрее чем mc vfs в 700 раз, чем kio-zip -- в 4,7 раза, чем gvfs -- в 50 раз

Теперь сноси свои кеды, запусти гном и получи gvfs быстрее fuse-zip в 5 раз.

vit122
()
Ответ на: комментарий от iZEN

> Русские буквы поддерживаются?

Да.

anonymous
()

Тоже что ли накатать прогу. Вот только не ясно, как GPL сосчитается с вопросами анонимности ::))

anonymous
()
Ответ на: комментарий от thevery

>о! лет 8 назад пользовался подобной программой в виндах. не прошло и 10 лет, как подобная возможность появилась в линуксе)))

Десять лет назад оно в линуксе было посредством патча на ext2, который добавлял компрессию. У меня /var на таком разделе лежал и я был доволен. К сожалению, при переходе на ветку 2.2 (или всё-таки 2.4?) это поломали и больше не починили.

alt-x ★★★★★
()
Ответ на: комментарий от alt0v14

Багрепорты на каменты принимаются? =)

>// We cannot use fuse_main to initialize FUSE because libzip are have problems with thread safety. // return fuse_main(argc - 1, argv + 1, &fusezip_oper, zip_file);

вместо libzip have как-то не звучит. Или has, или, если хочешь подчеркнуть, libzip does have.

fukazzz
()

Очень удобно если положить это в .profile:

function fz()
{
	FILE="$*"
	dir="${FILE}.d"
	test -d "$dir" || mkdir "$dir"
	fuse-zip "$FILE" "$dir"
	cd "$dir"
}

function fuz()
{
	FILE="$*"
	dir="${FILE}.d"
	fusermount -u "$dir"
	rmdir "$dir"
}

McGray ★★
()
Ответ на: комментарий от andreyu

>>> А Far считается стороенней прогой? А TotalCommander?

>> гдеж вас таких делают то?..

> Каких таких?

Которые неудосужились прочитать внимательно про сабж. Либо не в состоянии понять отличий.

При использовании fuse-zip любая, подчеркиваю, _любая_ программа может юзать файлы внутри zip архива так, как будто они лежат незапакованными. Т.е. создавать, удалять, править. Даже запущенный под вайном нотепад, если вам так понятнее.

P.S. Автору зачёт автоматом.

kvit
()

Полезная вещь.

А что будет если ему подсунуть битый zip? Например следующие 3 варианта: либо без головы, либо без хвоста, либо с мусором в середине.

acheron ★★★★
()
Ответ на: комментарий от ccoder

>> Добавь - в линаксе, в винде зипы открываются как папки начиная с ХР.

>А начиная с какой версии винды они монтируются в файловую систему?

Начиная с 9x, ЕМНИП называлась ZifFolders. В файловой системе для каждого zip создавался виртуальный каталог ZIF через которой можно было относительно свободно читать и писать в архив, через любую программу.

anonymous
()
Ответ на: комментарий от anonymous

>в винде зипы открываются как папки начиная с ХР.

Да, только содержимое копируется в TEMP.

floppy_formator
()
Ответ на: комментарий от anonymous

> гдеж вас таких делают то?..

Где, где... Вестимо дело -- в винде!

annoynimous ★★★★★
()
Ответ на: комментарий от anonymous

> В файловой системе для каждого zip создавался виртуальный каталог ZIF через которой можно было относительно свободно читать и писать в архив, через любую программу.

4.2 Во первых только через проводник а во-вторых при запуске из такой "папки" программы распаковывается только экзешник который не увидев длл-ек жутко матерится

DNA_Seq ★★☆☆☆
()
Ответ на: комментарий от alt-x

> Десять лет назад оно в линуксе было посредством патча на ext2, который добавлял компрессию. … К сожалению, при переходе на ветку 2.2 (или всё-таки 2.4?) это поломали и больше не починили.

при переходе на 2.2 поломали. тоже пользовался. на винте 1.2 гига это было остро необходимо.

dmiceman ★★★★★
()
Ответ на: комментарий от DNA_Seq

>> В файловой системе для каждого zip создавался виртуальный каталог ZIF через которой можно было относительно свободно читать и писать в архив, через любую программу.

>4.2 Во первых только через проводник а во-вторых при запуске из такой "папки" программы распаковывается только экзешник который не увидев длл-ек жутко матерится

Сам ты 4.2 ты ее в глаза то хоть видел, пользовался? Он грузил свой драйвер vxd и любая программа свободно имели доступ к архиву через виртуальный каталог с раширением ZIF. Более того он мог из системы вообще скрывать файлы zip, оставляя только этот виртуальный каталог. И многие дистрибутивы я запускал на установку прямо через этот каталог, не распаковывая предварительно. Если надо могу поковыряться в старых дисках и поискать её.

Работала она ЕМНИП только под 9х, делала ее компания mijenix.

PS Кажись это вроде оно http://www.aidminstrator.narod.ru/arxiv/28.rar, щас лень устанавливать под qemu windows 95 и проверять.

anonymous
()

А на попытку монтирования большого архива он вот что говорит:

anonymous@lor:~$ ls -al /media/second/arch.zip -rwxrwxrwx 1 root root 26163790512 2008-06-11 22:43 /media/second/arch.zip anonymous@lor:~$ fuse-zip /media/second/arch.zip /media/fusedrive fuse-zip: cannot open zip archive /media/second/arch.zip: Not a zip archive

anonymous
()
Ответ на: комментарий от iron

> Если бы каждый ЛОРовецев по строчке кода...

Даешь редактор кода вместо капчи!

С каждого анонимуса по строчке кода!!

goletsa
()
Ответ на: комментарий от Sherak

>> И ещё: оказалось, что ни одна из VFS, привязанных к DE, не умеет писать в архивы.

> Конкверор через kio умеет.

У меня при записи в zip://archive.zip ругается "не могу писать в tar". Это как-то по-другому делается?

gaa ★★
() автор топика
Ответ на: комментарий от McGray

function fuz()
{
FILE="$*"
dir="${FILE}.d"
fusermount -u "$dir"
rmdir "$dir"
}

Вот тут есть проблема -- fusermount -u не дожидается пока файловая система окончательно отмонтируется. Так что надо специально ждать завершения процесса fuse-zip. Буду пинать разработчиков fuse чтобы сделали синхронный unmount.

gaa ★★
() автор топика
Ответ на: комментарий от acheron

> А что будет если ему подсунуть битый zip? Например следующие 3 варианта: либо без головы, либо без хвоста, либо с мусором в середине.

Ичсто теоретически, должно ругнуться ещё при открытии. Попробуй и, если свалится, то открывай багрепорт.

gaa ★★
() автор топика
Ответ на: комментарий от anonymous

> А на попытку монтирования большого архива он вот что говорит:

26 гигабайт? о_O Вероятно это libzip переклинило

gaa ★★
() автор топика
Ответ на: комментарий от INFOMAN

> > новые/модифицированные файлы до отмонтирования сидят в оперативке.

> Т. е. если работешь с архивом, питание неожиданно пропадает, а УПСа нет, то все изменения отправляются в женский половой орган?

Так это с любой fs :) Нельзя без UPSа.

guitarist ★★
()
Ответ на: комментарий от GFORGX

> В комментах к issue оставил :)

Ну вот теперь понятно, откуда уши у проблемы растут. Буду проверять путь с ошибками.

gaa ★★
() автор топика
Ответ на: комментарий от gaa

>У меня при записи в zip://archive.zip ругается "не могу писать в tar". Это как-то по-другому делается?

В курсорном меню добавляемых файлов Упаковать - Добавить к / Добавить в архив

У меня работает.

Кстати, вот начал припоминать свою долгую компьютерную жизнь и никак не мог вспомнить когда бы мне реально понадобилась подобная фича, создавать, распаковывать - да, а вот чтобы добавлять ну ни разу почемуто не приходилось.

Кстати, насчёт хождения по архивам кем угодно всё ясно, а умеет ли какой-нибуть софт прозрачно монтировать/размонтировать архивы через твой fuse-zip? Потому как без этого толку от него ноль.

Sherak ★☆
()
Ответ на: комментарий от gaa

> 26 гигабайт? о_O Вероятно это libzip переклинило

Да. А с этим можно что-то сделать? Вполне вероятно у кого-то могут быть такие архивы данных. Этот я чисто для теста 7z создал :)

anonymous
()
Ответ на: комментарий от anonymous

А разве стандартный zip вообще может быть больше двух (четырёх?) гигов?

INFOMAN ★★★★★
()
Ответ на: комментарий от Sherak

> В курсорном меню добавляемых файлов Упаковать - Добавить к / Добавить в архив

Так там тот же zip, наверно, и вызывается. Это неспортивно :)

Меня вот интересует, там зайдя в архив как в виртуальную ФС, можно его видоизменять?

> Кстати, вот начал припоминать свою долгую компьютерную жизнь и никак не мог вспомнить когда бы мне реально понадобилась подобная фича, создавать, распаковывать - да, а вот чтобы добавлять ну ни разу почемуто не приходилось.

Могу набросать пару use case-ов: удалить один файл из архива, который туда попал случайно; накидать файлов из нескольких каталогов сразу в архив, минуя промежуточный каталог, который потом будет сжат.

> Кстати, насчёт хождения по архивам кем угодно всё ясно, а умеет ли какой-нибуть софт прозрачно монтировать/размонтировать архивы через твой fuse-zip? Потому как без этого толку от него ноль.

Если его нет, то его надо написать :)

gaa ★★
() автор топика
Ответ на: комментарий от anonymous

>> 26 гигабайт? о_O Вероятно это libzip переклинило

> Да. А с этим можно что-то сделать? Вполне вероятно у кого-то могут быть такие архивы данных. Этот я чисто для теста 7z создал :)

Буду смотреть, что можно сделать.

gaa ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.