《Life with qmail》中Install部分的翻译

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

Life with qmail》中Install部分的翻译

2.qmail的安装

这部分用来指导qmail的安装。如果你是经验丰富的系统管理员,你可以依据qmail源代码中的INSTALL文件中的安装向导来安装qmail.该安装向导是qmail官方的安装向导,他们比 Lift with qmail中的安装向导复杂,并且,他们假定读者是经验丰富的系统和邮件管理员。另外,他们也是过时的并且不被Bernstein推荐采用。

-----------------------------------------------------------------------------------------------------------------

注:

如果你选择安装使用下列向导,你为了熟悉全面过程应该通读盖章节的每个部分。

----------------------------------------------------------------------------------------------------------------

2.1.安装发布

2.1.1.二进制与源代码的比较

由于二进制版本受到qmail许可的限制,通常都是从源代码安装。如果你不精通源代码和二进制之间的区别,想象被你预定的大馅饼。“二进制”版本的大馅饼送到后就可以吃。“源代码”版本的大馅饼将包括相应的配套元件:面粉,酵母,乳酪,辣酱油,上面的修饰以及指导你做大馅饼的方法等。源代码安装是给你的更多一点的工作,但是,如果你慎重地遵从操作向导,结果是相同的——或者,更改善——。自己的烤的大馅饼将更新鲜,并且你能根据自己的爱好来调整上面的修饰,你还可以从中获得很多关于馅饼的知识,并且了解了它的“工作”机制。

 

2.1.2. Tarball(手工安装包) 与OS_specific(自动安装包)的比较

一些操作系统提供了使源代码自动自动安装的机制包。还回到大馅饼的例子,他们提供一个包裹馅饼成分和制作方法的包,你仅仅通过操作你个按钮就可以制成馅饼。

听起来挺不错的,不过一般不采用这种方法?

在实践中,它可能是个好的想法。首先聚集这些包相当难,并且,如果不给他们设置他们将不会做任何事情。他们是软件,并且,象任何软件那样,他们可能有故障。但是,即使他们是免费的,他们提供的便利也将算在成本来中。你失去了自己烤大馅饼的大部分优点:调整馅饼顶部装饰的能力,有关作馅饼的知识和馅饼的工作机制。

如果将qmail比作大馅饼,那么自己动手去安装这这种方法还是可行的。它是:qmail系统是个十分复杂的系统,安装者和维护者要使其正常工作需要十分了解该系统。自动安装版的qmail比用户版的更容易安装,但是,用户版的更容易成形,处理。你一旦安装了qmail系统,你将会有很多机会来重新配置它或者查找它没有按照你设想的方式工作的原因。由于这个原因,我建议使用源代码手工安装,而不用红帽子的“RPM"包或其他的自动安装包。

2.2.安装准备

在安装qmail之前,尤其是第一次安装qmail,有一些事情需要你认真考虑。

如果可能,把qmail安装在“双机”系统上。这将会给你一个修正错误而不至于失去重要的邮件或者打断对你的用户提供的邮件服务的机会。如果你没有备份,并且你的系统已经安装sendmail,smail或一些其他的MTA的邮件系统,你能不干扰地安装或测试qmail而不干扰其他已经存在的邮件系统。当把别的MTA的邮件系统转移为qmail是,即使你又一些qmail的经验,建议你还是做个计划列表。

2.3.系统要求

qmail将安装并运行在UNIX或类UNIX系统中,但是,也有一些必要条件:

大约10兆的硬盘空间。在安装后,你能释放4兆空间通过除掉目的文件。

一个包含C编译器,系统头函数和库的完全的支持C语言编译的系统。安装用法将会让你知道你怎样得到这些必要部件的方法。

一些用来保存二进制文件,文档和配置文件的空间

为运行行列准备足够的磁盘空间。小的单用户系统仅仅需要2兆字节。大的服务器则需要2千兆位组。

一个兼容的操作系统。以便UNIX的大部分工具可正常运行。在源代码中的EADME文件有兼容版本的列表。

强烈推荐使用一个域名服务器(DNS).

缺少上述的任一条件,qmail能仅仅能给已经在它的邮件传输路径的配置文件中配置过的远程系统送信。

妥当的网络连接。qmail必须安装在连通功能很好的系统上,因此,你可能不会再一个只有28.8k的连接速度的邮件列表服务器上安装qmail。

serialmail是为使qmail能够稳定的运行在连通性能不太好的机器上而设定的。有关相关的信息附录中关于serialmail的部分。

2.4.下载源代码

好,下载你的系统已经满足安装qmail准备好了的必要条件了。

第一步 下载qmail和任何别的辅助工具的源代码。

你将需要qmail,当然,你还应该得到ucspi-tcp和daemontools :

qmail, ftp://cr.yp.to/software/qmail-1.03.tar.gz

ucspi-tcp, ftp://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz

daemontools, ftp://cr.yp.to/daemontools/daemontools-0.76.tar.gz

通过你的浏览器或通过ftp工具来获得这些源文件。

-----------------------------------------------------------------------------------------------------------------

注:

如果任何一个连接失败了,可能适应为该数据包已经被更新了。

在这种情况下,你应该去http://cr.yp.to/software.html,下载最新版本。

更新后的版本可能与其他的工具不兼容,一定要阅读发布版本中的“从老版本中的更新”部分

----------------------------------------------------------------------------------------------------------------

2.5.构建源代码

2.5.1.验证构建环境

你需要做的第一件事情就是确保编译所需的工具存在。

如何来确定编译所依赖的工具是否存在呢?虽然该工具不一定存在,最简单的方法就是试试它。

--------------------------------------------------------------------------------------------------------------

注:

如果每个试验都能通过,你能停下来,跳到到下一部分。

--------------------------------------------------------------------------------------------------------------

At a command line prompt, type cc and press Enter:

在命令行提示符下,输入cc和并且敲回车:

    $ cc

    cc: No input files specified

    $

如果你得到类似的回答,在你的路有C编译器。

如果没有,也并不意味着你没有安装。可能是你的路径里没有包含该路径。当然,也可能是你根本就没有安装。

试试这些:

/usr/bin/cc

/usr/bin/gcc

/usr/local/bin/cc

/usr/local/bin/gcc

/usr/ccs/bin/cc

如果这些都不能运行,你就要试试其他平台的发式。根据你的操作系统,

在提示符下输入下面命令之一

Red Hat Linux:(PC机用的免费UNIX操作系统) :

rpm -qa | grep gcc or rpm -qa | grep egcs

FreeBSD(一种可免费使用的UNIX操作系统):

includes GCC by default

如果你不能发现已经安装了C编译器,那么你就要去找到并安装它。

和你的操作系统销售公司或其他的操作系统支持频道联络。

在这一部分中我们将介绍编译qmail的实际步骤--通往手工剪切-复制的方式,该步骤可以省略。

2.5.2.打开源文件包

如果你要进行这项步骤,你就已经有了正常运行的C编译器和复制源代码的工具,下一步,复制或者移动源文件包到你的工作目录中,建议qmail放在/usr/local/src目录下,ucspi-tcp 和 daemontools 放在/package目录下。

在这一时间,你应该变成root(超级用户)的身份,如果你还不是的话。

执行下面命令:

    su

    umask 022

    mkdir -p /usr/local/src

    mv qmail-1.03.tar.gz ucspi-tcp-0.88.tar.gz /usr/local/src

    mkdir -p /package

    chmod 1755 /package

现在你能展开源文件包:

    cd /usr/local/src

    gunzip qmail-1.03.tar.gz

    tar xpf qmail-1.03.tar

    gunzip ucspi-tcp-0.88.tar.gz

    tar xpf ucspi-tcp-0.88.tar

    rm *.tar    #注释:可选,除非空间紧张

    cd /package

    gunzip daemontools-0.76.tar.gz

    tar xpf daemontools-0.76.tar

    rm *.tar    # 注释:同上

现在源文件的目录路径为 /usr/local/src/qmail-1.03, /usr/local/src/ucspi-tcp-0.88, 和 /package/admin/daemontools-0.76.

2.5.3.创建目录

  由于qmail的安装程序将会创建所需要的子目录,所以你仅仅需要制作qmail的“主”文件夹就行了

   mkdir/var/qmail

  好,继续下一部分。

------------------------------------------------------------------------------------------------------------------

注:

如果你想在其他目录(不是/var)中安装qmail,那么你可以通过在/var/qmail中创建系统连接来实现。

例如:

一个分布式的设计将通过下面命令被创建:

    mkdir /var/qmail

    ln -s /usr/man /var/qmail/man

    mkdir /etc/qmail

    ln -s /etc/qmail /var/qmail/control

    ln -s /usr/sbin /var/qmail/bin

--------------------------------------------------------------------------------------------------------------

2.5.4.创建用户和组

创建必要的用户和组的最简单的方法是制作小的脚本文件来帮你创建。

在源文件夹中你将发现被叫做INSTALL.ids的文件。

它包括支持许多平台的命令行,所以,能够容易快速地把它复制为另一个文件并编辑。

cd /usr/local/src/qmail-1.03 cp INSTALL.ids IDS

然后,使用你喜欢的编辑器,删除你不需要的那些部分。

例如,下面是IDS为FreeBSD(一种可免费使用的UNIX操作系统)系统编辑之后的内容:

    pw groupadd nofiles

    pw useradd alias -g nofiles -d /var/qmail/alias -s /nonexistent

    pw useradd qmaild -g nofiles -d /var/qmail -s /nonexistent

    pw useradd qmaill -g nofiles -d /var/qmail -s /nonexistent

    pw useradd qmailp -g nofiles -d /var/qmail -s /nonexistent

    pw groupadd qmail

    pw useradd qmailq -g qmail -d /var/qmail -s /nonexistent

    pw useradd qmailr -g qmail -d /var/qmail -s /nonexistent

    pw useradd qmails -g qmail -d /var/qmail -s /nonexistent

然后运行它,执行chmod来使它可实行,或者用sh程序运行它:

第一个方式:

    chmod 700 IDS

    ./IDS

第二个方式:

    /bin/sh IDS

当脚本运行结束的时候,全部都你的用户和组都已经被创建,你可以继续进行下一部分。

但是,如果你的系统不被编入INSTALL.ids,你该做什么呢?

你将必须用手工创建他们。

打开你喜欢的编辑器并且编辑/etc/group

你需要追加下列2行在文件的末尾:

    qmail:*:2107:

    nofiles:*:2108:

-------------------------------------------------------------------------------------------------------------------

注:

确认2107和2108不已经被使用。

如果他们已经被使用,请选其他不被使用的数字。

--------------------------------------------------------------------------------

下一步,使用vipw(大部分的系统有它,或者用你的编辑器编辑文件/etc/passwd)追加下面内容:

    alias:*:7790:2108::/var/qmail/alias:/bin/true

    qmaild:*:7791:2108::/var/qmail:/bin/true

    qmaill:*:7792:2108::/var/qmail:/bin/true

    qmailp:*:7793:2108::/var/qmail:/bin/true

    qmailq:*:7794:2107::/var/qmail:/bin/true

    qmailr:*:7795:2107::/var/qmail:/bin/true

    qmails:*:7796:2107::/var/qmail:/bin/true

-----------------------------------------------------------------------------------------------------------------

注:

确认7790-7796不被使用,并且2107和2108是同一个组的id号。

如果这些UID的某一个已经被使用,选不正被使用的数字。

---------------------------------------------------------------------------------------------------------------

你不比加这些行到这些文件的末尾,这是解释它的最简单的方法。

现在准备好了,继续前进下一部分。

2.5.5.开始构建

现在你能开始构建qmail了。改变目录到/usr/local/src/qmail-1.03目录下,然后该是构建:

cd /usr/local/src/qmail-1.03

在验证构建环境部分中,你得到了你的C编译器。

如果它不被叫做cc,或者它在的文件夹没在你的路径环境变量中,你将需要编辑conf-cc和conf-ld。

确保你的编译程序是gcc,并且,它在你的PATH(环境变量)中。

仅仅编辑conf-cc和conf-ld,用“gcc”替换“cc”。

现在输入下面命令就行了:

make setup check

在编译完后,你将需要配置你的邮件。

