- 代碼: 選擇全部
make[2]: Entering directory `/home/doc/srilm/misc/src'
/home/doc/srilm/bin/decipher-install 0444 cfuncproto.h /home/doc/srilm/include
make[2]: execvp: /home/doc/srilm/bin/decipher-install: Permission denied
這個段落是makefile時出現的錯誤
可不可以請問他的意思是什麼呢?
感覺上它是告訴我/home/doc/srilm/bin/decipher-install是不可以執行的...
但是
- 代碼: 選擇全部
#!/bin/csh -f
#
# File: decipher-install
# Author: Tom Kuhn (original by Victor Abrash)
# Date: Fri Aug 26 12:41:03 1994
#
# Description:
# This script installs files for submodules of the DECIPHER (TM) system,
# when using the make release-* targets.
#
# It takes a variable number of arguments with this convention:
#
# decipher-install <mode> <file1> ... <fileN> <directory>
#
# Copyright (c) 1994, SRI International. All Rights Reserved.
#
# RCS ID: $Id: decipher-install,v 1.3 2000/06/08 18:30:31 stolcke Exp $
#
# $Log: decipher-install,v $
# Revision 1.3 2000/06/08 18:30:31 stolcke
# backup recently used executables before installing new version
#
# Revision 1.2 2000/06/08 17:51:18 stolcke
# avoid ginstall and decipher-specific stuff
#
# Revision 1.4 1995/02/22 01:46:58 tmk
# Updates from Andreas' Solaris port
#
# Revision 1.3 1994/12/03 23:54:44 decipher
# Reorganized the error checking so usage message wasn't always printed.
#
# Revision 1.2 1994/11/24 01:47:35 decipher
# Revised to take variable number of arguments. Now uses ginstall instead
# of each platforms' local install. More error checking added.
#
# Revision 1.1 1994/08/26 22:24:38 victor
# Initial revision
#
#
# By using this flag, the script runs through all error checking and
# reports all errors before exiting
unset error
# Set these variables now so diagnostic printing on errors works nicely
set FILES DIR MODE
# this script can only be run by decipher:
#if (`whoami` != decipher) then
# echo "ERROR: installation must be done by user 'decipher'."
# exit -1
#endif
# Get the arguments, check usage. Have to bail completely if there
# aren't enough arguments.
if ($#argv < 3) then
echo "WARNING: There are arguments missing"
exit -1
endif
set MODE = $1
shift
set DIR = $argv[$#argv]
while ($#argv > 1)
set FILES = ($FILES $1)
shift
end
# we should check that these are valid:
# First, check the mode
if ($MODE !~ 0[1-7][1-7][1-7]) then
echo "ERROR: Mode ($MODE) is not a valid permission setting"
set error
endif
# Now check each file
foreach FILE ($FILES)
if (! -e ${FILE}) then
echo "ERROR: File to be installed (${FILE}) does not exist."
set error
endif
if (-z ${FILE}) then
echo "ERROR: File to be installed (${FILE}) is zero length."
set error
endif
if (! -f ${FILE}) then
echo "ERROR: File to be installed (${FILE}) is not a plain file."
set error
endif
end
if (! -d ${DIR}) then
echo "WARNING: creating directory ${DIR}"
mkdir ${DIR}
endif
# Now check the directory
if (! -e ${DIR}) then
echo "ERROR: Installation directory (${DIR}) does not exist."
set error
endif
if (! -d ${DIR}) then
echo "ERROR: Installation target (${DIR}) is not a directory."
set error
endif
if (! -w ${DIR}) then
echo "ERROR: Don't have write permission in installation directory (${DIR})."
set error
endif
# check that $DIR is a valid destination:
# currently, this means we should be able to install files under
# /include, /bin/, and /lib/ directories under /home/decipher:
#@@ Get rid of '^' in egrep so /tmp_mnt prefix from NFS ok.
#if (`echo ${DIR} | egrep '\/home\/decipher'` == "") then
# echo "ERROR: You can install files only under /home/decipher"
# set error
#endif
if (`echo ${DIR} | egrep '\/bin|\/include|\/lib\/'` == "") then
echo "ERROR: You can install files only in .../include, .../bin/, or .../lib/ directories."
set error
endif
# Bail out if there have been errors:
if ($?error) goto USAGE
# Install the files:
#echo "ginstall -p -m ${MODE} ${FILES} ${DIR}"
#ginstall -p -m ${MODE} ${FILES} ${DIR}
foreach file (${FILES})
set base = `basename $file`
# remove executable backups not accessed in one day
foreach file2 ( `find ${DIR} -name "$base.~[0-9]*" -perm -0500 -atime +1 -print` )
echo "removing old backup $file2"
rm -f $file2
end
# backup executables accessed within the last day
foreach file2 ( `find ${DIR} -name $base -perm -0500 -atime -1 -print` )
echo "$file2 is in use; backing up to $file2.~$$"
mv $file2 $file2.~$$
end
rm -f ${DIR}/$base
cp -p $file ${DIR}
chmod ${MODE} ${DIR}/$base
end
# exit:
exit 0
USAGE:
echo "Usage: "`basename ${0}`" <mode> <file1> ... <fileN> <directory>"
echo " mode: file permission mode, in octal"
echo " file1 ... fileN: files to be installed"
echo " directory: where the files should be installed"
echo ""
echo "files = " $FILES
echo "directory = " $DIR
echo "mode = " $MODE
echo ""
exit 1
是這個sh的內容,雖然他用到了csh但是我有apt-get install csh阿
- 代碼: 選擇全部
doc:/home/doc/srilm/bin# apt-get install csh
Reading Package Lists... Done
Building Dependency Tree... Done
csh is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
可以請幫我解釋最上面的make error一下嗎??