开发环境搭建
分享一下在windows笔记本上进行Linux开发的一些准备工作
Linux环境
做Linux开发必然需要在本机上搭建Linux环境,这里不考虑直接安装Linux物理机; 主要是考虑运行的流畅度,所以选择了
VirtualBox + Debian
使用VirtualBox
安装debian
虚拟机, 在安装时不安装桌面和xfce
, 仅安装命令行版本即可, 使用ssh访问
Linux网络
如果使用虚拟机的话, 必然要考虑网络的问题, 包括主机访问虚拟机,虚拟机访问外网, 所以采用双网卡的方式
双网络: virtualbox
采用双网卡的方式Host only
+Bridged
两个网卡.
主机模式网卡: 用于和物理机通信在debian
可以设置为192.168.56.xx
网段的静态地址, 物理机可以固定使用该网址访问虚拟机.
桥接模式网卡: 用于访问外网, 使用dhcp
模式获取地址
网络地址实例
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 08:00:27:8f:31:49 brd ff:ff:ff:ff:ff:ff
inet 192.168.56.101/24 brd 192.168.56.255 scope global enp0s3
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fe8f:3149/64 scope link
valid_lft forever preferred_lft forever
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 08:00:27:90:e6:b6 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.102/24 brd 192.168.1.255 scope global dynamic enp0s8
valid_lft 7170sec preferred_lft 7170sec
inet6 fe80::a00:27ff:fe90:e6b6/64 scope link
valid_lft forever preferred_lft forever
网络文件配置:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto enp0s8
iface enp0s8 inet dhcp
auto enp0s3
iface enp0s3 inet static
address 192.168.56.101
netmask 255.255.255.0
# gateway 192.168.56.1
enp0s3就是仅主机模式的网卡, enp0s8则是桥接模式的网卡
debian网络配置文件地址: /etc/network/interfaces
Linux启动
virualbox
是可以采用后台启动的方式的, 就是说完全不用打开virtualbox
的窗口, 为了方便 我使用了一个ps1
脚本
& 'E:\Program Files\Oracle\VirtualBox\VBoxManage.exe' startvm debian -type headless
sleep 20
ssh admin@192.168.56.101
& 'E:\Program Files\Oracle\VirtualBox\VBoxManage.exe' controlvm debian poweroff
本人并不精通ps1
脚本, 这个脚本写的也比较随意. E:\Program Files\Oracle\VirtualBox\
就是virtualbox
的安装地址
这个脚本的功能就是:
- 1, 后台启动debian;
- 2, ssh链接debian ssh
- 3 断开后关闭debian.
这个脚本本人放在桌面上, 另外本人安装了fluent Terminal
软件, 可以直接在桌面右键打开, 然后直接运行该脚本就可以直接连接到虚拟机上了
SSH工具
免费SSH工具: Xshell、MobaXterm、putty、finalshell等
付费SSH工具: secureCRT、XShell商业版本等
命令行工具+SSH: fluent Terminal、terminus、cmder等
共享文件夹
virtualbox
提供了共享文件夹的选项, 不过虚拟机上额外需要安装VirtualBox的增强文件, 这个请自行搜索吧
注意, 安装增强功能之前记得执行安装"apt install build-essential;apt install linux-headers-`uname -r`" 否则即使成功安装了增强功能, 可能也没办法挂载!
此外我添加了开启启动脚本, 每次启动自行加载共享文件夹
localhost:~$ systemctl status rc-local
● rc-local.service - /etc/rc.local Compatibility
Loaded: loaded (/lib/systemd/system/rc-local.service; enabled-runtime; vendor preset: enab Drop-In: /usr/lib/systemd/system/rc-local.service.d
└─debian.conf
Active: active (exited) since Sat 2019-09-28 16:01:43 CST; 8min ago
Docs: man:systemd-rc-local-generator(8)
Process: 408 ExecStart=/etc/rc.local start (code=exited, status=0/SUCCESS)
这是rc.local
服务, debian
是默认关闭的并且也没有/etc/rc.local文件
不过
#!/bin/sh
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
mount -t vboxsf winsf /home/ad/winsf
exit 0
我们可以自己添加一个/etc/rc.local
脚本, 添加可执行权限, 然后systemctl start rc-local
即可, 这样开机就可以自行运行该脚本挂载共享文件夹
额外一些工具推荐
包管理工具
scoop
我主要用于安装git
,gcc
,make
,lua
等, 我仅用来管理开发相关软件, 非常好用
集成IDE
因为不管什么都需要加载虚拟机然后运行也很麻烦, 于是我使用了
CLion
对于一些程序, 我也会直接在windows上直接编译直接运行, 且可以学习一下cmake
编辑器
编辑代码和markdown我都是使用的sublime
, typora
可以用来编辑markdown, 但是文件过大就会卡顿
git工具
sourcetree: 免费, 页面也还可以
gitkraken: 免费, 页面也还可以; 不过使用的是electron, 程序比较大
此外: smartgit、tortoisegit