Обновление tar в CentOS 5

Иногда требуется обновлять tar, например, при возникновении вот таких ошибок при импорте пользователей ISPManager из FreeBSD в CentOS:

Sep 4 16:38:29 ----Restoring of user 'aebu' failed: Can't unpack files using command /bin/cat /tmp/pbkp_18702/aebu/getuser.tar.gz | /bin/gzip -d | /bin/tar -x -p -f- -C /tmp/pbkp_18702/aebu/ -T /tmp/pbkp_18702/aebu/PBKP_TEMP_LISTING. Error: /bin/tar: Ignoring unknown extended header keyword `SCHILY.dev'

И тому подобное.
Проблема в отсутствии совместимости tar для FreeBSD (bsdtar) и tar версии 1.15, который по умолчанию во всех дистрибутивах CentOS 5.

1. Получаем новую версию tar, на момент написания статьи это 1.26. Сведения о последней версии tar можно посмотреть здесь
# wget http://ftp.gnu.org/gnu/tar/tar-1.26.tar.gz
# tar xfz tar-1.26.tar.gz
2. Компилируем:
# yum install gcc make -y
# cd tar-1.*
# ./configure FORCE_UNSAFE_CONFIGURE=1
# make
# make install
3. Удаляем старую версию tar:
# yum remove tar
4. Добавляем линк на новую версию tar
# ln -s /usr/local/bin/tar /bin/tar
5 Проверяем:
# tar —version
tar (GNU tar) 1.26

Все, tar обновлен.

И, кстати, bsdtar на CentOS тоже работает теперь:
# whereis bsdtar
bsdtar: /usr/local/bin/bsdtar
# bsdtar —version
bsdtar 2.8.5 — libarchive 2.8.5

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *