3天学完linux基础-----第二天
2.1.22 软件安装介绍学软件开发各种台的软件熟练安装是必须要熟练掌握。大家都知道Windows下安装软件时只需用鼠标双击软件的安装程序或者用Zip等解压缩软件解压缩即可安装在android或者apple中安装软件时只需要在手机应用商店点击安装即可。而在Linux下安装软件难度高于Windows、Android、ios和windows phone下软件安装。下面我就详细讲解Linux下如何安装软件。Linux下软件的安装大概可以分为如下几种二进制程序的安装**(最简单安装)**Rpm程序安装**(后缀名为*.rpm)**Yum在线安装**(本质也是rpm安装它只是rpm的一种安装方式而已)**源码安装2.1.23 二进制安装Linux下二进制格式的软件是指事先已经在各种平台编译安装好相关软件然后压缩打包在安装时只需解压或者执行安装可执行文件即可。这种软件发行格式类似与windows系统这样做的原因是保护源代码程序不对外泄露保护知识产权。二进制软件包的优点是安装简单、容易缺点是缺乏灵活性相应的软件包执行在对应平台下安装离开这个环境软件就无法运行。二进制软件包提供了很多类型的打包方式最常见的就是我们上节讲到的RPM格式的包还有以“.tar.gz、.tgz、*.bz2“等形式的二进制软件包最后还有一个就是提供安装程序进行安装的二进制软件包。下面分别介绍1.1安装**“*.tar.gz****、*****.bz2”**二进制软件包这种格式的软件包安装其实就是简单的解压过程根据不同的软件打包格式我们用相应的解压命令解压即可。对于*.tar.gz软件格式解压tar –zxvf xxxxxx.tar.gz对于*.bz2软件格式解压 tar -jxvf xxxxxx.tar.gz这类软件的卸载对于解压后只有单一目录的软件可以直接删除对应软件目录即可如果解压后文件分散在几个目录中需要一一手动删0除目录。例如我们常用的应用服务器容器tomcat软件就是基于这种打包压缩格式发行的。我们只需下载后解压即可完成安装如果需要卸载直接删除对应的tomcat目录即可。1.2提供安装程序的软件包这种软件包都提供了安装脚本或者安装向导程序只需在下载此类软件包后解压然后进入安装目录找到类似的setup、install、install.sh之类的可执行文件运行即可然后根据提示比如安装路径参数设置等等进行相应的设置接着安装就自动完成。这类软件的卸载也提供了相应的卸载脚本或者卸载向导根据提示即可完成软件卸载。例如经常使用的sun jdk就是这种安装方式从网络下载下来的jdk是个二进制可执行文件首先设置文件的可执行权限例如chmod 755 jdk1.6.0_07.bin权限操作本书后面会有详细讲述 然后运行软件也即是./ jdk1.6.0_07.bin即可完成安装。安装完成会在当前目录产生一个对应的jdk程序目录。2.1.24 rpm安装RPM****软件包管理RPM软件包也称为二进制软件包RPM是RedHat Package ManagerRedHat软件包管理工具的缩写这一文件格式名称虽然打上了RedHat的标志但是其原始设计理念是开放式的现在包括RedHat、CentOS、SUSE等Linux的发行版本都有采用可以算是公认的行业标准了。RPM文件在Linux系统中的安装最为简便RPM****命令使用rpm的常用参数i安装应用程序installvh显示安装进度verbose hashU升级软件包updateqa: 显示所有已安装软件包query alle卸载应用程序erase注意如果其它软件包有依赖关系卸载时会产生提示信息可使用–nodeps强行卸载。查询所有安装的rpm包: # rpm –qa查询mysql相关的包 # rpm –qa | grep mysql安装rpm -ivh jdk.rpm卸载 rpm –e mysql*强行卸载rpm –e mysql* --nodeps图形化界面手动挂载2.1.25 yum日常操作yellowdog updater modified软件包管理工具应用yum的好处**?*1,自动解决软件包依赖关系2,方便的软件包升级查询yum list 查询所有可用软件包列表yum search 关键字 搜索服务器上所有和关键字相关的包可以通过yum info 关键字 来查找包名安装yum -y install包名-y 自动回答yes升级yum -y update包名注意****如果不加包名就升级所有的包括内核。必须加包名升级单个软件包慎用升级所有的检测升级 yum check-update卸载yum -y remove 包名帮助yum --help、man yumyum clean all 清除缓存和旧的包yum repolist 查看当前可用的yum源yum deplist httpd 列出一个包所有依赖的包2.1.26 本地yum源安装#cat /etc/yum.repos.d/CentOS-Base.repo[base]nameCentOS-$releasever - Basemirrorlisthttp://mirrorlist.centos.org/?releaseKaTeX parse error: Expected EOF, got at position 11: releasever̲archbasearchrepoos#baseurlhttp://mirror.centos.org/centos/releasever/os/releasever/os/releasever/os/basearch/gpgcheck1gpgkeyfile:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6解释[base] 容器名称一定要放在[]中name 容器说明这个可以自己随便写mirrorlist 镜像站点这个可以注释掉baseurl yum源服务器的地址。默认是CentOS官方的yum源服务器enabled 此容器是否生效如果不写或写enable1都是生效写成enable0就是不生效gpgcheck 如果是1是指RPM的数字证书生效如果是0则不生效pggkey 数字证书的公匙文件保存位置不用修改挂载光盘# mkdir /mnt/cdrom##命令格式mount [-t vfstype] [-o options] device dir 其中 #1.-t vfstype 指定文件系统的类型通常不必指定。mount 会自动选择正确的类型。常用类型有 光盘或光盘镜像iso9660 DOS fat16文件系统msdos Windows 9x fat32文件系统vfat Windows NT ntfs文件系统ntfs Mount Windows文件网络共享smbfs UNIX(LINUX) 文件网络共享nfs #2.-o options 主要用来描述设备或档案的挂接方式。常用的参数有 loop用来把一个文件当成硬盘分区挂接上系统 ro采用只读方式挂接设备 rw采用读写方式挂接设备 iocharset指定访问文件系统所用字符集 #3.device 要挂接(mount)的设备。 #4.dir设备在系统上的挂接点(mount point)。 ##将镜像文件挂载在/mnt/cdrom下 mkdir /mnt/dvd #在根目录下的mnt目录下创建目录cdrom mount -t iso9660 -o loop /dev/cdrom /mnt/cdrom ##挂载 umount /mnt/dvd ##卸载2**让网络yum源文件失效**cd /etc/yum.repos.d/rename .repo .repo.bak * #重命名所有的.repo文件cp CentOS-Media.repo.bak CentOS-Media.repo #配置一个.repo文件3**修改光盘yum源文件**​vi CentOS-Media.repo[c6-media]nameCentOS-$releasever - Mediabaseurlfile:///mnt/cdrom#这里的地址为自己光盘挂载地址并把不存在的地址注释掉在行首注释# file:///media/cdrom/# file:///media/cdrecorder/gpgcheck1enabled1 #把原来的0改为1让这个yum源配资文件生效gpgkeyfile:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6可使用 yum repolist 查看 当前可用yum源yum clean allyum repolist2.1.27 源码编译安装由于linux操作系统开放源代码因而在其上安装的软件大部分也都是开源软件例如apache、tomcat、php等软件。开源软件基本都提供源码下载源码安装的方式源码安装的优点是1、用户可以自己定制软件功能安装需要的模块不需要的功能可以不用安装。2、用户还可以自己选择安装路径方便管理。3、卸载软件也很方便只需删除对应的安装目录即可。4、能最大程度和服务器平台融合效率稍微比其他方式高。5、没有windows所谓的注册表之说。源码安装的缺点是1、安装较为繁琐需要自己配置2、安装较为耗时需要自己编译源码3、安装较为容易出错出错也难以解决源码安装软件一般有以下几个步骤组成下载解压源码(查阅README)、分析安装平台环境configure makefile、编译安装软件make make install。下面我们分别介绍。1下载解压源码linux下软件的源码一般都是C或者C语言编写的并且都会在软件的官方网站上提供源码包下载例如apache开源项目的官方网站为http://www.apache.org此外在网上的很多开源社区一般也提供一些常用软件的源码下载源码都打包成压缩文件常见的源码打包压缩格式有“.tar.gz”、“.tar.baz2”等。我们可以从网站上首先下载源码文件然后在传到所在的linux系统下如果你的linux系统处于联网状态下也可以直接在系统内通过wget之类的下载命令将源码包直接下载到linux系统下。下载完成把相应的软件解包即可针对下载软件包的不同使用不同的方法进行解压解压完毕后进入解压生成的目录中在这个目录下一般都存在一个REDAME文件这个文本文件非常重要它详细的介绍了这个软件所能完成的功能、授权许可、安装需求、安装注意事项、安装方式等等由于linux各个版本的差异以及安装环境的不同软件的安装方式也不尽相同所以在安装软件前一定要事先阅读这个README文件确保安装的正确性。2分析安装平台环境在软件包解压完毕之后我们进入源码目录一般都会存在configure和README这么两个文件README就是上面我们讲到的是对软件的介绍和安装说明linux下软件的安装受到操作系统安装环境的影响比如某些软件在安装或者运行过程中需要调用操作系统本身的库文件或者需要运行系统的某个工具等等但是系统中不存在这个库文件或者这个工具没有安装那么安装或者运行软件就会失败。为了避免这个问题的出现在安装软件的时候就需要分析操作系统环境检测当前系统是否拥有安装软件所需的所有文件和工具如果系统缺少某个文件就给出提示直到满足软件的所有需求为止。这个就是configure文件的功能configure文件一般是个可执行文件可以在当前目录下直接输入“./configure”进行软件安装的环境测试如果提示缺少某些安装包就需要进行安装直到测试通过。通常的源码安装都需要GCC或者CC编译器这些编译器一般在安装系统时定制安装包中的开发工具选项下其实这也是我们在第二章安装linux系统中要求选择开发工具包的原因所在。此外在执行configure分析软件需求时还可以在“./configure”后面加上软件的安装路径以及安装所需的模块等等一些选项来定制用户需要的软件功能。3编译安装软件在验证软件安装环境后正式进入软件的编译步骤在进行编译前首先了解下关于编译的一些基础知识。在linux系统下make是我们经常用到的编译命令无论是安装软件还是项目开发都会经常用到编译安装命令也就是make和make install对于一个包含很多源文件的应用程序使用make和makefile工具可以简单快速的解决各个源文件之间复杂的依赖关系同时make工具还可以自动完成所有源码文件的编译工作并且可以只对上次编译后修改过的文件进行增量编译因此熟练掌握了make和makefile工具之后源码安装软件就变的像windows下安装软件一样简单。Makefile****文件make工具最主要的功能就是通过makefile文件来实现的makefile文件是按照某种语法来进行编写的文件中定义了各个源文件之间的依赖关系并说明了如何编译源文件并生成可执行文件它通过描述各个源程序之间的关系让make工具自动完成编译工作。在linux系统下习惯用Makefile替代makefile文件我们在执行configure通过后就会在当前目录下生成这个文件一般情况下在命令行输入make时make命令会默认去寻找当前目录下的Makefile文件如果我们用其它文件作为makefile就要在make命令选项后指定makefile文件例如我们设定编译规则文件为make_file就需要使用以下命令指定[rootWEBServer ~]#make -f make_file下面我们通过举例了解下Makefile的编写原则和内容。例如有一个test程序有三个源文件file1.c、file2.c、file3.c以及库文件LS编译生成这三个源文件还分别包含了自己的头文件1.h、2.h、3.h。通常C编译器将会输出三个目标文件file1.o、file2.o、file3.o。假定file1.c和file3.c都要声明用到一个apcs的文件但是file2.c不用也就是在file1.c和file3.c文件中都有类似“#include “apcs””的声明。下面这段代码就是对test程序的描述1:#It is a example for describing makefile2:test: file1.o file2.o file3.o3:cc file1.o file2.o file3.o -LS -o test4:file1.o: file1.c 1.h apcs5:gcc -c file1.c6:file3.o: file3.c 3.h apcs7:gcc -c file3.c8:file2.o: file2.c c.h9:gcc -c file2.c这个描述文档其实就是一个makefile文件第一行为注释行第二行指定test程序有file1.o、file2.o、file3.o链接生成第三行描述了如何从test所依赖的文件建立可执行文件接下来的第四、六、八行定义了三个目标文件和它们依赖的“.c”、“.h”和“apcs”文件。剩下的第五、七、九行定义了如何从目标依赖的文件生成可执行文件。在了解Makefile文件结构后我们就可以控制编译的选项定制自己所需的软件功能。接下来我们只需在命令行输入make命令即可进入编译阶段根据软件源程序的大小和系统的硬件配置编译时间不定编译完毕会在当前目录以及子目录下生成相应的可执行文件接下来就进入最后的安装软件阶段在命令行输入make install命令开始安装软件安装进程会首先创建安装目录如果我们没有指定安装的目录安装程序默认会安装在系统的/usr/local目录下创建安装目录然后将相应的文件和可执行程序从源码目录拷贝到安装目录下这样安装就完毕了。2.1.28 克隆安装minimal版本虚拟机(自行安装 )克隆后所需要进行的操作1.eth0删掉 ,eth1改成eth0vim /etc/udev/rules.d/70-persistent-net.rules2.虚拟机改ip地址mac地址,删除uuid 或者 将机器重启也可以vim /etc/sysconfig/network-scripts/ifcfg-eth0 用复制的硬件地址替换掉ifcfg-eth0中的硬件地址 删除掉UUID那一行或者将uuid中的数字或字母改变一个##如果删除了UUID那一行所有配置完成后要重新启动机器3.改主机名和映射文件##改主机名hostname主机名 vim /etc/sysconfig/network##改ip映射vim /etc/hosts4.克隆后,修改了eth0的ip地址,但是ipconfig后,ip没有变化方法:到network-scripts下,将ifcfg-eh0删掉,重启网络5. 使用nat模式实现两台虚拟机局域网通讯1.更改主机名临时永久2.检查网卡是否启动3.关闭NetworkManager网络管理服务4.关闭防火墙5.选择nat模式6.查看vmnet8网关7.更改虚拟机ip地址网关DNS8.更改主机vmnet8的ip地址网关DNS为了使用远程连接工具连接虚拟机9.虚拟机互相ping进行测试7. 操作新linux系统流程1.更改主机名临时永久2.检查网卡是否启动3.关闭NetworkManager网络管理服务4.关闭防火墙5.更改ip地址6.更改主机名称和主机映射7.使用连接工具xshell进行连接8.如果出现问题按照以上流程检查2.1.30 scp命令集群模式下各节点之间如何方便的拷贝文件命令格式scp file 远程用户名远程服务器IP:~/ 注意冒号和目录之间不能有空格如果拷贝目录需要加-r 选项。使用root用户eg: scp /etc/profile rootnode2:/etceg: scp -r /usr/jdk1.8 node2:/usr/javaeg:scp hello.log node2:$PWD注使用$PWD 默认到当前目录。 注意目标主机要有与当前相同的目录~:到当前用户的宿主目录scp /etc/services node2:/root/service.hard可以通过这种方式修改拷贝的文件名。2.1.31 ssh免密登录如何方便的切换到其他节点ssh node2免密登录在第一台机器上生成一对钥匙公钥和私钥当前用户的宿主目录下的.ssh目录多了两个文件将公钥拷贝给要免密码登录的机器注意主机名和ip都可以确保配置了主机名 ip的映射还需要输入密码拷贝完成之后会在要免密登录的机器上生成授权密码文件注意免密码登录是单向的扩展ssh免密登录原理1, node1 使用 ssh-keygen –t rsa 生成公钥和私钥ssh-copy-id rootnode2 将公钥拷贝到node2上实际上是把公钥内容追加到 authorized_keys文件中。请求时1node1向node2发送连接请求时附带主机ip地址等信息node2收到请求后去授权文件里查找node1的公钥找到之后随机生成一个字符串并用公钥加密并发送给node1node1接收到密文之后用私钥解密并把解密结果返回给node2node2拿到解密结果之后与之前的字符串进行比较如果相同则可以登录成功。原理图

相关新闻

根据JDK深入详细学习理解JAVA线程池

根据JDK深入详细学习理解JAVA线程池

笔者,之所以写这篇博客,是因为,很多博客或者书籍,在介绍线程池相关内容的时候,太理论化,直接上结论,并不能正确的表述出来所说的每一个结论,是为什么,怎么理解。所以在此…

2026/7/28 18:06:04阅读更多 →
油轮导流罩供应商选择指南:核心指标与实船验证

油轮导流罩供应商选择指南:核心指标与实船验证

油轮导流罩是一种安装在螺旋桨前方的水动力节能装置,学名桨前预旋导流罩(PFFP),其核心作用是改善螺旋桨入流流场,减少尾流能量损失,使推进效率提升5%至15%。对于油轮这类长期高油耗运营的船型,导流罩是应对IMO EEXI与CII新规的关键低成本方案,直接决定燃油成本与碳排放…

2026/7/28 18:06:04阅读更多 →
HarmonyOS 启动任务编排实战:依赖、并发、超时与失败兜底

HarmonyOS 启动任务编排实战:依赖、并发、超时与失败兜底

HarmonyOS 启动任务编排实战:依赖、并发、超时与失败兜底 启动慢不一定是某个任务慢,也可能是任务编排混乱:无依赖的任务被串行执行,非首屏任务挡住首屏,远程配置超时后没有降级,某个初始化失败就让首页空…

2026/7/28 18:04:03阅读更多 →
OWASP dep-scan:5分钟上手开源依赖漏洞扫描,守护软件供应链安全

OWASP dep-scan:5分钟上手开源依赖漏洞扫描,守护软件供应链安全

1. 项目概述:为什么你需要一个“依赖项扫描器”? 在今天的软件世界里,几乎没有哪个应用是“从零开始”的。无论是前端用到的React、Vue,后端依赖的Spring Boot、Express,还是数据处理用的Pandas、NumPy,我们…

2026/7/28 19:22:17阅读更多 →
安卓APP通信协议逆向实战:从Inspeckage动态分析到Python脚本实现

安卓APP通信协议逆向实战:从Inspeckage动态分析到Python脚本实现

1. 项目概述:一次从工具到脚本的协议逆向之旅 在移动安全研究和应用开发领域,安卓APP的通信协议逆向一直是个既充满挑战又极具价值的课题。你可能遇到过这样的情况:一个APP的功能很吸引人,但它的服务器接口是加密的,你…

2026/7/28 19:22:17阅读更多 →
架构学习(一)

架构学习(一)

架构学习 1.概念认识 软件架构在软件的内部,考虑综合因素,选特定的技术,将系统划分不同部分,不同模块,并且相互分工和协作 的 一种方案 综合因素有:业务需求,技术栈,成本,组织结构,可扩展性,可维护性单体架构业务功能都集中在一起,部署运行在同一进程中或机器中 优:易开发,已测…

