目前正在进行Linux相关项目的开发,而我的Linux开发是在Ubuntu(版本20.04
)下进行的,为此需要搭建很多Linux相关的开发环境,方便工作的进行。这里主要是对各种开发环境的搭建做一个总结记录,方便后面查阅,也方便在Linux开发之路上遇到困难的各位同仁。好了,废话不多说,直接罗列各种开发环境的安装步骤等。
FTP
在开发过程中可能会频繁的在 Windows 与 Ubuntu 下进行文件传输,比如在 Windows 下进行代码的编写,然后将编写好的代码传递到 Ubuntu 下进行编译,这时我们可以使用 FTP 服务实现 Windows 与 Ubuntu 之间的文件互传(当然也可以使用Samba)。
FTP服务端(Ubuntu)
- 打开 Ubuntu 的一个终端窗口,然后执行如下命令安装 FTP 服务:
sudo apt-get install vsftpd
- FTP 服务安装完成之后,打开 vsftpd.conf 文件,修改配置,如下:
sudo vi /etc/vsftpd.conf
打开后,修改如下两行:
5. 修改完成之后,保存退出,使用如下命令重启 FTP服务:
sudo /etc/init.d/vsftpd restart
至此,Ubuntu 上的 FTP 的 Server 已经开启。
FTP客户端(Windows)
Windows 端的 FTP 客户端有很多,可以根据自己的爱好选一个即可。我使用的 FTP 客户端是 XFTP。关于FTP客户端的介绍,可以参考这篇文章:https://zhuanlan.zhihu.com/p/301653835。
NFS
在Linux开发时,一般都绕不过网络挂载(NFS),通过 NFS 可以大大提高我们开发调试的效率,为此必须首先在Ubuntu上安装并开启 NFS 服务,使用如下命令安装 NFS 服务。
- 安装 NFS 服务器
sudo apt-get install nfs-kernel-server rpcbind
安装nfs-kernel-server时,apt会自动安装nfs-common和portmap
- 创建 NFS 共享目录
在自己想要设置的路径下创建共享文件夹,例如我的共享文件夹为:
jack-virtual-machine:~/linux_imx6ull/nfs$ pwd
/home/jack/linux_imx6ull/nfs
- 修改共享目录的权限
jack@jack-virtual-machine:~/linux_imx6ull/nfs$ chmod 777 . -R
- 修改配置文件 (/etc/exports)
打开配置文件(sudo vi /etc/exports
),在最后一行添加自己的共享目录,如下:
/home/jack/linux_imx6ull/nfs *(rw,async,no_root_squash)
/home/jack/linux_imx6ull/nfs
:nfs服务端的共享目录,需要通过nfs挂载的文件都放在此目录下即可*
:表示所有网段都可以网段都可以访问(也可以指定具体的IP)rw
:指定挂载共享目录的客户端具有读写权限sync
:资料同步写入内存或者硬盘no_root_squash
:客户机用root访问共享文件夹时,不映射root用户
- 修改配置文件(/etc/default/nfs-kernel-server )
RPCNFSDOPTS="--nfs-version 2,3,4 --debug --syslog"
Ubuntu18.04之后的版本应该是只支持 nfs3 和 nfs4,而uboot中默认使用的是 nfs2,所以为了使uboot的nfs命令正常使用,必须添加上述的一句话,使Ubuntu兼容 2、3、4版本。
- 重启 NFS 服务
sudo /etc/init.d/nfs-kernel-server restart
- 验证 NFS 是否配置成功
$ sudo mount -t nfs 192.168.100.113:/home/jack/linux_imx6ull/nfs /mnt
$ showmount -e
Export list for jack-virtual-machine:
/home/jack/linux_imx6ull/nfs *
$ sudo umount /mnt
-
sudo mount -t nfs 192.168.100.113:/home/jack/linux_imx6ull/nfs /mnt
- 192.168.100.113:共享 NFS 目录的主机地址(若为本机挂载,可以写为 localhost)
- /home/jack/linux_imx6ull/nfs:共享 NFS 的路径
- /mnt:挂载点(可以任意指定)
-
showmount -e:显示配置的共享目录(该命令其实是读取了 /etc/exports 文件进行解析的)
-
sudo umount /mnt:取消挂载
SSH
开启 SSH 服务之后,我们可以在Windows下使用终端软件登录到 Ubuntu,比如使用Xshell 等,在 Ubuntu 下使用如下命令开启 SSH 服务。
4. 通过如下命令查询是否已安装 SSH
通过如下命令查询是否已安装 SSH,若出现openssh-client和openss-server,则说明系统已经安装 OpenSSH。
$ dpkg --list | grep ssh
ii libssh-4:amd64 0.9.3-2ubuntu2.3 amd64 tiny C SSH library (OpenSSL flavor)
ii openssh-client 1:8.2p1-4ubuntu0.9 amd64 secure shell (SSH) client, for secure access to remote machines
ii openssh-server 1:8.2p1-4ubuntu0.9 amd64 secure shell (SSH) server, for secure access from remote machines
ii openssh-sftp-server 1:8.2p1-4ubuntu0.9 amd64 secure shell (SSH) sftp server module, for SFTP access from remote machines
ii ssh-import-id 5.10-0ubuntu1 all securely retrieve an SSH public key and install it locally
- 安装 SSH
在Ubuntu下可以使用如下命令安装SSH:
sudo apt-get install ssh
- 查看SSH服务端是否已启动
$ ps -auxf | grep ssh
root 891 0.0 0.1 12192 7148 ? Ss 9月21 0:00 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups
root 20934 0.0 0.2 14004 8848 ? Ss 9月21 0:00 \_ sshd: jack [priv]
jack 21012 0.0 0.1 14004 6044 ? S 9月21 0:00 \_ sshd: jack@notty
jack 21013 0.0 0.1 5892 4104 ? Ss 9月21 0:00 \_ /usr/lib/openssh/sftp-server
jack 1609 0.0 0.0 6040 100 ? Ss 9月21 0:00 \_ /usr/bin/ssh-agent /usr/bin/im-launch env GNOME_SHELL_SESSION_MODE=ubuntu /usr/bin/gnome-session --systemd --session=ubuntu
jack 23312 0.0 0.0 17672 716 pts/1 S+ 13:49 0:00 | \_ grep --color=auto ssh
交叉编译工具链
- 在Ubuntu上创建一个目录,用于存放“交叉编译工具链”,我创建的目录为:
/usr/local/arm
; - 将交叉编译工具链复制到目录(/usr/local/arm)中,我的工具链为:gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz;
- 解压
sudo tar -vxf gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz
解压完成后会生成一个名为“gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf”的文件夹,该文件夹下就是我们的交叉编译工具链。
- 修改环境变量
//打开配置文件
sudo vi /etc/profile
// 在配置文件中添加如下一行内容
export PATH=$PATH:/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin
- 重启Ubuntu系统,交叉编译工具链就安装成功了。
- 安装其它相关库
sudo apt-get install lsb-core lib32stdc++6
- 查询版本,验证是否安装成功
arm-linux-gnueabihf-gcc -v
samba
下面是 samba 服务器环境的搭建过程:
- sudo apt-get update
sudo apt-get update
- 安装 samba 服务器
sudo apt-get install samba samba-common
- 创建共享目录,并设置共享目录的权限
sudo mkdir samba // 创建完成之后,我的目录为 /home/jack/linux_imx6ull/samba
sudo chmod 777 . -R // 将samba目录的权限修改为 777
- 修改配置文件
打开配置文件(vi /etc/samba/smb.conf
),并进行如下修改:
[myshare]
comment=my share directory
path=/home/jack/linux_imx6ull/samba
browseable=yes
public=yes
writable=yes
- 设置密码
$ sudo smbpasswd -a jack // 添加一个用户,jack
New SMB password: // 创建一个密码
Retype new SMB password: // 再次确认密码
Added user jack. // jack用户添加成功
- 重启samba服务器
sudo service smbd restart
- 在Windows上执行win+R,输入Ubuntu的IP地址,如我的IP是192.168.100.113