Linux系统开发环境常见问题

一、TFTP搭建及使用

1 TFTP 服务器介绍

TFTP ( Trivial File Transfer Protocol )即简单文件传输协议,是 TCP/IP 协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。端口号为69。适用于频繁修改内容的场景。

2 TFTP特点
  • tftp 使用客户服务器方式和使用 UDP 数据报,因此tftp 需要有自己的差错改正措施。
  • tftp 支持小文件传输。
  • tftp 没有一个庞大的命令集,没有列目录的功能,也不能对用户进行身份鉴别。
3 环境搭建及使用

(1) 在线安装TFTP服务器和客户端(需要保证Ubuntu网络通畅)。

sudo apt-get install tftpd-hpa tftp-hpa

(2) 修改配置文件

sudo vi /etc/default/tftpd-hpa

#配置文件路径
#/etc/default/tftpd-hpa
#用户名
TFTP_USERNAME="tftp"
#你的tftp服务器所在的路径
TFTP_DIRECTORY="/tftpboot"
#tftp服务器的网关和端口号
TFTP_ADDRESS="0.0.0.0:69"
#tftp 文件服务器的可供选择的权限, get file\ put file \ list file
TFTP_OPTIONS="-l -c -s"

(3) 创建tftp服务器的目录

#和配置文件的名字和路径必须保持一致
sudo mkdir /tftpboot

#修改tftp服务器文件夹的权限
chmod a + w tftpboot

(4)运行下面的命令,重启TFTP服务器。

sudo service tftpd-hpa restart

(5) 运行下面的命令,新建一个文件,并将其移动到TFTP服务器的默认上传下载目录,用于测试tftp服务器是否成功。

echo "tftp test" > test.txt
sudo mv test.txt /tftpboot/

(6)运行下面的命令,从服务器上下载test.txt文件,并退出tftp程序,localhost是本地地址。

tftp localhost
tftp> get test.txt
tftp> q

(7)运行下面的命令,确认下载的文件内容正确。

cat test.txt
tftp test

(8)如果TFTP的下载不成功,运行下面的命令卸载软件(连同配置信息一起),然后再重新安装,最后再重启TFTP服务器。

sudo apt-get remove --purge tftpd-hpa tftp-hpa
sudo apt-get install tftpd-hpa tftp-hpa
sudo service tftpd-hpa restart

二、NFS服务器搭建及使用

1 NFS 服务器介绍

nfs ( Network File System )即网络文件系统,其基于 UDP/IP使用 nfs 能够在不同计算机之间通过网络进行文件共享,能使使用者访问网络上其它计算机中的文件就像在访问自己的计算机一样。

2 NFS服务器特点
  • 提供透明文件访问以及文件传输;
  • 容易扩充新的资源或软件,不需要改变现有的工作环境;
  • 高性能,可灵活配置。
3 环境搭建及使用

(1)运行下面的命令安装NFS服务器(需要保持网络通畅)。

sudo apt-get install nfs-kernel-server

(2)运行下面的命令,创建一个目录,并在该文件下创建一个文件,用于测试nfs。

sudo mkdir /nfs
mkdir /nfs/rootfs
echo "nfs test" > /nfs/rootfs/test.txt

(3)编辑/etc/exports配置文件。

sudo vim /etc/exports

添加如下内容:

/nfs/rootfs *(rw,sync,no_subtree_check,no_root_squash)

其中:
  a. /nfs/rootfs:共享的目录;
  b. *:不限定客户端;
  c. rw:共享目录可读可写;
  d. sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性;
  e. no_subtree_check :即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率;
  f. no_root_squash:来访的root用户保持root帐号权限;

(4)Ubuntu17.10及以后版本需要增加以下配置,因为新版Ubuntu只支持nfs 3和nfs 4,而uboot默认使用nfs2;

sudo vi /etc/default/nfs-kernel-server
RPCNFSDOPTS="--nfs-version 2,3,4 --debug --syslog"

(5)使用下面的命令,重启NFS服务。

sudo service nfs-kernel-server restart

(6)使用下面的命令,将共享目录挂在到/mnt目录下,并修文件。

sudo mount -t nfs localhost:/nfs/rootfs /mnt
vim /mnt/test.txt

(7)使用下面的命令,查看原来的文件已经被修改。

cat /nfs/rootfs/test.txt

(8)使用下面的命令取消挂载。

sudo umount /mnt

三、环境问题

问题: libncurses5-dev : 依赖: libtinfo6 (= 6.2-0ubuntu2) 但是 6.3-2 正要被安装依赖: libncurses-dev (= 6.2-0ubuntu2)
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系

