目前正在进行Linux相关项目的开发,而我的Linux开发是在Ubuntu(版本20.04
)下进行的,为此需要搭建很多Linux相关的开发环境,方便工作的进行。这里主要是对各种开发环境的搭建做一个总结记录,方便后面查阅,也方便在Linux开发之路上遇到困难的各位同仁。好了,废话不多说,直接罗列各种开发环境的安装步骤等。
在开发过程中可能会频繁的在 Windows 与 Ubuntu 下进行文件传输,比如在 Windows 下进行代码的编写,然后将编写好的代码传递到 Ubuntu 下进行编译,这时我们可以使用 FTP 服务实现 Windows 与 Ubuntu 之间的文件互传(当然也可以使用Samba)。
sudo apt-get install vsftpd
sudo vi /etc/vsftpd.conf
打开后,修改如下两行:
5. 修改完成之后,保存退出,使用如下命令重启 FTP服务:
sudo /etc/init.d/vsftpd restart
至此,Ubuntu 上的 FTP 的 Server 已经开启。
Windows 端的 FTP 客户端有很多,可以根据自己的爱好选一个即可。我使用的 FTP 客户端是 XFTP。关于FTP客户端的介绍,可以参考这篇文章:https://zhuanlan.zhihu.com/p/301653835。
在Linux开发时,一般都绕不过网络挂载(NFS),通过 NFS 可以大大提高我们开发调试的效率,为此必须首先在Ubuntu上安装并开启 NFS 服务,使用如下命令安装 NFS 服务。
sudo apt-get install nfs-kernel-server rpcbind
安装nfs-kernel-server时,apt会自动安装nfs-common和portmap
jack-virtual-machine:~/linux_imx6ull/nfs$ pwd
/home/jack/linux_imx6ull/nfs
jack@jack-virtual-machine:~/linux_imx6ull/nfs$ chmod 777 . -R
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用户RPCNFSDOPTS="--nfs-version 2,3,4 --debug --syslog"
Ubuntu18.04之后的版本应该是只支持 nfs3 和 nfs4,而uboot中默认使用的是 nfs2,所以为了使uboot的nfs命令正常使用,必须添加上述的一句话,使Ubuntu兼容 2、3、4版本。
sudo /etc/init.d/nfs-kernel-server restart
$ 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
showmount -e:显示配置的共享目录(该命令其实是读取了 /etc/exports 文件进行解析的)
sudo umount /mnt:取消挂载
开启 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
sudo apt-get install 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
/usr/local/arm
;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
sudo apt-get install lsb-core lib32stdc++6
arm-linux-gnueabihf-gcc -v
下面是 samba 服务器环境的搭建过程:
sudo apt-get update
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用户添加成功
sudo service smbd restart