当前位置: 首页>>技术问答>>正文


如何自动更新Atom编辑器?

, ,

问题描述

Ubuntu尚不支持自动更新Atom功能。从他们的GitHub存储库:

Currently only a 64-bit version is available.

Download atom-amd64.deb from the Atom releases page. Run sudo dpkg –install atom-amd64.deb on the downloaded package. Launch Atom using the installed atom command. The Linux version does not currently automatically update so you will need to repeat these steps to upgrade to future releases.

我尝试使用Webupd8 PPA,但它对我不起作用。

最佳解决方案

长话短说如果您不想使用PPA,可以使用脚本下载并通过cron自动安装。


  1. 创建一个新文件atom-auto-update

    sudo nano /usr/local/bin/atom-auto-update
    
  2. 添加以下行

    #!/bin/bash
    wget -q https://github.com/atom/atom/releases/latest -O /tmp/latest
    wget -q $(awk -F '[<>]' '/href=".*atom-amd64.deb/ {match($0,"href=\"(.*.deb)\"",a); print "https://github.com/" a[1]} ' /tmp/latest) -O /tmp/atom-amd64.deb
    dpkg -i /tmp/atom-amd64.deb
    
  3. 保存文件并使其可执行

    sudo chmod +x /usr/local/bin/atom-auto-update
    
  4. 测试脚本

    sudo atom-auto-update
    
  5. 为脚本创建一个cronjob

    sudo crontab -e
    
  6. 添加此行

    例如:每周上午10点

    0 10 * * 1 /usr/local/bin/atom-auto-update
    

    例如:每天上午10点

    0 10 * * * /usr/local/bin/atom-auto-update      
    

说明

  • wget -q https://github.com/atom/atom/releases/latest -O /tmp/latest下载具有最新版本信息的站点

  • wget -q $(awk -F '[<>]' '/href=".*atom-amd64.deb/ {match($0,"href=\"(.*.deb)\"",a); print "https://github.com/" a[1]} ' /tmp/latest) -O /tmp/atom-amd64.deb

    1. … awk -F '[<>]' '/href=".*atom-amd64.deb/ {match($0,"href=\"(.*.deb)\"",a); print "https://github.com/" a[1]} ' /tmp/latest …解压缩下载链接

    2. wget -q $( … ) -O /tmp/atom-amd64.deb下载DEB文件

  • dpkg -i /tmp/atom-amd64.deb安装DEB文件

次佳解决方案

A.B的答案是一个很好的解决方案!我在bash代码中添加了show progress bar选项以通知进度:

#!/bin/bash
wget -q https://github.com/atom/atom/releases/latest -O /tmp/latest
wget --progress=bar -q 'https://github.com'$(cat /tmp/latest | grep -o -E 'href="([^"#]+)atom-amd64.deb"' | cut -d'"' -f2 | sort | uniq) -O /tmp/atom-amd64.deb -q --show-progress
dpkg -i /tmp/atom-amd64.deb

第三种解决方案

作为前面的回答稍作修改,为了让start-up更新,这里是程序

  1. 通过运行命令创建文件:

    sudo nano /usr/local/bin/atom-update  
    

然后键入下面的脚本(使用text-editor如”gedit”或”mousepad”而不是”nano”更方便)然后保存它。

#!/bin/bash    
wget -q https://github.com/atom/atom/releases/latest -O /tmp/latest
MATCHEDROW=$(awk -F '[<>]' '/href=".*atom-amd64.deb/' /tmp/latest)
LATEST=$(echo $MATCHEDROW | grep -o -P '(?<=href=").*(?=" rel)')
VER_LATEST=$(echo $MATCHEDROW | rev | cut -d"/" -f 2 | rev | sed 's/v//g')
VER_INST=$(dpkg -l atom | tail -n1 | tr -s ' ' | cut -d" " -f 3)

if [ "$VER_LATEST" != "$VER_INST" ]; then
   wget --progress=bar -q "https://github.com/$LATEST" -O /tmp/atom-amd64.deb --show-progress
   dpkg -i /tmp/atom-amd64.deb
   echo "Atom has been update from $VER_LATEST to $VER_INST"
   logger -t atom-update "Atom has been update from $VER_INST to $VER_LATEST"
else
   echo "Atom version $VER_INST is the latest version, no update require"
   logger -t atom-update "Atom version $VER_INST is the latest version, no update require"
fi
  1. 要使文件可执行:

    sudo chmod +x /usr/local/bin/atom-update
    
  2. 现在,您可以通过键入以下命令手动更新Atom:

    sudo atom-update
    
  3. 登录到您的root,然后在exit 0命令之前将以下行添加到/etc/rc.local(sudo nano /etc/rc.local):

    /usr/local/bin/atom-update  
    

每次打开PC时都会执行原子更新脚本。

  1. 要在启动时检查脚本是否正常运行,请重新启动PC并打开终端然后键入:

    cat /var/log/syslog | grep 'atom.*'  
    

您将相应地看到日志消息。

第四种方案

基于A.B的回答,我添加了版本检查以避免不必要的下载/安装:

#!/bin/bash

TMP_DIR=$(mktemp -d)

TMP_LATEST="${TMP_DIR}/latest"
TMP_FILE="${TMP_DIR}/atom-amd64.deb"

wget -q https://github.com/atom/atom/releases/latest -O ${TMP_LATEST}
LATEST=$(awk -F '[<>]' '/href=".*atom-amd64.deb/ {match($0,"href=\"(.*.deb)\"",a); print "https://github.com/" a[1]} ' ${TMP_LATEST})
VER_LATEST=$(echo $LATEST | rev | cut -d"/" -f 2 | rev | sed 's/v//g')

VER_INST=$(dpkg -l atom | tail -n1 | tr -s ' ' | cut -d" " -f 3)

if [ "$VER_LATEST" != "$VER_INST" ]; then
  wget -q $LATEST -O $TMP_FILE
  VER_DOWN=$(dpkg-deb -f $TMP_FILE Version)
  if [ "$VER_DOWN" != "$VER_INST" ]; then
    dpkg -i $TMP_FILE
  fi
fi

rm -rf "${TMP_DIR}"

编辑:我应该澄清这将取代A.B的答案提到的/usr /local /bin /atom-auto-update脚本的内容。答案的其他步骤是相同的​​。

第五种方案

好吧,另一个更优雅的版本支持beta分支,如果脚本启动beta参数:$ update-atom beta

#!/bin/bash
DLPATH="https://atom.io/download/deb"
DLDEST="$HOME/Downloads/atom-amd64.deb"

if ! [ -z "$1" ] && [ $1=="beta" ];  then
  echo "Updating beta"
  DLPATH="$DLPATH?channel=beta"
  DLDEST="$HOME/Downloads/atom-amd64-beta.deb"
else
  echo "Updating stable"
fi

rm -f $DLDEST
wget -O $DLDEST $DLPATH 
sudo dpkg -i $DLDEST

第六种方案

通过快照安装Atom将确保您始终拥有最新版本:

sudo snap install atom --classic

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/1579.html,未经允许,请勿转载。