<p>纱线自我更新应使用最初使用的相同安装方法进行更新</p>

创建于 2016-10-17  ·  64评论  ·  资料来源: yarnpkg/yarn

您要请求_feature_还是报告_bug_?
特征

目前的行为是什么?
yarn self-update总是下载tarball。

预期的行为是什么?
yarn self-update应该使用用户使用的相同安装方法进行更新。 例如,如果通过Debian / Ubuntu软件包安装了Yarn,则yarn self-update应该运行sudo apt-get update && sudo apt-get install yarn 。 在Windows上,通过安装程序安装后,应下载https://yarnpkg.com/latest.msi并执行它。

这与#1138(“启动时添加纱线版本检查”)密切相关,因为两个问题都需要某种方式来确定用户使用的安装方法。

cat-feature good first issue help wanted high-priority triaged

最有用的评论

@kristojorg我有同样的问题。 我(认为我)通过做一堆事情来解决它:

  1. 手动删除纱线二进制文件:
# remove binaries
rm -f /usr/local/bin/yarnpkg
rm -f /usr/local/bin/yarn

# remove cache
rm -rf ${HOME}/.yarn
  1. 如果您的.zshrc.bash_profile ,请将其删除:
export PATH="$PATH:`yarn global bin`"
  1. 通过curl
curl -o- -L https://yarnpkg.com/install.sh | bash
  1. 确保.zshrc.bash_profile包含以下行:
export PATH="$HOME/.yarn/bin:$PATH"

现在,如果您尝试运行yarn -v ,则应该获得最新的稳定版本。

所有64条评论

您是否要关闭此功能,因为已通过https://github.com/yarnpkg/yarn/pull/1429删除了self-update

不,计划是恢复使用该权利的自我更新版本
安装方法。

从我的手机发送。

在2016年12月7日凌晨2:04,“ Scott Busche” [email protected]写道:

由于#1429删除了自我更新,您是否要关闭此窗口
https://github.com/yarnpkg/yarn/pull/1429吗?

-
您收到此消息是因为您创建了线程。
直接回复此电子邮件,在GitHub上查看
https://github.com/yarnpkg/yarn/issues/1139#issuecomment-265172525或静音
线程
https://github.com/notifications/unsubscribe-auth/AAFnHdMyShESFRQIiqAJhZEWI_HgajUoks5rFXmNgaJpZM4KYOBW

如果我使用的是0.18.1,如何更新到下一个版本?

@ meta-meta当前,您需要手动升级。

yarn global add yarn怎么样?

我是Yarn的忠实拥护者,但有点担心如何在不弃用通知的情况下删除自我更新,也没有在发行说明中提及,并且它与PR捆绑在一起, PR的地方有关删除自我更新的讨论。

我了解到Yarn尚处于起步阶段,API有望更改,但如果有一个删除核心功能的流程,那将是很好的。

(很抱歉,如果这不是合适的讨论位置,但是此PR是文档链接到的地方)

纱线全局添加纱线怎么样?

目前尚不支持通过Yarn安装Yarn,这可能会导致多个问题。 我们目前不建议这样做。

@dancoates-自我更新命令从未真正真正地100%正常工作,PR只是删除了现有命令的剩余部分,同时为新的自我更新添加了一些框架内容(根据此问题,将来会出现)

如何手动更新纱线? 不确定这一点,我在Mac上使用brew使其正常工作,但是不确定“手动”在这里的含义...任何提示都值得赞赏。

以与使用Homebrew安装的其他任何应用程序相同的方式进行升级。
我认为它具有“升级”命令。

从我的手机发送。

2017年1月26日上午9:11,“ Cato” [email protected]写道:

如何手动更新纱线? 不确定那件事,我在我的啤酒上
mac使其正常运行,但不确定“手动”在这里的含义...任何提示
赞赏。

-
您收到此消息是因为您创建了线程。
直接回复此电子邮件,在GitHub上查看
https://github.com/yarnpkg/yarn/issues/1139#issuecomment-275447861或静音
线程
https://github.com/notifications/unsubscribe-auth/AAFnHSm1RTv0bZMHtPxkWkS01hPl5Rm3ks5rWNPJgaJpZM4KYOBW