2026/7/28 19:22:17阅读更多 →
2024年AI降重工具实测与选型指南

2024年AI降重工具实测与选型指南

1. 项目概述:AI内容处理工具的现状与需求 2023年被称为AIGC(AI生成内容)的爆发元年,随之而来的是学术界和内容平台对AI生成检测的日益重视。根据最新行业调研,超过67%的教育机构已部署AI内容识别系统,而主流…

2026/7/28 19:22:17阅读更多 →
Vue报错之 [Vue warn]: Property or method list is not defined on the instance

Vue报错之 [Vue warn]: Property or method list is not defined on the instance

如图: 我的过来发现了是自己下开始写了个list 数组,后面由于加了个s, 而使用时 还是用了 {{list}}, 所以出现了这个问题, 主要还是命名这个东西,想好了就别改了, 后面突然想改的话,可能引发一系列的错误, 如果要改,可以先ctrlf找找,重名的做好一改全改的准备 2020/3/3,…

2026/7/28 19:22:17阅读更多 →
Loop Engineering 落幕,Graph Engineering 崛起,生产级AI Agent的范式重构与落地真相

Loop Engineering 落幕,Graph Engineering 崛起,生产级AI Agent的范式重构与落地真相

做过大模型Agent落地的开发者,大概率都踩过同一个深坑,本地demo跑起来丝滑流畅,逻辑通顺、响应灵敏,可一旦部署到线上生产环境,立刻漏洞百出。要么模型陷入无意义的循环调用,几万Token凭空消耗却没有任何任…

