可以做网站,无锡正规网站建设,建设网站视频教程,借个网站备案号几个月前#xff0c;我将开发系统从 ubuntu 切换到 Deepin#xff0c;当时写过一篇文章《使用国产操作系统作为开发系统》。几个月下来#xff0c;没有感觉有什么不适应#xff0c;Ubuntu 能做的事情#xff0c;在 Deepin 上都能做。而且有 UOS 应用商店的加持#xff0c… 几个月前我将开发系统从 ubuntu 切换到 Deepin当时写过一篇文章《使用国产操作系统作为开发系统》。几个月下来没有感觉有什么不适应Ubuntu 能做的事情在 Deepin 上都能做。而且有 UOS 应用商店的加持很多 Windows/Linux 应用程序可以直接从应用商店安装不需要自己去配置安装所以总体感觉比 Ubuntu 用得更顺手一些。 昨天有个朋友在《统信UOS / Deepin系统任务栏卡死解决方法》这篇文章下留言 我本来想用deepin v23做工作机的结果连安装个tftp服务都要烧脑果断换回Ubuntu 24.04.1了 当时我就回复安装 tftp 不就是一条命令的事吗 没想到打脸了。今天有空在家尝试了一把使用熟知的命令 (base) alexalex-deepin-os:~$ sudo apt install tftpd-hpa
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成
没有可用的软件包 tftpd-hpa但是它被其它的软件包引用了。
这可能意味着这个缺失的软件包可能已被废弃
或者只能在其他发布源中找到E: 软件包 tftpd-hpa 没有可安装候选
(base) alexalex-deepin-os:~$ sudo apt install tftpd
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成
E: 无法定位软件包 tftpd
(base) alexalex-deepin-os:~$ sudo apt install tftp-hpa
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成
E: 无法定位软件包 tftp-hpa
(base) alexalex-deepin-os:~$ sudo apt install tftp
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成
E: 无法定位软件包 tftp Deepin V23 的仓库中确实没有 tftp 相关的包不是一个安装命令就能搞定的事。 但作为一名程序员怎么可能止步如此呢当然是继续找出答案啦。 在开始之前先简单介绍一下 tftp。 TFTPTrivial File Transfer Protocol简单文件传输协议是一种简单的文件传输协议它很轻量。大众可能更熟悉 FTP 或 SFTPTFTP 则是程序员用得比较多比如烧写板子的固件或操作系统。 印象中Debian 的 packages 中有 tftp 的包没理由 Deepin 没有。所以我就去 deepin 的包列表网站去找是否有 deb 包。结果一查看真的有。 但这个包并没有在 Deepin V23 的仓库中因为 Deepin V23 的官方源如下 $ cat /etc/apt/sources.list
## Generated by deepin-installer
deb https://community-packages.deepin.com/beige/ beige main commercial community
#deb-src https://community-packages.deepin.com/beige/ beige main commercial community 为什么 tftp 的包没有放在 Deepin V23 的仓库中我猜想的原因是 Deepin V23 开始支持 arm、龙芯、RISC-V 架构但这个包只 build 出 x86 架构的还没有构建出其它架构的包所以就没有加入到 Deepin 的源中。 如果你只是在 x86 架构的 Deepin 系统上安装 tftp接下来就简单了。 第 1 步安装 tftpd 和 tftp 下载 tftpd-hpa_5.220150808-1b1_amd64.deb、tftp-hpa_5.220150808-1b1_amd64.deb 包双击安装。 安装之后检查 tftp 服务是否启动 (base) alexalex-deepin-os:~$ sudo systemctl status tftpd-hpa.service
请输入密码:
验证成功
● tftpd-hpa.service - LSB: HPAs tftp serverLoaded: loaded (/etc/init.d/tftpd-hpa; generated)Active: active (running) since Sun 2024-10-20 15:24:27 CST; 2min 23s agoDocs: man:systemd-sysv-generator(8)Process: 12333 ExecStart/etc/init.d/tftpd-hpa start (codeexited, status0/SUCCESS)Tasks: 1 (limit: 38286)Memory: 688.0K (peak: 1.7M)CPU: 63msCGroup: /system.slice/tftpd-hpa.service└─12346 /usr/sbin/in.tftpd --listen --user tftp --address 0.0.0.0:69 --secure /srv/tftp10月 20 15:24:27 alex-deepin-os systemd[1]: Starting tftpd-hpa.service - LSB: HPAs tftp server...
10月 20 15:24:27 alex-deepin-os tftpd-hpa[12333]: Starting HPAs tftpd: in.tftpd.
10月 20 15:24:27 alex-deepin-os systemd[1]: Started tftpd-hpa.service - LSB: HPAs tftp server. 第 2 步配置 TFTP 服务器 安装完成后需要配置位于 /etc/default/tftpd-hpa 的 TFTP 服务器主配置文件。 sudo vi /etc/default/tftpd-hpa 在编辑器中修改 TFTP_DIRECTORY 的值指定 tftp 服务器存放文件的目录比如指定为 /var/lib/tftpboot TFTP_USERNAMEtftp
TFTP_DIRECTORY/var/lib/tftpboot
TFTP_ADDRESS0.0.0.0:69
TFTP_OPTIONS--secure 第 3 步创建 tftp 文件目录 配置完成后创建共享目录并设置允许用户访问所需的权限。 sudo mkdir -p /var/lib/tftpboot
sudo chown -R nobody:nogroup /var/lib/tftpboot
sudo chmod -R 777 /var/lib/tftpboot 为了避免权限问题这里给了完全的读写权限。在实际工作中可能只是用作固件下载可以给只读权限这个取决于需求。 然后重启 tftp 服务器 sudo systemctl restart tftpd-hpa 第 4 步测试 tftp 服务 前面安装的 tftp-hpa_5.220150808-1b1_amd64.deb 实际上是 tftp 的客户端。所以可以在命令行中使用 tftp 命令连接到服务器后面跟服务器的 IP 地址 tftp 192.168.3.202 连接成功后显示 tftp 提示符。可以输入 tftp 命令比如 status、get、put 等。 (base) alexalex-deepin-os:~/Downloads$ tftp 192.168.3.202
tftp status
Connected to 192.168.3.202.
Mode: netascii Verbose: off Tracing: off Literal: off
Rexmt-interval: 5 seconds, Max-timeout: 25 seconds 下载文件用 get 命令比如 tftp get tecmint.info
Error code 1: File not found
tftp get 2.png
tftp 上传文件使用 put 命令 tftp put tecmint.txt tftp 设计得相当简单没有很大的提示。如果你在烧写固件中碰到错误可以尝试一下将配置文件中的 TFTP_OPTIONS--secure 改成空试试。 小结 由于 Deepin V23 仓库中没有包含 tftp 相关包所以在安装上会有点小麻烦。但这点小麻烦在程序员眼里不知一提。在下载了安装包后后面的安装配置就相当简单。 Deepin V23 仓库中没有 tftp 的包可能是由于缺少多架构支持加上 tftp 确实比较使用的人很少所以没有包含在官方仓库中。希望在后面的更新中可以包含进来。