@CatinhoCR我最初使用npm安装yarn,所以我先完成了npm uninstall -g yarnbrew install yarn -现在我已经获得了最新版本。 它也可以使用brew升级命令(如@ Daniel15所述)工作。

npm update yarn -g

您可能会安装纱线宽度的自制酒,所以brew uninstall yarn 。当您需要穿墙安装时,用自制酒来安装纱线不是一个好选择。每次您需要冲泡更新时,总是超时.....

可悲的是, npm update yarn -g并非总能解决问题。 例如,它没有在我的OS / X计算机上从v.0.20.3更新到v.0.21.3。 但是以下方法确实有效:

npm uninstall yarn -g
npm install yarn -g

npm有时会出现一些奇怪的问题,这就是为什么我们不建议您使用它来安装Yarn。

@wardbell只需运行安装即可:

npm install yarn -g

无需先卸载。

我尝试通过自制程序手动更新,但是当我键入yarn --version时仍显示19.0。 我现在正在尝试卸载,但似乎也无法执行此操作... yarn --versionbrew uninstall yarn之后仍显示19.0。 我也尝试了npm uninstall yarn没有运气。

您能否告诉我要完全卸载yarn所需删除的内容,以便可以使用较新的版本重新安装?

@kristojorg我有同样的问题。 我(认为我)通过做一堆事情来解决它:

  1. 手动删除纱线二进制文件:
# remove binaries
rm -f /usr/local/bin/yarnpkg
rm -f /usr/local/bin/yarn

# remove cache
rm -rf ${HOME}/.yarn
  1. 如果您的.zshrc.bash_profile ,请将其删除:
export PATH="$PATH:`yarn global bin`"
  1. 通过curl
curl -o- -L https://yarnpkg.com/install.sh | bash
  1. 确保.zshrc.bash_profile包含以下行:
export PATH="$HOME/.yarn/bin:$PATH"

现在,如果您尝试运行yarn -v ,则应该获得最新的稳定版本。

谢谢!

@kristojorg您还可以将2.更改为${HOME}而不是/Users/adrianmcli

*仅添加此内容是为了使Microsoft Windows上的用户受益。
如果最初使用Chocolatey(Windows的软件包管理器)安装了Yarn,则要将其更新为最新版本,只需执行以下操作:

  1. 以管理员身份启动,打开Windows命令外壳(cmd.exe)。
  2. 运行命令:c:> choco upgrade yarn
  3. 运行c:> yarn --version,并确认它已升级到最新版本。 瞧!

在Ubuntu 16.04上,yarn通过“软件和更新”自动更新。

我有一个类似的问题,问题不是npm并没有更新yarn(而是),但是我的环境中显然有两个链接:

/usr/bin/yarn一个指向/usr/lib/node_modules/yarn/bin/yarn.js (这是npm安装的最新版本)

还有一个/usr/local/bin/yarn指向/usr/local/lib/node_modules/yarn/bin/yarn.js (这是旧版本)

我不知道/usr/local/bin/yarn link来源,但是当我只键入yarn时,它就是我的外壳所使用的那个。 我删除了链接,现在一切都很好。

@MDM如果不知道链接的来源,如何删除/usr/local/bin/yarn链接?

@skube sudo unlink /usr/local/bin/yarn

@MDM谢谢。 所以我做了unlink /usr/local/bin/yarn似乎可行。
然后为了更新到最新版本,运行了npm i -g yarn似乎又重新链接了

❯ npm i -g yarn
/usr/local/bin/yarnpkg -> /usr/local/lib/node_modules/yarn/bin/yarn.js
/usr/local/bin/yarn -> /usr/local/lib/node_modules/yarn/bin/yarn.js

但是我仍然没有更新到最新的0.24.6

❯ yarn -v
yarn install v0.24.5
[1/4] 🔍  Resolving packages...
success Already up-to-date.
✨  Done in 1.51s.

有趣的是,当我执行sudo npm install --global yarn ,并未创建/ usr / local / bin链接,因此我们无法解释我们环境中的某些差异。 至于0.24.5是可用的版本,这似乎是一个npm问题-由于某种原因未安装0.24.6。

我可以确认未安装0.24.6。 我有0.24.5,当我运行npm outdated -g ,npm无法识别有可用的更新。 我不知道这是npm问题还是毛线卷装问题。

