5

Я использую fakeroot v1.12.4 для упаковки и извлечения на RHEL-6.4. У меня есть два разных сервера, где я сжимаю файлы с помощью tar v1.23. Сжатие не удается на одном сервере с этой ошибкой:

tar: ./isolinux/etc/modprobe.d/blacklist.conf: Cannot open: Not a directory
tar: Exiting with failure status due to previous errors

Если я проверяю тип файла для этого файла (как обычный пользователь), он говорит, что это файл ASCII:

girishp@~$ file ./isolinux/etc/modprobe.d/blacklist.conf
isolinux/etc/modprobe.d/blacklist.conf: ASCII English text
girishp@~$

Но если я проверяю тип файла в среде fakeroot, он говорит, что это каталог:

+ file ./isolinux/etc/modprobe.d/blacklist.conf
./isolinux/etc/modprobe.d/blacklist.conf: directory

Команда, которую я использую для сжатия:

tar -czf /home/users/girishp/tarfiles/mytar.tgz .

Использование * вместо .

tar -czf /home/users/girishp/tarfiles/mytar.tgz *

Я сравнил переменные окружения обеих машин, различий в окружении нет. Если я использую sudo вместо fakeroot , он работает нормально. strace из tar говорит, что пытается открыть файл с опцией O_DIRECTORY .

open("./isolinux/etc/modprobe.d/blacklist.conf", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = -1 ENOTDIR (Not a directory)

Я попытался сбросить некоторые переменные окружения, используемые fakeroot:

unset LD_LIBRARY_PATH
unset LD_PRELOAD

Tar хорошо с этим работает.

Почему этот файл отображается как каталог в среде fakeroot?

1 ответ1

0

Обновлен fakeroot до v1.20.2-1, проблема с обновленным fakeroot отсутствует.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .