avatar

Arch编译安装Nginx invalid arithmetic operator

这次蛋疼的将VPS的操作系统更换成了Arch
出现了不少错误,在这里总结下
首先安装系统的错误
客服帮忙挂载的ISO是netinstall版本的,所以出现了一个很蛋疼的错误
net安装会下载最新的内核,最新是Kernel3.0,但是grub引导信息却不是最新的
导致grub无法找到引导文件报错

Error 15: File not found

解决方法很容易,找到你boot分区中引导文件所在位置

Grub中按e键修改
我就直接贴出我memu.list中的信息了 注意 我的 sda3 是 root分区
请根据自己分区不同修改

title  Arch Linux
root   (hd0,0)
kernel /vmlinuz-linux root=/dev/sda3 ro
initrd /initramfs-linux.img

# (1) Arch Linux
title  Arch Linux Fallback
root   (hd0,0)
kernel /vmlinuz-linux root=/dev/sda3 ro
initrd /initramfs-linux-fallback.img

这样就能解决问题了

然后安装Nginx错误

auto/os/linux: line 21: 3.0-ARCH: syntax error: invalid arithmetic operator (error token is ".0-ARCH")

这个是因为一个正则错误导致无法正确分析内核版本
错误代码如下

version=$((`uname -r \
| sed 's/^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\1*256*256+\2*256+\3/'`))

Ticket 地址
http://trac.nginx.org/nginx/ticket/5

解决方案:
修改源码中 auto/os/linux 内容

version=$((`uname -r \
	-       | sed 's/^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\1*256*256+\2*256+\3/'`))
	+    | sed -n -e 's/^\([0-9][0-9]*\)\.\([0-9][0-9]*\)\.\([0-9][0-9]*\).*/ \
	+                                                 \1*256*256+\2*256+\3/p' \
	+             -e 's/^\([0-9][0-9]*\)\.\([0-9][0-9]*\).*/\1*256*256+\2*256/p'`))

+是新增加的 -删除该行 这个不用说了吧~

Comments ( 0 ) Trackbacks ( 0 ) Leave a Reply
  1. No comments yet.

    目前尚无任何评论.

    コメントはまだありません。

  1. No trackbacks yet.

    目前尚无任何 trackbacks 和 pingbacks.

    トラックバックはまだありません。

  • ☆*:.。. o(≧▽≦)o .。.:*☆
  • _(:з」∠)_
  • ♪(´ε` )
  • ψ(`∇´)ψ
  • (-_-#)
  • (=´∀`)人(´∀`=)
  • \(//∇//)\
  • ♪(*^^)o∀*∀o(^^*)♪
  • (((o(*゚▽゚*)o)))
  • (´・_・`)
  • σ(^_^;)
  • ( *`ω´)
  • (ノ`Д´)ノ
  • (( _ _ ))..zzzZZ
  • ( ̄▽ ̄)
  • ヽ(`Д´#)ノ
  • ((((;゚Д゚)))))))
  • (>_<)
  • (T_T)
  • ( T_T)\(^-^ )
  • ε=ε=ε=ε=ε=ε=┌(; ̄◇ ̄)┘