当我试图让詹金斯去做时
确保 Jenkins 作业实际运行为jenkins
:在您的作业中添加一个步骤以进行打印id -a
。
机会是:它不是作为 Jenkins 运行,而是作为您的主帐户运行,它无权在该文件夹中写入。
“无法创建用户数据目录”:可能 1766 是作为用户创建的用户帐户的 id。检查使用 chmod 777 (用于测试)
创建(作为您的主帐户)该文件夹是否有帮助。1766
注意hugo 问题 3143确实提到:
为了安全起见,快照是只读的。我们希望防止敌对方偷偷更改您计算机上的软件,因此您无法修改系统上安装的快照。这也意味着您可以随时检查 snap 上的签名,即使在安装很久之后,以确保它仍然是您想要的软件。如果要修改快照,通常可以构建自己的版本,特别是如果它是开源的。
那么快照可以在哪里写入数据呢?每个快照都有自己的一组具有特定属性的可写目录。快照可以独立于用户写入两个目录。其中之一是版本化的 - 每次升级快照时都会保存数据,并且新的快照修订可以升级其副本。另一个“通用”数据目录没有版本控制,用于存储您不想在快照修订版中复制的大块数据:
/var/snap/<name>/current/ ← $SNAP_DATA is the versioned snap data directory
/var/snap/<name>/common/ ← $SNAP_COMMON will not be versioned on upgrades
通常,配置与快照的系统范围数据一起存储在其中之一中。
用户主目录中的每个快照还有等效的两个可写目录,可用于分别存储特定于一个用户或另一个用户的快照数据:
~/snap/<name>/current/ ← $SNAP_USER_DATA that can be rolled back
~/snap/<name>/common/ ← $SNAP_USER_COMMON unversioned user-specific data
您可以使用 Hugo 的 snap 版本在您的目录中的任何位置写入(即运行hugo new site
等) ,例如,但不能在系统范围的目录中。$HOME
~/tmp/htest
/tmp
这与“Hugo Install from snap”部分相匹配:
由于 Snaps 的限制和安全模型,Hugo-as-a-snap 只能在用户的 $HOME 目录和用户拥有的 gvfs 挂载目录中写入。
sudo snap install hugo --classic
如果您希望hugo
能够在除用户$HOME
目录之外的其他路径中具有写访问权限,则用于禁用默认安全模型。