2026/7/28 19:20:17阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

🔹 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具,凭借本地离线运行、可视化图形操作和任务自动化三大核心特性,赢得了众多用户的青睐。与普通在线对话AI工具不同,它属于能够直接操控本机软硬件的智能数字员工…

2026/7/28 4:06:39阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接,是用激光束对阀座壳体(通常为不锈钢或铝合金)进行密封焊接,使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/7/28 2:08:06阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/7/28 1:38:28阅读更多 →
告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生 【免费下载链接】OmenSuperHub Control Omen laptop performance, fan speeds, and keyboard lighting, and unlock power limits. 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 你是否也曾为官方Om…

2026/7/28 0:00:29阅读更多 →
RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

做 RAG 的人应该都踩过这个致命的坑:把几百页的财报、法规、技术手册扔给向量库,问一个具体问题,搜出来的全是沾边但没用的内容 —— 关键信息要么被硬切块拆碎了,要么藏在几十条结果的最下面。语义相似≠真正相关,这个…

2026/7/28 0:00:29阅读更多 →
抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

2026年做短视频运营,从抖音上扒文案早就不是偷偷抄笔记的事了。我刚开始做内容的时候,每天刷半小时抖音,手动把爆款视频的口播敲进备忘录,一条2分钟的视频得花十来分钟,碰到语速快的还要反复回听。后来试了一圈工具&am…

2026/7/28 0:00:29阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/27 16:57:54阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/28 3:17:03阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/28 2:35:58阅读更多 →