我正在使用nvm来管理节点安装,因此我别无选择。 我需要使用npm来安装yarn。

有趣的是,在另一台机器上,我能够...

warning Your current version of Yarn is out of date. The latest version is "0.24.6" while you're on "0.21.3".
info To upgrade, run the following command:
$ curl -o- -L https://yarnpkg.com/install.sh | bash

所以我做了

❯ curl -o- -L https://yarnpkg.com/install.sh | bash
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  6746    0  6746    0     0  22490      0 --:--:-- --:--:-- --:--:-- 22561
Installing Yarn!
/usr/local/bin/yarn
> Downloading tarball...

> We've added the following to your .zshrc
> If this isn't the profile of your current shell then please add the following to your correct profile:

export PATH="$HOME/.yarn/bin:$PATH"

> Successfully installed Yarn 0.24.6! Please open another terminal where the `yarn` command will now be available.

@octopitus以我sudo yarn add global yarn添加权限。

brew upgrade yarnbrew link --overwrite node在OSX山脉上更新了yarn

您是说第二条命令是brew link --overwrite yarn吗?

我相信@localredhead已在节点上安装yarn。 我安装纱如下:
brew install yarn --without-node ,因为我通过使用nvm管理节点。

可能他正在覆盖到节点的链接,因此他使用的是正确的版本,而不是纱线附带的版本。

对于某些人来说,这似乎很明显,但是在Windows我的Windows上(是从MSI或我公司提供的dev env安装脚本中)安装在Program Files (x86) 。 无论我使用哪种升级方法, yarn version都不会让步。 最终,我用which yarn指出了原因所在。 我必须先使用Windows的“更改或删除程序”将其删除,然后再使用npm install -g yarn来重新安装最新版本。 现在,我可以使用npm来控制版本,这要好得多。

@mikechamberlain这对我

最新状态:我们需要重新实现使用原始安装方法的self-update命令。

重新实现的工作。

@onurtemizkan应该相对简单。 如果您遇到困难,请随时发消息给我:)

我们已经掌握了需要运行的命令的信息(因为版本过时,Yarn会在命令中显示一条通知),Yarn只需要实际运行它即可。 使用安装程序时,在Windows上情况略有不同,因为我们必须先下载安装程序,然后再msiexec安装程序。

抱歉打扰😉

您是否考虑过简单地将其委派给npm(假设首先存在npm的话,当然应该运行纱线)。

» npm update -g yarn

令人高兴的是,如果无法解决问题,您始终可以:

So we tried to get npm to handle the update...

Here are your options:
…

Now, aren't u glad to be using yarn for your other packages!

@smotaal有一些问题:

  • 如果通过另一种方法安装了Yarn,则现在将安装两个版本的Yarn(一个通过系统软件包管理器,一个通过npm)。
  • 并非每个人都安装了npm。 纱线不需要安装npm即可运行

如果您的系统是Windows,并且已安装npm,则可以使用npm install yarn<strong i="5">@latest</strong> -g来更新到最高版本。

我不记得大约一年前如何在Mac上设置它,我知道我曾经在使用NPM以外的东西,但是当我丢失线程时,我只是NPMed,除了纱线抱怨时我没有其他问题我很落后,它提醒我进行更新,我只是npm update -g yarn而忘了它,直到下一次提醒为止。

从用户的角度来看,我认为yarn可以推荐“ supported”,也可以提及“ unofficial”,如果“ unofficial”并且不“按预期工作”,请使用“ supported”进行安装,如果需要,此处为“ recommended”撤消“非官方”

坦白地说,对于包管理器来说,拥有一条明确的路径以对其进行良好管理非常重要。

@onurtemizkan您还在为此工作吗?

有没有更新?
我当前的方法是: yarn global add yarn@latest这似乎不是理想的方法

对于那些只想在Windows上自动更新yarn而不需要下载二进制文件的人,我使用choco已有一段时间了,它可以完美地完成这项工作。 这是一个用于安装程序的cmd行工具(就像apt-get )。 您只需运行choco install yarn ,然后就可以安装yarn了。 要进行更新,命令是choco upgrade yarn

抱歉,巧克力味太可怕了。

如果您不喜欢Chocolatey,请不要使用它。

