У меня есть файл .sh, который является & ldquo; Самораспаковывающимся & rdquo; но удаляет папки по завершении

Мне нужно, чтобы папки оставались рядом, и я не могу найти способ помешать сценарию их удалить. Предполагается установить программное обеспечение, но оно предназначено для RedHat, и я хочу скомпилировать и запустить файлы вручную в Ubuntu. Есть ли какой-нибудь способ пройти через скрипт bash или извлечь архив из самоустановочного файла .sh? Спасибо!

Рассматриваемый пакет: http://irsa.ipac.caltech.edu/data/SPITZER/docs/dataanalysistools/tools/spice/downloadspice/ (Linux. ш)

4
задан 22 May 2014 в 22:32

1 ответ

В этом случае необходимо только сделать

tail -n +31  spice2_5_1-generic-linux.sh > spice2_5_1-generic-linux.tar

после того, как можно иметь дело с ним как нормальный файл tar. ( tar -xvf spice2_5_1-generic-linux.tar).

Так как этот tar не имеет основного каталога, который я предлагаю, чтобы Вы сделали

mkdir TempSpice   
cd TempSpice
tar -xvf ../spice2_5_1-generic-linux.tar

Некоторые примечания:

Часто самораспаковывающиеся файлы являются сценарием удара, сопровождаемым данными, только только в одном файле. В этом случае сценарий находится в первых 30 строках.

#!/bin/sh
PATH=/bin:/usr/bin
base=sut.$$
outname_tar=$base.tar
tempdir=spottmp.$$
mkdir $tempdir
echo "Unpacking..."
platform=`uname`
if [ $platform = "SunOS" ]; then
    tail +31 $0 > $outname_tar
else
    tail -n+31 $0 > $outname_tar
fi

echo "Extracting..."
(cd $tempdir; tar xvf ../$outname_tar)
  savestatus=$?
  if [ $savestatus != "0" ]; then
    echo status from tar = $savestatus
    echo ABORTING INSTALLATION
    /bin/rm -rf $tempdir
    /bin/rm -f $outname_tar
    exit $savestatus
    fi
echo "cleaning up..."
/bin/rm $outname_tar
echo "installing..."
(cd $tempdir; ./INSTALL)
/bin/rm -rf $tempdir
exit 0

Сценарий внутри является основным. Было возможно считать файл с меньше и видеть то, что это делает... и действовать похожим способом. С редактором, который уважает двоичную часть (второй) возможно изменить часть сценария также.

2
ответ дан 22 May 2014 в 22:32

Другие вопросы по тегам:

Похожие вопросы: