@mritd
2015-11-29T12:23:50.000000Z
字数 9884
阅读 2730
Linux Raspberry
初次使用pi用户登录后,首先应该搞开Root用户,和Debian系列一样(我特么只用过基于Debian的,如Ubuntu,还没玩过纯血统Debian),默认树莓派Root用户是未启用的,密码每次开机都变,执行以下命令开启Root用户,并更改密码:
sudo passwd root# 然后输两次密码,可以su过去了,不过这时你会发现# 仍然无法远程以root登录,修改如下配置中的 PermitRootLogin 参数即可vi /etc/ssh/sshd_config# 该参数码值如下# 允许root用户以任何认证方式登录PermitRootLogin yes# 只允许root用public key认证方式登录PermitRootLogin without-password# 不允许root远程登录PermitRootLogin no
以下相关设置大部分在root权限下进行
# 直接编辑vim配置文件,注意先调整到要改的位置,再编辑# 因为一旦进入Insert模式 方向键是不好使的vi /ect/vim/vimrc.tiny# 修改后如下set nocompatibleset backspace=2
- 执行命令
apt-get install source-highlight- 加入环境变量(更详细参考 这里)
export LESSOPEN='| /usr/share/source-highlight/src-hilite-lesspipe.sh %s'export LESS=' -R -N '
一般只有一个无线网卡的话默认为 wlan0,修改
iface wlan0 inet manual为iface wlan0 inet dhcp,因为考虑到网络环境,频繁切换网络不适合设置静态IP,所以使用 DHCP 分配,样例配置文件如下:
# Please note that this file is written to be used with dhcpcd.# For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf'.auto loiface lo inet loopback# 自动连接有线网卡auto eth0allow-hotplug eth0iface eth0 inet manual# 自动连接 无线网卡auto wlan0# 允许热插拔allow-hotplug wlan0# IP采用 DHCP 分配iface wlan0 inet dhcp# SSID 等相关设置(wifi密码啥的)wpa-conf /etc/wpa_supplicant/wpa_supplicant.confauto wlan1allow-hotplug wlan1iface wlan1 inet dhcpwpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
该文件主要存储无线网络连接的相关设置,包括SSID、密码、加密方式等,配置样例如下
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdevupdate_config=1network={# Wifi SSIDssid="mritd"# Wifi Passwordpsk="12345678"# 网络优先级, network块可以有多个,也就是可以设置多个无线链接及密码,# 当有多个Wifi都存在时,根据这个值选择优先链接,越大优先级越高,不可为负数priority=5}
执行
ifup wlan0启动 wlan0 并连接,执行ifdown wlan0关闭并断开链接,如下图:
链接成功后可执行
ifconfig或iwconfig查看网络连接状况,如下图:
Linxu命令提示符由 PS1变量控制,所以更改命令提示符样式也就是更改PS1变量,以下为相关码值:
\d :#代表日期,格式为weekday month date,例如:"Mon Aug 1"\H :#完整的主机名称。\h :#仅取主机的第一个名字,如上例,则为fc4,.linux则被省略\t :#显示时间为24小时格式,如:HH:MM:SS\T :#显示时间为12小时格式\A :#显示时间为24小时格式:HH:MM\u :#当前用户的账号名称\v :#BASH的版本信息\w :#完整的工作目录名称。家目录会以 ~代替\W :#利用basename取得工作目录名称,所以只会列出最后一个目录\# :#下达的第几个命令\$ :#提示字符,如果是root时,提示符为:# ,普通用户则为:$
颜色及效果控制码值
前景 背景 颜色------------------------30 40 黑色31 41 红色32 42 绿色33 43 黄色34 44 蓝色35 45 紫红色36 46 青蓝色37 47 白色代码 意义-------------------------0 OFF1 高亮显示4 underline5 闪烁7 反白显示8 不可见
设置PS1变量时,
\[\e[F;Bm]代表颜色开始,F为前景色,B为背景色,\e[m]为颜色结束符,不写的话会造成整个命令行都是最后一种颜色,以下为我的PS1样式
PS1='\[\e[1;32m\][\u@\h\[\e[m\] \[\e[1;34m\]\W\[\e[m\]\[\e[1;32m\]]$\[\e[m\] '
众所周知树莓派不加扩展板的情况下 没有硬件RTC时钟,也就意味着每次开机都要设置时钟,这特么可万万不能够啊,以下为设置开机自动同步时间的方法:
apt-get install ntpdate
# 执行如下命令dpkg-reconfigure tzdata# 选择 Asia(亚洲) 然后选择 ShanHai(上海)
# 一般上面设置完市区就应该已经自动同步时间了# 执行以下命令可能会报socket占用,可忽略# 210.72.145.44 国家授时中心服务器IPntpdate 210.72.145.44
编辑
/ect/rc.local文件 执行vim /etc/rc.local,加入htpdate -t -s 210.72.145.44这条命令,注意要放在exit 0前面,样例配置如下:
#!/bin/sh -e# 此处省略1000行注释.....# Sync Timehtpdate -t -s 210.72.145.44# Print the IP address_IP=$(hostname -I) || trueif [ "$_IP" ]; thenprintf "My IP address is %s\n" "$_IP"fiexit 0
默认树莓派安装系统后并不会占用所有SD卡空间,一般只会使用4G左右,对于大内存卡来说剩下的空间属于未分配状态,即未分区无法使用,我们可以使用
fdisk来合并后面的分区加以利用
# 进入fdiskfdisk /dev/mmcblk0# 按 P 显示分区信息,并记录 Type 为Linux的分区起始柱面(122880),打印如下:Device Boot Start End Sectors Size Id Type/dev/mmcblk0p1 8192 122879 114688 56M c W95 FAT32 (LBA)/dev/mmcblk0p2 122880 8447999 8325120 4G 83 Linux
# 按D 并选择删除分区2,再按P 查看分区信息,打印如下:Command (m for help): dPartition number (1,2, default 2): 2Partition 2 has been deleted.Command (m for help): pDisk /dev/mmcblk0: 28.8 GiB, 30908350464 bytes, 60367872 sectorsUnits: sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisklabel type: dosDisk identifier: 0xba2edfb9Device Boot Start End Sectors Size Id Type/dev/mmcblk0p1 8192 122879 114688 56M c W95 FAT32 (LBA)
# 按N 执行新建分区,再按P 选择增加主分区,并输入起始柱面(122880),打印如下:Command (m for help): nPartition typep primary (1 primary, 0 extended, 3 free)e extended (container for logical partitions)Select (default p): pPartition number (2-4, default 2): 2First sector (2048-60367871, default 2048): 122880Last sector, +sectors or +size{K,M,G,T,P} (122880-60367871, default 60367871):Created a new partition 2 of type 'Linux' and of size 28.7 GiB.
# 首先按P 查看一下,确认分区增加无误,然后按W 执行分区操作,打印如下:Command (m for help): pDisk /dev/mmcblk0: 28.8 GiB, 30908350464 bytes, 60367872 sectorsUnits: sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisklabel type: dosDisk identifier: 0xba2edfb9Device Boot Start End Sectors Size Id Type/dev/mmcblk0p1 8192 122879 114688 56M c W95 FAT32 (LBA)/dev/mmcblk0p2 122880 60367871 60244992 28.7G 83 LinuxCommand (m for help): wThe partition table has been altered.# 此处说明 设备忙碌,新的分区表将在下次重启生效Calling ioctl() to re-read partition table.Re-reading the partition table failed.: Device or resource busyThe kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8).
# 由于上面已经提示了重启生效,所以执行重启命令reboot# 重启后需要进行一次分区修复,否则df查看磁盘占用是不变的,执行如下命令修复分区resize2fs /dev/mmcblk0p2# 执行成功后使用df查看分区占用情况,打印如下:[root@raspberrypi ~]# dfFilesystem 1K-blocks Used Available Use% Mounted on/dev/root 29586708 3255252 25069844 12% /devtmpfs 469756 0 469756 0% /devtmpfs 474060 0 474060 0% /dev/shmtmpfs 474060 6412 467648 2% /runtmpfs 5120 4 5116 1% /run/locktmpfs 474060 0 474060 0% /sys/fs/cgroup/dev/mmcblk0p1 57288 20232 37056 36% /boottmpfs 94812 0 94812 0% /run/user/1000
操作简单,但大有用处,执行一条命令
apt-get install lrzsz就安装成功了;作用就是在使用xShell通过ssh连接到树莓派后,上传文件只需要敲rz命令就会弹出文件选择对话框,选择文件后就直接上传到当前shell显示的目录下了,也可以直接将文件拖向命令行,也会直接将文件上传到当前目录;下载的话直接敲sz FILENAME就会马上弹出下载选择框,选择到哪就会下载到那个目录,奏是这么吊!
由于做J2EE开发,想搞个Nginx,so 鼓捣吧......
Nginx 编译安装需要 如下支持
gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel
默认gcc树莓派已经自带了,剩下的 pcre、zlib、openssl 需要自己下载,下载地址: pcre、zlib、openssl、Nginx
# 下载下来想办法搞到树莓派上,然后解压tar -zxvf openssl-1.0.2d.tar.gztar -zxvf pcre-8.37.tar.gztar -zxvf zlib-1.2.8.tar.gztar -zxvf nginx-1.8.0.tar.gz
# 首先进入到 nginx目录cd nginx-1.8.0# 执行编译,编译参数如下:./configure--sbin-path=/usr/local/nginx/nginx--conf-path=/usr/local/nginx/nginx.conf--pid-path=/usr/local/nginx/nginx.pid--with-http_ssl_module--with-pcre=../pcre-8.37--with-zlib=../zlib-1.2.8--with-openssl=../openssl-1.0.2d# 最后安装(时间有点长......)make && make install
作为一名 Java Web狗,Nginx、Tomcat已经搞起了,只能内网访问怎么可以;所以必须搞一个 花生壳做内网映射,使之通过域名可直接从外网访问到内网下的树莓派中部署的项目。
花生壳树莓派版下载地址: 点击下载
下载后上传到树莓派,执行tar -zxvf phddns_raspberry.tgz解压文件
解压后会生成
phddns2目录,cd进去,执行./oraynewph start命令进行安装,安装完成后屏幕上会显示几行信息,其中一个是 SN码,记录下这个 SN码,一般是一串复杂的类似于md5的字符串
然后进入 b.oray.com ,选择使用 SN码 登录,默认密码是admin,注意:此时树莓派必须成功连接外网,否则无法登陆,登录如下图所示:
登陆后首先选择 动态域名解析 ,然后 注册一个壳域名 ,再回到首页选择 内网映射 ,配置一个域名内网映射即可,映射配置如下图:
其他关于更详细的花生壳使用教程请谷歌,安装教程参考 这里,最后附上一张装好逼的截图:
由于现在项目都使用Maven,所以也想搞一个私服Nexus,无奈Nexus官方二进制包中并不提供 arm平台支持,主要是wrapper 没有arm平台的可执行文件和动态链接库,故需要自己编译wrapper,所以有了 "编译安装Nexus" 这一说法。
登录 Nexus官网 选择 TGZ 格式下载,上传到 树莓派并解压,然后 mv 到你想要放置的目录。配置一个环境变量,样例如下 :
export NEXUS_HOME='/usr/local/java/nexus/nexus-2.11.4-01',并将$NEXUS_HOME/bin加入到PATH中。
为何需要下载
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太新了怕不稳定) 安装、配置环境。
- 配置完
JAVA_HOME、PATH变量以后还需要下载一个Ant,因为wrapper是基于Ant构建的,基本步骤也是。 下载Ant 然后解压到指定目录,配置一下ANT_HOME,方法自查。- 在正式编译前需要
cp src/c/Makefile-linux-x86-32.maketosrc/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: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搭建教程) :
################################# nexus-2.11.4-01/bin/nexus ################################### Set the JVM executable# (modify this to absolute path if you need a Java that is not on the OS path)# 配置 jdk中 java 可执行文件的位置(其实我感觉jre就可以,没测试,有兴趣的测试一下)wrapper.java.command=/usr/local/java/jdk1.7.0_79/bin/java
################################################ nexus-2.11.4-01/bin/jsw/conf/wrapper.con ################################################## Set this to the root of the Nexus installation# 设置 nexus 主目录,就是解压后的那个 nexus目录绝对路径NEXUS_HOME="/usr/local/java/nexus-2.11.4-01"
- 先切换到
nexus用户,因为官方不推荐以root用户运行,执行 :su - nexus,然后启动nexus,执行nexus start启动,时间比较长,大约2分钟,使用tail -f nexus-2.11.4-01/logs/wrapper.log查看进度,启动成功后访问IP:8081/nexus即可,默认用户admin,密码admin123;到此结束。
执行
apt-get install screen安装screen,用于后台运行编译任务,防止断网等原因造成的编译失败。
可去官网下载,百度云分享 点击这里 密码: g2ab
下载完成后上传到树莓派并解压
编译前需要做以下操作:
# 新建mysql用户adduser mysql# 创建MySQL安装目录cd /usr/localmkdir mysqlcd /usr/local/mysqlmkdir data
# 首先升级软件源(如果改过非官方源必须改回来)apt-get update# 升级已安装软件包apt-get upgrade# 安装mysql编译时依赖apt-get isntall cmake make bison bzr libncurses5-dev g++ libtinfo5 ncurses-bin libncurses5 libtinfo-dev
# 进入源码目录cd mysql-5.6.27/# 开启screen session 防止断网等造成的免疫中断screen -S mysqlinstall# 执行 cmake 预编译(最少一小时)cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/usr/local/mysql/data/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=/usr/local/mysql/data -DMYSQL_USER=mysql -DWITH_DEBUG=0
关于cmake预编译参数设置参考 这里
make && make install
# 更改所有者cd /usr/local/chown -R mysql.mysql mysql# 创建配置文件cd /usr/local/mysql/support-filescp my-default.cnf /etc/my.cnf# 初始化数据库cd /usr/local/mysql./scripts/mysql_install_db --user=mysql# 安全启动(后台)/usr/local/mysql/bin/mysqld_safe --user=mysql --port=3306 --sock=/usr/local/mysql/data/mysql.sock &# 开机自启动cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqlchkconfig --add mysql
mysql5.6的默认参数设置问题,更改my.cnf,调整以下参数
performance_schema_max_table_instances=600
table_definition_cache=400
table_open_cache=256
这时mysql启动后内存就只占用40--60M内存了
其实树莓派感觉没必要买显示器,因为直接可以安装远程桌面,执行
apt-get install xrdp安装,在Windows下可直接使用远程桌面连接,按Win+R键输入mstsc,再输入树莓派地址和用户名密码 就可以,截图如下: