我一直在尝试在我的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
小智.. 727
要修复,请使用vi或vim打开脚本并输入vi命令模式(key Esc),然后键入:
:set fileformat=unix
最后保存它
:x!
要么 :wq!
要修复,请使用vi或vim打开脚本并输入vi命令模式(key Esc),然后键入:
:set fileformat=unix
最后保存它
:x!
要么 :wq!
看起来你有一个dos行结束文件.线索是^M
.
您需要使用Unix行结尾重新保存文件.
您可能有一个dos2unix
命令行实用程序,它也将为您执行此操作.
或者,如果您想使用脚本执行此操作:
sed -i 's/\r//' filename
您的配置文件包含CRLF行结尾(窗口样式)而不是简单的LF行结尾(unix样式).你是否使用Windows的FTP模式ASCII传输它?
您可以使用
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$//;'
希望这可以帮助.
PS:你需要在你的unix/linux机器上安装perl.
如果您使用的是OS X,则可以通过打开文件并选择“
查看->文本->行尾-> Unix
菜单项,然后点击保存。这是针对XCode 3.x的。XCode 4中可能类似。
由于pwc101就评论这个职位,这个命令在Linux的卡利工作。
sed -i s/{ctrl+v}{ctrl+m}// {filename}
确保替换括号中的位{}
。即{ctrl+m}
意味着按Ctrl键和M键一起。