提供了两个脚本使得这工作更简单。

如果你的DNS已经配置好了,这手稿应该是你在这一点上需要的全部:

./config

If, for some reason, config can't find your hostname in DNS, you'll have to run the config-fast script:

如果由于某种原因配置文件不能在域名服务器(DNS)中发现你的主机名称,你将必须与运行config-fast脚本程序:

./config-fast 你的主机全名

例如,你的域名是example.com,并且如果你的计算机的主机名称是dolphin,你的config-fast命令将为:

./config-fast dolphin.example.com

现在qmail被安装在你的系统上,准备好即将运行!

下一部分将一步一步指导你启动和运行qmail.

2.6.安装ucspi-tcp

非常简单,你展开qmail,ucspi-tcp和daemontools 的源程序包。

现在改变目录到ucspi-tcp文件夹:

cd /usr/local/src/ucspi-tcp-0.88

在构建部分中,如果你修改了conf-cc和conf-ld文件,在这里做相同的处理。

接着,做:

make make setup check

就这样,ucspi-tcp被成功安装。

2.7.安装daemontools

改变目录到文件夹daemontools:

cd /package/admin/daemontools-0.76

再次,如果你在安装qmail和ucspi-tcp时修改了conf-cc和conf-ld文件,,你在这里将需要做相同的变化。

接着,做:

package/install

BSD系统上(没有文件 /etc/inittab),你将需要重启系统来运行svscan来管理运行这些后台工具。

"ps -ef | grep svscan" 或 "ps waux | grep svscan" 来验证svscan是否运行。

 

 

附录:只翻译《Life with mail》中第二章(安装)的1-7节。

GTK4 窗口 本文系统介绍GTK4窗口机制,对比GTK+3主要变更:窗口创建无需类型参数,关闭事件改为close-request信号,位置由窗口管理器控制,且默认采用客户端装饰(CSD)。核心类为GtkWindow与GtkApplicationWindow,支持最大化、全屏状态管理及标题栏自定义。通过GtkHeaderBar实现可定制的标题栏,支持按钮布局与内容嵌入。无边框窗口需手动处理拖动与按钮功能,强调应用对界面的完全控制。 阅读详情

相关推荐

C: Unix UTC 时间戳转为 UTC+8 北京时间

纯 C 实现,time.h,把 Unix UTC 时间戳(单位秒,long long)转换成,输出。重要局限(必须重点标注)

yutian0606的博客 92

Linux系统编程(一):从UNIX到Linux|开源生态、发行版与学习路线

本文是 Linux 系统编程系列开篇,梳理 UNIX、Linux、macOS、iOS、Android 之间的技术渊源,厘清内核与发行版、开源与免费的常见认知误区。讲解 Ubuntu、Debian、CentOS 等主流发行版差异,分析服务器领域 Linux 盛行的原因,说明系统开发优先使用命令行的意义。同时规划学习路线:先夯实 Linux 操作与系统调用,收尾 C 语言数据结构,进阶内容逐步转向 C++,打通 C、操作系统、数据结构的知识链路,为后续系统编程学习做好前置铺垫。

Luminousone的博客 165

鸿蒙平台 GnuWin32 Unix 工具集适配实战:基于 Electron 壳方案的 14 款文本处理工具真实实现

鸿蒙平台 GnuWin32 Unix 工具集适配实战:基于 Electron 壳方案的 14 款文本处理工具真实实现

wei_shuo的博客 1万+

Modbus RTU 转 TCP 是什么?串口服务器如何实现协议转换

在工业自动化中,现场设备常使用RS485+ModbusRTU通信,而上位机或SCADA系统则采用以太网+ModbusTCP。为实现两者互通,需通过串口服务器进行协议转换。串口服务器作为桥梁,将ModbusRTU帧转换为ModbusTCP帧,完成串口与网络间的通信适配。该方案无需改造原有设备,可高效实现老旧串口设备的网络化接入,广泛应用于电表、PLC、变频器等场景的数据采集与监控。

huayuniot的博客 189

电脑数据自动备份方案:80KM 备份软件全量增量备份部署教程

它支持将指定文件夹(含子文件夹)内的所有文件备份到其他电脑、服务器或独立硬盘,可以一次性将桌面、文档、下载、照片视频、工作项目等重要目录全部加入备份任务。很多用户备份电脑数据时,习惯用 U 盘、移动硬盘手动复制,这种方式效率低、容易遗漏,而且经常因为忘记备份而导致数据丢失。备份电脑数据是每个电脑用户都应该养成的习惯,无论是个人照片视频、工作文档,还是企业业务数据,一旦遭遇硬盘损坏、病毒攻击、误删格式化,都可能造成无法挽回的损失。适合个人用户、工作室、中小企业备份电脑数据,成本低、上手简单、数据自主可控。

xhbh666的博客 210

MCP 模型上下文协议:九、深入服务器 · 工具、资源与提示

MCP服务器通过工具、资源、提示三个原语分别面向模型、应用和用户,规范各自职责。工具设计应注重描述准确、粒度合理、输出受限,错误信息需让模型可读可修正。服务器可反向请求客户端帮助,遵循最小权限原则,才能让模型高效正确地使用其能力。

PhilZhou的专栏 201

【无标题】科样KSMART服务器(Kohyoung AOI的集中数据Hub)访问方案

4. 部分科样交付时,服务器有账号权限锁,普通操作员账号只能进KSMART软件,没有Windows管理员权限,这种情况就算连上RDP,也没法装软件。- 成功之后:直接看到服务器完整Windows桌面,可以打开此电脑浏览全部文件系统,能安装软件、查看服务、查看磁盘。1. AnyViewer(免费局域网好用):轻量,装好服务端,你电脑开客户端连接,完整桌面+文件浏览,适合工控机。- 小技巧:点「显示选项」→本地资源,勾选驱动器,可以直接把你本地电脑硬盘映射到服务器,双向拷贝文件。普通KSMART账号不行)

ShiDaiDeFanRen的博客 205

Windows 服务器 人大金仓 54321 端口放行完整步骤

客户端机器执行,确认 IP 网络通;ping 不通查局域网。超时:防火墙没放行端口拒绝连接:数据库没启动 /listen_addresses 没改 / 没重启服务本机 Windows 服务器上,用 ksql 工具本地先测试连接数据库,确认数据库本身正常。

2401_87805203的博客 217

不用批量采购工作站|液压设备制造,SolidWorks 多人共享服务器方案

液压设备行业产品包含液压阀块、油缸、泵站、集成液压系统、整机机架装配,结构复杂、零件数量多,常需要做管路排布、干涉检查、液压系统仿真与强度校核。传统一人一机图形工作站模式,硬件采购投入高,单台算力忙闲不均,项目图纸分散存储,版本管理困难。针对液压装备企业 8‑10 人研发团队,方案,实现多名工程师共用一台服务器并发使用 SolidWorks,完成阀块建模、油缸设计、整机装配、管路布局、仿真计算与工程图输出,降低硬件一次性投入,统一研发环境,实现图纸集中管控,为液压装备制造研发算力改造提供落地参考。

jsyunfeiyun的博客 302

【信创】# Linux 系统split分片大ZIP压缩文件刻录到光盘-迁移后合并解压

将大于4GB的data.zip用split -b 4200m切分为多个分片,刻录至多张DVD光盘,并附带MD5校验文件。接收方收集所有分片后,通过cat $(ls *.zip.* | sort -V)合并,用md5sum -c校验完整性,再用unzip -t验证压缩包,最后解压恢复。全程仅需Linux原生工具,兼容统信UOS、银河麒麟等信创系统,安全可靠。

cnxzzcn的博客 192

八卡RTX 5090算力服务器技术解析:架构、场景与算力性价比分析

在算力市场中,A100、H100等专业算力卡适合超大规模数据中心、千亿级大模型训练,但采购和运维成本极高,并不适配中小团队和高校场景;而普通消费级显卡无法支撑7×24小时高负载稳定运行。八卡RTX 5090算力服务器精准填补了消费级算力与高端企业级算力之间的市场空白,以适中的采购成本、极致的本地化算力性能、安全可控的部署模式,成为中小AI团队、科研机构、内容工作室的最优算力选型之一。免责声明:本文仅为技术科普与行业算力方案分析,无商业推广导向,不构成任何硬件采购建议。

Z1980658_的博客 248

无图形界面服务器用 Codex 终端连接本地部署的 DeepSeek

通过以上步骤,可以在无图形界面、无 root 权限的服务器上,用 Codex 终端连接本地部署的 DeepSeek 模型,实现代码辅助、文件分析等 AI 交互。本文使用 codex-relay。codex-relay 的作用是把 Codex 发出的 Responses API 请求实时翻译成 Chat Completions 请求,再转发给 llama.cpp。codex-relay --upstream http://节点IP:8888/v1 --api-key dummy --port 8080。

DFT_M的博客 156

从 IT 基础到云计算:服务器、存储、网络与操作系统全栈深度解析

IT(Information Technology)是信息处理的总集,包括软件、硬件、通信及相关服务。传统 IT 架构面临“业务上线慢、扩展困难、可靠性不强、TCO(总拥有成本)居高不下”等痛点。过去我们购买服务器通常是一次性投入,无论业务高低峰,资源都得闲置浪费。IT 基础设施的演进传统 IT 架构:应用与操作系统直接绑定在单一物理服务器上,资源利用率极低。虚拟化架构:通过 Hypervisor(如 KVM)在一台物理机上虚拟出多台虚拟机(VM),实现物理资源的切分,提升了利用率。云化 IT 架构。

xianyuCcCcCCCcc的博客 389

离线/纯内网环境下,Linux 服务器时间不准如何强制修改?(以 Oracle Linux 9 / RHEL 9 为例)

通过以上处理,即使这台内网机器后续关机、断电、或者过段时间再重启,时间也绝对不会再出问题。主板上的纽扣电池会持续推动硬件时钟走时,并在开机时自动初始化给系统。如果您所在的内网环境中有多台服务器,每次手动修改效率太低。最佳实践是搭建一台内网的NTP 时间服务器主节点(修改允许内网网段同步),让其他内网机器直接指向该主节点的内网 IP。有任何运维问题欢迎在评论区交流。

lrlmarry的博客 235

没有公网IP,如何让外网访问内网服务器

没有公网IP,如何让外网访问内网服务器

2409_89014517的博客 210

Linux命令——联网

对于运行着X服务器的系统(也就是显示GUI的主机)​,可以启动并运行远程主机中的X客户端程序并在本地主机上显示图形化效果。假设我们使用的Linux系统名为linuxbox,它运行着X服务器,我们想在名为remote-sys的远程主机上运行xload程序并在本地主机查看该程序的图形化输出。以0结尾的IP地址指代网络,而非单独的主机,因此其代表的是此网络中的任意主机。在进行网络诊断时,重要的是在每个网络接口信息的第一行中寻找UP字样(表示该接口已启用)并查看第3行的inet字段中是否存在有效的IP地址。

吴声子夜歌的博客 127

华为 OceanStor 基础使用入门指南

配置业务接口IPIP配置为192.168.108.20。

g1056559139的博客 152

Linux wait()函数(预防僵尸进程)

wait()函数依赖fork()创建的子进程,无有效子进程时调用失败,函数具备阻塞特性。用于保存子进程退出状态,支持手动位运算和系统宏两种解析方式,功能等价、场景不同。wait(NULL)仅用于回收僵尸进程,舍弃所有退出状态信息,适用于无需判断子进程执行结果的场景。子进程退出码仅占用8位存储空间,有效范围0~255,超出数值自动对256取模。手动位运算用于底层原理学习,工程开发统一使用系统宏,保障代码跨平台兼容性。

tym23081329的博客 586

自建轻量化服务器跨网备份,增量归档落地教程

80KM备份软件提供私有部署式异地归档方案,支持多服务器集中管理,采用全量+增量备份机制,减少传输压力与存储开销。数据存于企业自控硬件,保障数据主权与安全,避免公有云费用高、带宽受限及合规风险。适配内网与跨公网场景,无需专职运维,助力中小企业低成本构建可靠服务器异地备份体系。

xhbh666的博客 78
上一篇: 密码学概述(3)
ralpher2017
博客等级 码龄25年 3粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值