ubuntu安装luci
经过几天的折腾,终于在ubuntu上面跑起来了luci,其间遇到各种编译问题和依赖性问题。另外在公司有些网站不能上,所以有些代码下载不了,luci的安装过程主要是在家里完成的。下面记录下安装过程。
1. ubuntu虚拟机安装和配置
第一步当然是安装虚拟机啦,我的的系统是ubuntu-14.04.2-desktop-i386,下载地址是http://mirrors.ustc.edu.cn/ubuntu-releases/14.04/
这是中国科大的一个下载源,下载速度挺快的,比在官网下得快。我用过ubuntu12版本的,但是在编译luci的时候老是报各种错误,最后用这个ubuntu14成功。。
安装好虚拟机后要配置好网络,使之能上网,具体方法就不说了,贴两个配置samba和ssh的帖子。
配置samba http://blog.chinaunix.net/uid-25508271-id-212620.html
配置ssh http://jingyan.baidu.com/article/9c69d48fb9fd7b13c8024e6b.html
2. 安装lua
lua必须要用5.1版本了,尝试过5.2和5.3的,发现会出现链接错误,因为5.2和5.3的某些数据结构名字改变了。。。
我是下载lua源码安装的,输入命令下载源码 wget www.lua.org/ftp/lua-5.1.5.tar.gz
接下来安装libreadline库,这个库是编译lua的时候要用的,输入命令 sudo apt-get install libreadline-dev 进行安装。
然后是安装libncurses库,这个库也是lua依赖的,输入命令sudo apt-get install libncurses-dev
接下来解压lua,然后执行make linux & make install 安装lua
另外要安装liblua库, 输入命令sudo apt-get install liblua5.1
3.安装svn
编译luci代码的时候要使用svn命令下载uhttpd代码。
输入命令sudo apt-get install subversion
4.安装miniupnp和minidlna
这两个玩意儿是运行luci要用的,也先装上,输入命令
sudo apt-get install miniupnp
sudo apt-get install minidlna
5.下载luci源代码
git clone https://github.com/openwrt/luci.git
然后进入luci目录执行命令 git checkout luci-0.12
以及下面两条命令
git checkout 89678917~1 contrib/package/luci/Makefile
git checkout 89678917~1 modules/admin-full/src/luci-bwc.c
6.编译luci源代码
执行命令 make runuhttpd
如果一切顺利的话,这个时候在浏览器中输入192.168.0.103:8080就可以进入luci的web界面啦。这里192.168.0.103是虚拟机的IP地址。
============================我是分割============================================
下面列出在整个过程中记录的一些报错信息
gcc -O2 -Wall -DLUA_USE_LINUX -c -o lua.o lua.c
In file included from lua.h:16:0,
from lua.c:15:
luaconf.h:275:31: fatal error: readline/readline.h: No such file or directory
解决:$ sudo apt-get install libreadline-dev
make[2]: Entering directory `/home/robin/lua-5.1.5/src‘
gcc -O2 -Wall -DLUA_USE_LINUX -c -o lua.o lua.c
gcc -o lua lua.o liblua.a -lm -Wl,-E -ldl -lreadline -lhistory -lncurses
/usr/bin/ld: cannot find -lncurses
collect2: error: ld returned 1 exit status
解决:sudo apt-get install libncurses-dev
make[1]: Entering directory `/home/robin/luci/contrib/uhttpd‘
svn co svn://svn.openwrt.org/openwrt/branches/backfire/package/uhttpd/src uhttpd-src
make[1]: svn: Command not found
解决:sudo apt-get install subversion
robin@ubuntu:~/luci$ make
Makefile:1: build/config.mk: No such file or directory
make: *** No rule to make target `build/config.mk‘. Stop.
解决:git checkout luci-0.12
make[1]: Entering directory `/home/robin/luci/modules/admin-full‘
rm -f src/*.o src/luci-bwc
gcc -O2 --std=gnu99 -Wall -pedantic -fPIC -c -o src/luci-bwc.o src/luci-bwc.c
src/luci-bwc.c:35:20: fatal error: iwinfo.h: No such file or directory
#include <iwinfo.h>
解决:git checkout 89678917~1 contrib/package/luci/Makefile
git checkout 89678917~1 modules/admin-full/src/luci-bwc.c
/home/robin/luci/host/www/cgi-bin/luci: No such file or directory
解决:sudo apt-get install liblua5.1