Делаю установщик для продукта. Сам продукт распространяется в архиве, который распаковывается в /opt. Решил, что для пользователя будет удобно, если будет не архив с архивом и скриптом установки, а что-то вроде .run файла драйверов проприетарных. Нагуглил как это делается:
#!/bin/bash
sed '0,/^#EOF#$/d' $0 | tar zx; exit 0
#EOF#
How to use:
# create sfx
cat selfextract.sh data.tar.gz >example_sfx.sh
# unpack sfx
bash example_sfx.sh
Но при попытке запустить распаковку, получаю:
gzip: stdin: Unexpected end of file
tar: Child returned status 1
tar: Error is not recoverable
Вопрос. Что я делаю не так? Может ли это быть из-за того что архив размером больше 2х гигабайт? (а иногда и больше 6)
Есть мысль, что это из-за того что бинарник содержит \0 внутри и не передается нормально на вход. Но судя по комментариям на SOF, у других всё работает.
PS: В будущем вероятно это будет в deb\rpm\etc, но пока что нет ресурсов делать пакеты для разных ОС.