接前一篇文章:Linux内核上游提交完整流程及示例

上篇文章中提到,在步骤“九、发送邮件”中,在

Send this email? ([y]es|[n]o|[e]dit|[q]uit|[a]ll): yes

这一步,根据提示输入“y”或“a”后,在笔者的电脑上实际上并不会一帆风顺地过去,而是会出现一系列错误。

问题1

错误如下所示:

Send this email? ([y]es|[n]o|[e]dit|[q]uit|[a]ll): yes
Can't locate IO/Socket/SSL.pm in @INC (you may need to install the IO::Socket::SSL module) (@INC contains: /usr/share/perl5 /usr/lib/perl5/5.36/site_perl /usr/lib/perl5/5.36/vendor_perl /usr/lib/perl5/5.36/core_perl) at /usr/libexec/git-core/git-send-email line 1628.

根据错误提示,打开/usr/libexec/git-core/git-send-email文件,跳转到1628行看一下具体内容,如下:

require IO::Socket::SSL;

解决方法:

安装Net:SSLeay模块,命令为:sudo cpan Net::SSLeay。

注: 必须带有sudo,即安装到系统路径下,否则还是会出现同样的问题。

问题2

解决完了问题1之后,重新执行git send-email命令,还是执行到上边那一步,输入“y”或“a”后,依旧不能通过,出现了新的错误。具体错误如下所示:

Send this email? ([y]es|[n]o|[e]dit|[q]uit|[a]ll): y
Need MIME::Base64 and Authen::SASL todo auth at /usr/libexec/git-core/git-send-email line 1691.

根据错误提示,打开/usr/libexec/git-core/git-send-email文件,跳转到1691行看一下具体内容,如下:

smtp_auth_maybe or die $smtp->message;

解决方法:

安装MIME::Base64模块以及Authen::SASL模块。

  • 安装MIME::Base64模块

命令为:

sudo cpan MIME::Base64

实际命令及结果如下:

$ sudo cpan MIME::Base64
Loading internal logger. Log::Log4perl recommended for better logging
Reading '/root/.cpan/Metadata'
  Database was generated on Fri, 27 Oct 2023 08:29:02 GMT
MIME::Base64 is up to date (3.16).

可见,MIME::Base64模块系统中已经安装了。

  • 安装Authen::SASL模块

命令为:

sudo cpan Authen::SASL

这个模块之前确实没有安装,真正的问题出在这。

解决了以上两个问题后,再次执行git send-email命令,就可以正常发送邮件了。

如果在命令中带上了自己的邮箱,则马上邮箱就会提示收到新邮件。

12-11 00:06