#先安装
sudo apt install aptitude
sudo aptitude install libncurses-dev

点击n采取降级方案,正常的话便可以安装了
sudo apt-get install libncurses5-dev

安装桌面:

#安装GNOME桌面
sudo apt update
sudo apt install ubuntu-desktop

#安装显示管理器:
sudo apt install lightdm
#在安装过程中,它会要求你选择显示管理器是gdm3还是lightdm,这里选择lightdm。

安装完成后重启即可; 

无法共享复制/粘贴或Install VMware Tools菜单变灰

正常安装完系统之后会自动安装了VMware Tools,但有时候发现安装失败或者安装菜单变灰,可以先卸载,然后在线安装open-vm-tools

sudo apt-get autoremove open-vm-tools
sudo apt-get install open-vm-tools open-vm-tools-desktop
sudo reboot

最后一定要记得重启服务器才能生效。

Ubuntu18.04.6安装时报错;

“Your installation CD-couldn't be mounted. This probably means that the CD-ROM was not in the drive. If so you can insert it and try again Retry mounting the CD-ROM?”

解决方案:

  1. 将ubuntu安装镜像iso文件拷贝到u盘中(当前做系统的u盘即可)
  2. 在报错的地方,返回选择进入命令行
  3. 将u盘挂载上,由于没有fdisk命令,可以使用list-devices disks来列出硬盘设备。比如我的有sda主硬盘(RAID0虚拟出来的)和sdbu盘。通过mount /dev/sdb /mnt将优盘挂载到/mnt目录下。
  4. 挂载镜像文件到/cdrom,执行mount-t iso9660-o loop /mnt/ubuntu16.04.iso /cdrom
  5. cd到cdrom下,确认里面文件,证明cdrom已经挂载成功。否则尝试umount以后重新mount
  6. exit返回安装步骤,并在询问是否Retry中选择no,则进入安装步骤选择列表,重新进入detected and mount cdrom步骤即可;

安装man手册:

# 安装man手册
sudo apt-get install manpages
sudo apt-get install manpages-dev
sudo apt-get install manpages-posix
sudo apt-get install manpages-posix-dev

# 安装gcc
sudo apt update
sudo apt install build-essential

设置时区:

# 输入以下命令,以获取当前的时区设置:
timedatectl

# 修改时区:输入以下命令来更改时区,将 YOUR_TIMEZONE 替换为你要设置的时区ID:
sudo timedatectl set-timezone YOUR_TIMEZONE

# 例如,如果你要将时区设置为上海时间,可以使用:
sudo timedatectl set-timezone Asia/Shanghai


#ssh复制本地到远端
rsync -r source_dir username@ip_address:/home/username/target_dir

修改vim备注颜色:~/vimrc文件修改或加入如下文件

highlight Comment ctermfg=cyan
highlight Comment guifg=cyan

white	black	yellow	cyan    magenta	blue	grey	green	red
白		黑		黄		青		品红	蓝		灰		绿		红

修改文件夹颜色:

# color term like 'ls'
export CLICOLOR='Yes'
# custom shell prompt
autoload -U colors && colors
PROMPT="%{$fg[green]%}%n@%m%{$reset_color%} %{$fg[blue]%}%1~%{$reset_color%} %# "

# self defined aliases
alias ll='ls -l'
alias la='ls -a'

四、安装SQLite3

  • 下载SQLite3二进制文件:可以从SQLite网站的下载页面(SQLite Download Page)下载适用于相应系统的SQLite3二进制文件
  • 安装SQLite3二进制文件:对于Linux,您需要使用包管理器来安装SQLite3软件包
sudo apt-get update
sudo apt-get install sqlite3
  • 验证SQLite3是否已正确安装:
  • 在命令行终端上输入sqlite3命令并回车;
  • 如果成功安装,则会进入SQLite3的命令行客户端;
  • 可选地,安装SQLite3 GUI工具:如果您需要一个GUI工具来管理SQLite3数据库,则可以使用一些第三方工具;

注意:安装sqlite3和安装sqlite3依赖库不是一个概念,安装sqlite3依赖库,需要执行

sudo apt-get install libsqlite3-dev

五、清理垃圾

在Ubuntu上清理缓存和垃圾文件可以帮助释放磁盘空间并提高系统性能。以下是一些常见的清理任务:

1. 清理APT软件包缓存:

APT(Advanced Package Tool)是Ubuntu包管理系统的一部分,它会在本地存储已下载的软件包。您可以使用以下命令清理APT缓存:

sudo apt-get clean    # 这会删除已下载的软件包文件,但保留已安装的软件包;

2. 自动清理无用的依赖项:系统中可能会留下一些无用的依赖项;

sudo apt-get autoremove                # 自动清理这些依赖项

3. 清理系统日志:系统日志文件可能会占用大量磁盘空间,可以通过以下命令清理旧的系统日志;

sudo journalctl --vacuum-size=50M       # –vacuum-size=50M表示仅保留50兆字节的日志数据

4. 卸载不用的预置APP:

# 卸载libreoffices
sudo apt-get remove libreoffice-common

# 删除Amazon广告图标
sudo rm -f /usr/share/applications/com.canonical.launcher.amazon.desktop
sudo rm -f /usr/share/applications/ubuntu-amazon-default.desktop

# 删除多余的软件
sudo apt-get remove thunderbird totem rhythmbox empathy brasero simple-scan gnome-mahjongg aisleriot gnome-mines cheese gnome-orca webbrowser-app gnome-sudoku landscape-client-ui-install transmission-common

六、Ubuntu20.0以后的版本设置静态IP

1、查看当前主机网络信息

ip a

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: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 1000
    link/ether 00:0c:29:f6:d2:df brd ff:ff:ff:ff:ff:ff
    inet 192.168.10.82/24 brd 192.168.10.255 scope global dynamic ens33
       valid_lft 6906sec preferred_lft 6906sec
    inet6 fe80::20c:29ff:fef6:d2df/64 scope link 
       valid_lft forever preferred_lft forever

网卡为ens33,当前的IP为192.168.10.82;子网掩码为24。 基本信息查到,可以进行配置文件的修改了。

2、修改配置文件

cd /etc/netplan  		# 进入配置文件所在目录

ls    # 查看目录下的内容
01-network-manager-all.yaml

sudo cp 01-network-manager-all.yaml 01-network-manager-all.yaml-before    # 备份配置

sudo vim 01-network-manager-all.yaml  # 打开配置文件进行修改
​
# This is the network config written by 'subiquity'
network:
  ethernets:
    ens33:
      addresses: [192.168.10.128/24]      # 设置静态IP地址和掩码
      gateway4: 192.168.10.1	            # 设置网关地址
      dhcp4: true
      nameservers:
        addresses: [0.0.0.0, 8.8.8.8]		  # 设置主、备DNS
  version: 2

3、生效配置文件并测试网络状态

sudo netplan apply    # 使配置生效
ip a  # 确认配置

ping www.baidu.com		# 网络测试

七、更换清华软件源的方法

将 Ubuntu 的软件源配置文件(路径/etc/apt/sources.list)中的数据源替换为清华的镜像地址。

清华的帮助文档给出了两个方案:

1)直接替换掉配置文件:通过命令替换掉文件中的域名信息,因为/etc/apt下的文件都是只读的,通过 vim 修改或者替换都挺麻烦的。

2)执行以下命令:

sudo sed -i "s@http://.*archive.ubuntu.com@https://mirrors.tuna.tsinghua.edu.cn@g" /etc/apt/sources.list
sudo sed -i "s@http://.*security.ubuntu.com@https://mirrors.tuna.tsinghua.edu.cn@g" /etc/apt/sources.list

注意踩坑!sources.list文件中配置的信息,和 Ubuntu 的版本以及架构有关。如果你是 32/64 位 x86 架构处理器,直接执行就好。

如果是 ARM 架构(比如用 M 系列芯片的 MacBook 虚拟机安装的 Ubuntu),官方源为ports.ubuntu.com,因此需要执行以下命令:

sudo sed -i "s@http://ports.ubuntu.com@https://mirrors.tuna.tsinghua.edu.cn@g" /etc/apt/sources.list

最后更新

执行命令sudo apt-get update刷新数据源即可。

八、Ubuntu实际显示内存小于配置内存

Ubuntu server 默认使用LVM进行磁盘管理,安装后只使用了硬盘一部分空间,要充分利用硬盘空间,需要扩展现有的逻辑卷;如果添加新硬盘,需要将其添加到现有的卷组,然后扩展逻辑卷到新硬盘。

1、查看磁盘占用情况

df -h

2、查看现有的卷组

df -h

3、扩展现有的逻辑卷

sudo lvextend -l +100%FREE  /dev/mapper/ubuntu--vg-ubuntu--lv

4、 重新计算逻辑卷大小

sudo resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv

5、再次查看磁盘使用情况

df -h
  • 25
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值