安装指南是否应告知用户先运行 apt update 和 apt upgrade?

继续讨论来自 自托管实例的问题

我觉得这种情况已经见过太多次了:人们按照安装指南操作后,回来反馈说安装失败。

依我之见,如果在安装指南中添加一个步骤,在安装前运行 apt updateapt upgrade,就能在问题出现之前解决它。

运行这些命令不会造成任何损害,反而有助于在创建 Docker 容器等之前确保软件是最新的。

大家对此有什么看法吗?

添加一些关于如何设置自动升级的内容是个不错的主意。

好的,我想建议这个

那太棒了!请为此提交一个 PR :slight_smile:

嗨,Gavin!
我在 PR 上留了一条小评论,方便时请查看。
除此之外,看起来不错。谢谢你修复了那个漏洞 :slight_smile:

我没看到评论,只看到编辑

我眼花了吗?

抱歉——我已经很久没用过 GitHub 的审查系统了。我的审查一直处于待处理状态::upside_down_face:
您现在应该能看到它了。

别担心 :slight_smile:

我已经做了修改。

谢谢 :slight_smile:

这属于非 sequitur(推论不相关)。

你能给出任何可复现的问题,证明这个额外步骤能切实解决吗?

稍微相关的是,我发现看到“恭喜,您已安装 Discourse!:tada:”屏幕时,兴奋之情让我暂时忘记了指南的其余部分。:slightly_smiling_face: 我最终想起了“安装后维护”,但或许在“访问您的云服务器”和“安装 Discourse”之间可以添加一个“准备您的云服务器(可选)”部分?该部分可以包含 dpkg-reconfigure -plow unattended-upgrades、apt install libpam-cracklib 和 fail2ban 的相关信息,以及 apt-get update/upgrade 等内容。

我表示怀疑。

这主意不错。也许可以指向一些其他人已经在维护的相关指南。

编辑:而且,找到一个只需做 5 件事而不是 25 件事的指南,看起来会是个挑战。

我认为主要是以下几点:

  • 配置 apt 以实现自动升级和重启
  • 安装 fail2ban(不过如果没有 SSH 密码访问权限,我不确定它是否必要)
  • 确保 SSH 不允许密码登录(现在 Digital Ocean 提供了无需密码的专用 Shell 控制台,这要容易得多)

防火墙信息怎么样?

  • 如果您需要或想要默认防火墙,请在 Ubuntu 上启用 ufw,或在 CentOS/RHEL 上使用 firewalld。

如果您需要或想要防火墙,您可以在其他地方了解相关信息。

我必须向您在此方面的丰富经验致敬,但我最初的设想是将这些内容从现有的 安装后维护 部分移至 安装 Discourse 上方的一个新章节,以便使其更加显眼、不易被忽略。(至少对我来说,一旦看到屏幕上出现 :tada:,我立刻就把服务器抛在脑后,只想去探索我的新玩具 :slightly_smiling_face:

准备您的云服务器(可选)

  • 我们强烈建议您为操作系统启用自动安全更新。在 Ubuntu 上,请使用 dpkg-reconfigure -plow unattended-upgrades 命令。在 CentOS/RHEL 上,请使用 yum-cron 包。
  • 如果您使用的是密码而非 SSH 密钥,请务必设置强 root 密码。在 Ubuntu 上,请使用 apt install libpam-cracklib 包。我们还推荐使用 fail2ban,它会在 IP 地址尝试超过 3 次密码重试时将其封锁 10 分钟。
    Ubuntu: apt install fail2ban
    CentOS/RHEL: sudo dnf install fail2ban
  • 如果您需要或想要默认防火墙,请在 Ubuntu 上启用 ufw,或在 CentOS/RHEL 上使用 firewalld。

我不够了解,无法推荐具体的删减或补充内容。:slightly_smiling_face:

哈哈。好吧,显然我也没有阅读它们。:man_shrugging:

但根据我的经验,你很难让人去阅读某些内容。

这里需要执行 git pull 吗?

cd /var/discourse
git pull
./launcher rebuild app

我希望不需要,因为我从未这样做过。它似乎是重建过程的一部分。

我也从未使用过 git pull

我得到的是

root@discourse-testing:~# cd /var/discourse/
root@discourse-testing:/var/discourse# git pull
Already up to date.
root@discourse-testing:/var/discourse#

@Falco

所以我重新构建了测试 Droplet

我严格按照官方安装指南操作。

但安装失败了。

我运行了

apt-get update
apt-get upgrade
./launcher rebuild app

安装成功。

确定这不是作为重建过程的一部分自动完成的吗?为了保险起见,我已经将其添加到了我的待办事项列表中,但如果做了任何不必要的额外工作,那将是一种遗憾。