簡體   English   中英

腳本不要提取tar

[英]Script don't extract tar

我有這個腳本外殼,它提取並安裝了libpcap庫

#!/bin/sh
PATH=/usr/src
wget=/usr/bin/wget
tar=/bin/tar

echo "###############"
echo "INSTALL LIBPCAP"
echo "###############"
$tar -xvf libpcap-1.3.0.tar.gz
cd libpcap-1.3.0
./configure --prefix=/usr
make && make install

當我執行它,我有這個錯誤

tar (child): gzip: Cannot exec: No such file or directory
tar (child): Error is not recoverable: exiting now
/bin/tar: Child returned status 2
/bin/tar: Error is not recoverable: exiting now
./install.sh: 14: cd: can't cd to libpcap-1.3.0

您已將PATH更改為/ usr / src,因此當tar嘗試執行gzip時,找不到它,因為它僅在/ usr / src中查找。 您需要將gzip的位置添加到PATH(以及配置腳本將要調用的每個工具以及make的位置),或顯式調用它,而不是讓tar調用它,或(最佳選擇) ,請勿修改PATH。 如果您堅持更改PATH,請嘗試PATH=/usr/src:/usr/sbin:/usr/bin:/sbin:/binPATH=/usr/src:$PATH ,但實際上最好不要管它,將名為src的目錄放入其中確實很奇怪。

如果您想將/usr/src添加到PATH變量中,那么更好的方法是

PATH="$PATH:/usr/src"

要使您的腳本從任何目錄路徑運行,請使用一個單獨的變量,該變量保存源文件路徑的絕對路徑,例如以下腳本中使用的file_path變量。

#!/bin/sh
PATH="$PATH:/usr/src"
wget=/usr/bin/wget
tar=/bin/tar
file_path="/path/to/source-files"

echo "###############"
echo "INSTALL LIBPCAP"
echo "###############"
$tar -xvf $file_path/libpcap-1.3.0.tar.gz
cd $file_path/libpcap-1.3.0
./configure --prefix=/usr
make && make install

在處理gzip壓縮的tar時,應顯式傳遞-z選項,因此您的代碼應類似於:

$ tar -x z vf libpcap-1.3.0.tar.gz

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM