Raspberry Pi2 折腾
开启Root用户
初次使用pi用户登录后,默认密码为 raspberry,然后应该搞开Root用户,和Debian系列一样(我特么只用过基于Debian的,如Ubuntu,还没玩过纯血统Debian),默认树莓派Root用户是未启用的,密码每次开机都变,执行以下命令开启Root用户,并更改密码:
1 |
|
以下相关设置大部分在root权限下进行
解决vi方向/删除失灵
1 |
|
less语法高亮
- 执行命令
apt-get install source-highlight
- 加入环境变量(更详细参考 这里)
1 |
|
设置自动连接 WiFi
- 编辑 /etc/network/interfaces 文件
一般只有一个无线网卡的话默认为 wlan0,修改
iface wlan0 inet manual
为iface wlan0 inet dhcp
,因为考虑到网络环境,频繁切换网络不适合设置静态IP,所以使用 DHCP 分配,样例配置文件如下:
1 |
|
- 编辑 /etc/wpa_supplicant/wpa_supplicant.conf 文件
该文件主要存储无线网络连接的相关设置,包括SSID、密码、加密方式等,配置样例如下
1 |
|
其中 network 部分最好使用工具生成,命令如下 wpa_passphrase SSID PASSWD
- 启用网卡链接
执行
ifup wlan0
启动 wlan0 并连接,执行ifdown wlan0
关闭并断开链接,如下图:
链接成功后可执行 ifconfig
或 iwconfig
查看网络连接状况,如下图:
关闭 WiFi 休眠
默认情况下树莓派的 wifi 时会自动休眠的,使用如下命令关闭网卡休眠
1 |
|
修改配置后重启即可
设置命令提示符风格
- 命令提示相关设置
Linxu命令提示符由 PS1变量控制,所以更改命令提示符样式也就是更改PS1变量,以下为相关码值:
1 |
|
颜色及效果控制码值
1 |
|
设置PS1变量时,
\[\e[F;Bm]
代表颜色开始,F为前景色,B为背景色,\e[m]
为颜色结束符,不写的话会造成整个命令行都是最后一种颜色,以下为我的PS1样式
1 |
|
设置开机自动同步时间
众所周知树莓派不加扩展板的情况下 没有硬件RTC时钟,也就意味着每次开机都要设置时钟,这特么可万万不能够啊,以下为设置开机自动同步时间的方法:
- 安装ntp
1 |
|
- 设置时区
1 |
|
- 手动校对时间
1 |
|
- 设置开机自动校对时间
编辑
/ect/rc.local
文件 执行vim /etc/rc.local
,加入htpdate -t -s 210.72.145.44
这条命令,注意要放在exit 0
前面,样例配置如下:
1 |
|
合并剩余分区空间
默认树莓派安装系统后并不会占用所有SD卡空间,一般只会使用4G左右,对于大内存卡来说剩下的空间属于未分配状态,即未分区无法使用,我们可以使用
fdisk
来合并后面的分区加以利用
使用 raspi-config(2016-08-13 更新)
推荐直接使用树莓派提供的工具,执行 raspi-config
,然后选择第一项,提示选择 OK ,最终 Finish 即可。
使用 分区工具
- 查看分区及起始参数
1 |
|
- 删除 主分区(Linux分区)
1 |
|
- 增加新分区
1 |
|
- 执行增加分区操作
1 |
|
- 重启并执行分区修复
1 |
|
安装lrzsz(快捷上传下载)
操作简单,但大有用处,执行一条命令
apt-get install lrzsz
就安装成功了;作用就是在使用xShell通过ssh连接到树莓派后,上传文件只需要敲rz
命令就会弹出文件选择对话框,选择文件后就直接上传到当前shell显示的目录下了,也可以直接将文件拖向命令行,也会直接将文件上传到当前目录;下载的话直接敲sz FILENAME
就会马上弹出下载选择框,选择到哪就会下载到那个目录,奏是这么吊!
切换国内源
默认树莓派连接的源是官方源,其服务器在美国,然后你懂得……编辑 /etc/apt/sources.list
注释掉其他源,从 树莓派源列表 中选择一个填入,然后 apt-get update
即可,以下为 /etc/apt/sources.lis
文件参考(清华大学源)
1 |
|
编译并安装Nginx
由于做J2EE开发,想搞个Nginx,so 鼓捣吧……
- 下载相关组件源码
Nginx 编译安装需要 如下支持
gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel
默认gcc树莓派已经自带了,剩下的 pcre、zlib、openssl 需要自己下载,下载地址: pcre、zlib、openssl、Nginx
- 解压相关组件
1 |
|
- 执行编译安装
1 |
|
安装花生壳(内网穿透)
作为一名 Java Web狗,Nginx、Tomcat已经搞起了,只能内网访问怎么可以;所以必须搞一个 花生壳做内网映射,使之通过域名可直接从外网访问到内网下的树莓派中部署的项目。
- 下载花生壳并解压
花生壳树莓派版下载地址: 点击下载
下载后上传到树莓派,执行tar -zxvf phddns_raspberry.tgz
解压文件
- 安装并运行花生壳
解压后会生成
phddns2
目录,cd
进去,执行./oraynewph start
命令进行安装,安装完成后屏幕上会显示几行信息,其中一个是 SN码__,记录下这个 __SN码__,一般是一串复杂的类似于md5的字符串
然后进入 b.oray.com ,选择使用 __SN码 登录,默认密码是admin,**注意:此时树莓派必须成功连接外网,否则无法登陆**,登录如下图所示:
登陆后首先选择 动态域名解析 ,然后 注册一个壳域名 ,再回到首页选择 内网映射 ,配置一个域名内网映射即可,映射配置如下图:
其他关于更详细的花生壳使用教程请谷歌,安装教程参考 这里,最后附上一张装好逼的截图:
编译安装Nexus
由于现在项目都使用Maven,所以也想搞一个私服Nexus,无奈Nexus官方二进制包中并不提供 arm平台支持,主要是wrapper 没有arm平台的可执行文件和动态链接库,故需要自己编译wrapper,所以有了 “编译安装Nexus” 这一说法。
- 下载 Nexus
登录 Nexus官网 选择 TGZ 格式下载,上传到 树莓派并解压,然后 mv 到你想要放置的目录。配置一个环境变量,样例如下 :
export NEXUS_HOME='/usr/local/java/nexus/nexus-2.11.4-01'
,并将$NEXUS_HOME/bin
加入到PATH
中。
- 下载wrapper
为何需要下载
wrapper
:nexus
本身确实自带了wrapper
,但wrapper
这玩意是跟平台结合的,目前Nexus
不支持arm
平台,所以需要我们手动编译一个替换Nexu
中的wrapper
。
- 目前下载的最新版 Nexus-2.11.4-01 依赖的是 wrapper3.2.3,下载地址 点这里 (注意我们下载的事3.5.9版本)。
- 下载完 src 源码包后上传到树莓派并解压,在开始编译前,需要正确的配置
JAVA_HOME
和PATH
,这里有个小问题,树莓派2自带了JDK8,但JAVA_HOME
啥的没配置,所以会有问题;但直接卸载的话apt-get
会自动给你安装open-jdk7
,可执行apt-cache rdepends oracle-java8-jdk
查看依赖jdk
的相关软件包,并执行apt-get purge xxxxx
卸载他们,基本这些软件包都是教学用的,可以删掉;然后自己下载arm
平台的jdk7
(感觉8太新了怕不稳定) 安装、配置环境。
- 编译 wrapper
- 配置完
JAVA_HOME
、PATH
变量以后还需要下载一个Ant
,因为wrapper
是基于Ant
构建的,基本步骤也是。 下载Ant 然后解压到指定目录,配置一下ANT_HOME
,方法自查。- 在正式编译前需要
cp src/c/Makefile-linux-x86-32.make
tosrc/c/Makefile-linux-arm-32.make
(老外的原文,说来了就是copy
一份到当前目录并重命名一下)。- 进入到
wrapper
解压后的目录执行./build32.sh
进行编译,如果JAVA_HOME
、PATH
、Ant
、.make 文件
没问题的话编译一般不会出错。- 编译完成后在
nexus-2.11.4-01/bin/jsw
下新建一个linux-armv7l-32
文件夹,复制编译好的wrapper_3.5.9_src/bin/wrapper
文件到 刚刚新建的linux-armv7l-32
目录下,由于**使用了高版本**wrapper
,wrapper.jar
复制过去后需要先删掉原来的wrapper-3.2.3.jar
并将wrapper.jar
重命名为wrapper-3.2.3.jar
。
- 配置并启动 Nexus
- 新建用户
nexus
:adduser nexus
(别用useradd
我一直以为这两个命令一样,但你在树莓派2下可以试试)- 改密码 :
passwd nexus
- 改两个配置文件 :
nexus-2.11.4-01/bin/nexus
、nexus-2.11.4-01/bin/jsw/conf/wrapper.conf
,两个配置要改的地方贴出来如下 (更详细的参见 Nexus 2.11 CentOS搭建教程) :
1 |
|
1 |
|
- 先切换到
nexus
用户,因为官方不推荐以root
用户运行,执行 :su - nexus
,然后启动nexus
,执行nexus start
启动,时间比较长,大约2分钟,使用tail -f nexus-2.11.4-01/logs/wrapper.log
查看进度,启动成功后访问IP:8081/nexus
即可,默认用户admin
,密码admin123
;到此结束。
编译安装MySQL
- 安装Screen
执行
apt-get install screen
安装screen,用于后台运行编译任务,防止断网等原因造成的编译失败。
- 下载MySQL5.6源码
可去官网下载,百度云分享 点击这里 密码: g2ab
下载完成后上传到树莓派并解压
- 系统设置初始化
编译前需要做以下操作:
1 |
|
- 安装依赖包
1 |
|
- 开始编译MySQL
1 |
|
关于cmake预编译参数设置参考 这里
- 执行安装
1 |
|
- 后续操作
1 |
|
mysql5.6的默认参数设置问题,更改my.cnf,调整以下参数
performance_schema_max_table_instances=600
table_definition_cache=400
table_open_cache=256
这时mysql启动后内存就只占用40–60M内存了
安装 xrdp远程桌面
其实树莓派感觉没必要买显示器,因为直接可以安装远程桌面,执行
apt-get install xrdp
安装,在Windows
下可直接使用远程桌面连接,按Win+R
键输入mstsc
,再输入树莓派地址和用户名密码 就可以,截图如下:
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 国际许可协议进行许可,转载请注明出处。