我一直在想我的美联储12系统上安装lpng142。 似乎是一个问题给我。 我得到这个错误
[root@localhost lpng142]# ./configure
bash: ./configure: /bin/sh^M: bad interpreter: No such file or directory
[root@localhost lpng142]#
我该如何解决? 在/etc/fstab
的文件:
#
# /etc/fstab
# Created by anaconda on Wed May 26 18:12:05 2010
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/VolGroup-lv_root / ext4 defaults 1 1
UUID=ce67cf79-22c3-45d4-8374-bd0075617cc8 /boot ext4
defaults 1 2
/dev/mapper/VolGroup-lv_swap swap swap defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
要解决,用vi或者vim打开你的脚本,并在vi命令模式(Esc键 )进入,然后键入以下内容:
:set fileformat=unix
最后保存
:x!
或:wq!
看起来你有结束文件中的DOS行。 线索是^M
。
你需要重新保存使用Unix行结尾的文件。
你可能有一个dos2unix
命令行实用程序,也会为你做这个。
您的配置文件包含CRLF行结束 (windows风格),而不是简单的LF行结束符(UNIX风格)。 您在使用FTP ASCII模式从Windows转移呢?
您可以使用
dos2unix configure
解决这个问题,或者在vi和使用其打开:%s/^M//g;
替代他们都(使用CTRL + V,CTRL + M,以获得^ M)
您可以使用下面的命令来修复
cat file_name.sh | tr -d '\r' > file_name.sh.new
如果你能找到不执行命令,
CentOS的:
# yum install dos2unix*
# dos2unix filename.sh
dos2unix: converting file filename.sh to Unix format ...
Ubuntu的/ Debian的:
# apt-get install dos2unix
这通常发生在你编辑从Windows中的文件,现在试图执行从一些基于UNIX的机器。
介绍了该解决方案的Linux论坛为我工作(多次):
perl -i -pe's/\r$//;' <file name here>
希望这可以帮助。
PS:你需要有你的Unix / Linux机器上安装的perl。
如果你在OS X,你可以打开该文件,并选择更改行结束在XCode中
查看 - >文字 - >行尾 - > Unix的
菜单项,然后保存。 这是XCode的3.x的 可能是一些XCode中4类似。
从理查德的评论继。 下面是简单的方法来转换文件到UNIX行尾。 如果你像我一样,你在Windows记事本创建它,然后试图在Linux中运行它 - 坏主意。
- 下载并安装自己的副本记事本++ (免费)。
- 在记事本++脚本文件。
- 文件菜单 - > 另存为 - >
- 保存类型:
Unix script file (*.sh;*.bsh)
- 新.SH文件复制到你的Linux系统
- Maxe它可执行文件:
chmod 755 the_script_filename
- 与运行:
./the_script_filename
任何其他问题, 尝试此链接 。
在Linux中使用DOS2UNIX的命令来保存文件转换。 例如:
dos2unix file_name
由于pwc101就评论这个职位 ,这个命令在Linux的卡利工作。
sed -i s/{ctrl+v}{ctrl+m}// {filename}
确保在括号更换位, {}
即{ctrl+m}
意味着按Ctrl键和M键在一起。
如果您使用的TextMate或类似的程序,不要另存为,然后在编码选择LF
,而不是CRLF
。
当你写你在Windows环境脚本和要在UNIX上运行环境在你需要小心的encodage:
DOS2UNIX的文件路径$