我认为这还不错。 在工作中,我们有很多内部
各种软件包的Chocolatey软件包。 似乎运作良好。

无论如何,此问题专门用于重新实现
纱。 仅在您最初使用的时候才使用Chocolatey! 如果你
直接使用安装程序,升级也将使用安装程序
直。 因此,它不会强迫您使用Chocolatey。

从我的手机发送。

2018年4月20日星期五,上午8:25本杰明·斯坦尼克(Benjamin Staneck) [email protected]
写道:

抱歉,巧克力味太可怕了。

-
您收到此邮件是因为有人提到您。
直接回复此电子邮件,在GitHub上查看
https://github.com/yarnpkg/yarn/issues/1139#issuecomment-382869380或静音
线程
https://github.com/notifications/unsubscribe-auth/AAFnHRZ-MoIxY2rwVGVHWCqXEPQRAlKHks5tqPKggaJpZM4KYOBW

是Chocolatey的替代品,其作用与Brew类似。

纱线只是告诉我我的纱线版本已过时,请我更新到最新的纱线版本。 但是,它的建议-curl&bash命令-使我有些不舒服。 该命令是否可以有效地代替卷曲和烟斗状以提升纱线质量的需求? 该命令是否可以作为纱线的主要且频繁的升级方法?

对于新用户而言,这是非常糟糕的体验:

1)拉出节点的正式和当前的LTS Docker映像(10.12.1),其中包括Yarn 1.10.1。
2) yarn import
3) yarn install表示yarn的版本已过时,建议使用curl | bash命令,这通常被系统管理员和devops团队认为是一个坏主意。
4)在https://yarnpkg.com/en/docs/cli/self-update上找到并运行yarn self-update ,该链接到此Github问题。
5)忘了npm的哪个问题让我首先尝试了yarn。

仍然无法解决,这有点疯狂。 一年多以后,我认为我的解决方案(这里)仍然是最干净的(即使这很乏味又烦人)。

我们应该协作以为此发出命令! 安装程序的辛苦工作已经完成,只需打包替换文件并执行yarn命令即可。

还是行不通?!

我来总结一下我的解决方案上面再次在这里:

  1. 手动删除纱线

    # remove binaries
    rm -f /usr/local/bin/yarnpkg
    rm -f /usr/local/bin/yarn
    
    # remove cache
    rm -rf ${HOME}/.yarn
    

    如果您的.zshrc或.bash_profile中包含以下内容,请将其删除:

    export PATH="$PATH:`yarn global bin`"
    
  2. 安装最新的纱线(通过卷曲)

    curl -o- -L https://yarnpkg.com/install.sh | bash
    

    确保.zshrc或.bash_profile中包含以下行:

    export PATH="$HOME/.yarn/bin:$PATH"
    

最后,运行yarn -v检查您的新版本号。

如果有人想解决这个问题……实际上,我们已经有了确定升级Yarn所需运行命令的代码:
https://github.com/yarnpkg/yarn/blob/master/src/cli/commands/install.js#L86 -L129

您只需要添加一个运行正确命令的“自我升级”命令即可。

@ Daniel15我已经为此提交了请求请求,希望获得一些反馈。 谢谢。

这对我有用:

brew upgrade yarn
npm update yarn -g

有什么消息吗? 我想, npm update yarn -g在此期间有效。

有什么消息吗?

@crmpicco现在,您仍然需要手动更新。

yarn policies set-version [range]似乎是由@arcanis实现的,可以获取并设置最新版本。 不过,该命令的人体工程学原理并不表明它安装了新版本的Yarn-它仍然可以工作。

因此, yarn policies set-version nightly将带您使用最新版本。 公关:
https://github.com/yarnpkg/yarn/pull/6673

不过,我不确定如果要卸载yarn意味着什么。 :思维:

在文档中有一个“升级纱线”部分: https :

@ ilias-t这与更新无关,而是使用相同的安装方法进行更新。

这个问题已超过2年,看来您不在乎。 只需删除该命令,它就不起作用并且会产生误导。

该命令不存在,因此很难删除

就我而言,我相信此问题的初衷已由yarn policies set-version修复。 如果无法正常运行,请随时打开一个新期刊。

此页面是否有帮助?
0 / 5 - 0 等级