【问题标题】:Auto update isn't working in VSCode: Could not create temporary directory: Permission denied自动更新在 VSCode 中不起作用:无法创建临时目录:权限被拒绝
【发布时间】:2019-08-27 21:19:52
【问题描述】:

从某些时候开始,我开始不时收到此错误(我想当编辑器尝试检查更新时它会触发),并且手动/自动更新不起作用。我可以更新编辑器的唯一方法是重新下载应用程序并手动替换它。

有人遇到同样的问题并成功解决了吗?

【问题讨论】:

    标签: visual-studio-code access-rights


    【解决方案1】:

    尝试在终端中输入以下命令:

    cd ~/Library/Caches
    
    sudo chown -R <username>:staff *
    

    【讨论】:

    • 谢谢,它成功了,你能在你的回答(或评论)中解释一下这个目录是什么,:staff 是什么?
    • chown changeowner 。 -R recursion * for all in this directory 而你的用户组的东西成为这个目录中所有的创始人
    • 这对我有用。在root:staff 拥有的~/Library/Caches 文件夹中实际上有几个文件/文件夹。
    • 在macOS上有多个管理员用户时如何处理,该文件夹具有用户X的权限,我是用户Y。我应该将文件夹设置为775吗?
    • @pakhilov 你对 barney74 的answer 有什么想说的?
    【解决方案2】:

    上面的解决方案有效,但它就像用大锤杀死一只家蝇。

    1. 转到缓存cd ~/Library/Caches
    2. 检查文件夹的所有权。 ls -la
    3. 你可能会看到drwxr--r-- 2 root staff 64 Nov 15 09:37 com.microsoft.VSCode.ShipIt
    4. 运行sudo chown &lt;username&gt;:staff com.microsoft.VSCode.ShipIt

    这允许您仅更新该文件夹所有者,而不会触及其他文件夹。您可能会意外打破项目。

    【讨论】:

    • 如果您使用的是 VSCodium,则要修复的缓存文件夹为 com.visualstudio.code.oss.ShipIt
    • 这应该是公认的答案!
    【解决方案3】:

    在 2020 年 8 月 12 日对我的 macOS Catalina 10.15.6 进行补充更新和错误修复后,我在更新 VSCode 时遇到了类似的问题。我通过手动更新VSCode解决了这个问题:

    1. 转到官方网站上的last changes
    2. 下载:Windows:用户系统| 苹果机 | Linux: snap deb rpm 压缩包
    3. mv ~/Downloads/Visual\ Studio\ Code.app/ ~/Applications/ 或将Visual Studio Code.app 移动/复制到Applications 文件夹中
    4. 启动Visual Studio Code.app 并享受最新版本。

    之后,应用程序应该auto update新版本没有任何问题!

    【讨论】:

      【解决方案4】:

      我使用以下脚本手动下载/安装新版本(例如在/opt/ 下)。旧目录已备份。此外,在网络故障的情况下,我可以重新运行脚本以恢复。

      vscode-update

      #!/bin/bash
      set -e
      cd /opt/
      datetime=$(date +"%Y-%m-%d_%H%m%S")
      dateonly=$(date +"%Y-%m-%d")
      downloadedfile="vscode_download_$dateonly.tar.gz"
      backupfile="VSCode-linux-x64_backup_$datetime"
      url=https://update.code.visualstudio.com/latest/linux-x64/stable
      
      
      echo "Downloading $url --> $(pwd)/$downloadedfile"
      wget --continue -O "$downloadedfile" $url
      
      echo "backing up old vscode under: $backupfile"
      mv VSCode-linux-x64/ "$backupfile"
      
      echo "extracting: $downloadedfile"
      tar xvzf "$downloadedfile"
      
      echo "UPDATE DONE!"
      
      

      【讨论】:

        【解决方案5】:

        就我而言,~/Library/Caches/com.microsoft.VSCode.ShipIt 突然被root:staff 拥有。我通过运行以下命令修复了它:

        sudo chown -R $USER:'staff' ~/Library/Caches/com.microsoft.VSCode.ShipIt
        

        (在组名周围添加单引号,因为 ZSH 不喜欢它)

        【讨论】:

          猜你喜欢
          • 2013-12-15
          • 2018-08-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-04-04
          • 2018-09-20
          • 2021-12-11
          • 2017-01-31
          相关资源
          最近更新 更多