Normally my first step in my pipeline (.yml) file would be:
npm install -g yarn
This has worked fine up until and including yesterday, but today produces this error:
<span>npm ERR! code EEXIST<br></span><span>npm ERR! syscall symlink</span><span>npm ERR! path ../lib/node_modules/yarn/bin/yarn.js<br></span><span>npm ERR! dest /usr/local/bin/yarn<br></span><span>npm ERR! errno -17</span><span>npm ERR! EEXIST: file already exists, symlink '../lib/node_modules/yarn/bin/yarn.js' -> '/usr/local/bin/yarn'<br></span><span>npm ERR! File exists: /usr/local/bin/yarn<br></span><span>npm ERR! Remove the existing file and try again, or run npm</span><span><br>npm ERR! with --force to overwrite files recklessly.<br></span><span>npm ERR! A complete log of this run can be found in:<br></span><span>npm ERR! /root/.npm/_logs/2019-12-19T09_14_51_680Z-debug.log</span><span>+ npm install -g yarn<br></span>
As far as I know I haven't changed anything else - I am re-running an existing pipeline, which ran fine yesterday. Any ideas what is happening here? Log is below...
<span>+ cat /root/.npm/_logs/*-debug.log<br></span><span>0 info it worked if it ends with ok<br></span><span>1 verbose cli [ '/usr/local/bin/node',</span><span>1 verbose cli '/usr/local/bin/npm',</span><span>1 verbose cli 'install',<br></span><span>1 verbose cli '-g',</span><span>1 verbose cli 'yarn' ]<br></span><span>2 info using npm@6.13.4<br></span><span>3 info using node@v10.18.0<br></span><span>4 verbose npm-session fafe9701af5a68cf<br></span><span>5 silly install loadCurrentTree<br></span><span>6 silly install readGlobalPackageData<br></span><span>7 http fetch GET 200 <a href="https://registry.npmjs.org/yarn" target="_blank" rel="noopener nofollow noreferrer">https://registry.npmjs.org/yarn</a> 125ms<br></span><span>8 silly pacote tag manifest for yarn@latest fetched in 148ms<br></span><span>9 timing stage:loadCurrentTree Completed in 175ms<br></span><span>10 silly install loadIdealTree<br></span><span>11 silly install cloneCurrentTreeToIdealTree<br></span><span>12 timing stage:loadIdealTree:cloneCurrentTree Completed in 0ms<br></span><span>13 silly install loadShrinkwrap</span><span><br>14 timing stage:loadIdealTree:loadShrinkwrap Completed in 3ms</span><span>15 silly install loadAllDepsIntoIdealTree</span><span><br>16 silly resolveWithNewModule yarn@1.21.1 checking installable status<br></span><span>17 timing stage:loadIdealTree:loadAllDepsIntoIdealTree Completed in 6ms<br></span><span>18 timing stage:loadIdealTree Completed in 14ms<br></span><span>19 silly currentTree lib</span><span>20 silly idealTree lib<br></span><span>20 silly idealTree `-- yarn@1.21.1<br></span><span>21 silly install generateActionsToTake<br></span><span>22 timing stage:generateActionsToTake Completed in 3ms<br></span><span>23 silly diffTrees action count 1<br></span><span>24 silly diffTrees add yarn@1.21.1<br></span><span>25 silly decomposeActions action count 8<br></span><span>26 silly decomposeActions fetch yarn@1.21.1</span><span><br>27 silly decomposeActions extract yarn@1.21.1<br></span><span>28 silly decomposeActions preinstall yarn@1.21.1<br></span><span>29 silly decomposeActions build yarn@1.21.1<br></span><span>30 silly decomposeActions install yarn@1.21.1<br></span><span>31 silly decomposeActions postinstall yarn@1.21.1<br></span><span>32 silly decomposeActions finalize yarn@1.21.1<br></span><span>33 silly decomposeActions refresh-package-json yarn@1.21.1<br></span><span>34 silly install executeActions<br></span><span>35 silly doSerial global-install 8<br></span><span>36 verbose correctMkdir /root/.npm/_locks correctMkdir not in flight; initializing<br></span><span>37 verbose lock using /root/.npm/_locks/staging-3a08f0df5026584d.lock for /usr/local/lib/node_modules/.staging<br></span><span>38 silly doParallel extract 1<br></span><span>39 silly extract yarn@1.21.1<br></span><span>40 silly tarball trying yarn@latest by hash: sha512-dQgmJv676X/NQczpbiDtc2hsE/pppGDJAzwlRiADMTvFzYbdxPj2WO4PcNyriSt2c4jsCMpt8UFRKHUozt21GQ==<br></span><span>41 silly tarball no local data for yarn@latest. Extracting by manifest.<br></span><span>42 http fetch GET 200 <a href="https://registry.npmjs.org/yarn/-/yarn-1.21.1.tgz" target="_blank" rel="noopener nofollow noreferrer">https://registry.npmjs.org/yarn/-/yarn-1.21.1.tgz</a> 234ms<br></span><span>43 silly extract yarn@latest extracted to /usr/local/lib/node_modules/.staging/yarn-53412bb0 (249ms)<br></span><span>44 timing action:extract Completed in 252ms<br></span><span>45 silly doReverseSerial unbuild 8<br></span><span>46 silly doSerial remove 8<br></span><span>47 silly doSerial move 8<br></span><span>48 silly doSerial finalize 8</span><span><br>49 silly finalize /usr/local/lib/node_modules/yarn<br></span><span>50 timing action:finalize Completed in 8ms<br></span><span>51 silly doParallel refresh-package-json 1<br></span><span>52 silly refresh-package-json /usr/local/lib/node_modules/yarn</span><span><br>53 timing action:refresh-package-json Completed in 33ms<br></span><span>54 silly doParallel preinstall 1<br></span><span>55 silly preinstall yarn@1.21.1<br></span><span>56 info lifecycle yarn@1.21.1~preinstall: yarn@1.21.1<br></span><span>57 timing action:preinstall Completed in 2ms<br></span><span>58 silly doSerial build 8<br></span><span>59 silly build yarn@1.21.1</span><span><br>60 info linkStuff yarn@1.21.1<br></span><span>61 silly linkStuff yarn@1.21.1 has /usr/local/lib/node_modules as its parent node_modules<br></span><span>62 silly linkStuff yarn@1.21.1 is part of a global install<br></span><span>63 silly linkStuff yarn@1.21.1 is installed into a global node_modules<br></span><span>64 silly linkStuff yarn@1.21.1 is installed into the top-level global node_modules</span><span>65 verbose linkBins [ { yarn: 'bin/yarn.js', yarnpkg: 'bin/yarn.js' },<br></span><span>65 verbose linkBins '/usr/local/bin',</span><span>65 verbose linkBins true ]</span><span>66 verbose gently link refusing to delete existing link { link: '/usr/local/bin/yarn',<br></span><span>66 verbose gently link currentTarget: '/opt/yarn-v1.21.1/bin/yarnpkg',<br></span><span>66 verbose gently link newTarget: '/usr/local/lib/node_modules/yarn/bin/yarn.js',</span><span><br>66 verbose gently link gently: '/usr/local/lib/node_modules/yarn' }</span><span>67 verbose gently link refusing to delete existing link { link: '/usr/local/bin/yarnpkg',<br></span><span>67 verbose gently link currentTarget: '/opt/yarn-v1.21.1/bin/yarnpkg',</span><span>67 verbose gently link newTarget: '/usr/local/lib/node_modules/yarn/bin/yarn.js',<br></span><span>67 verbose gently link gently: '/usr/local/lib/node_modules/yarn' }<br></span><span>68 timing action:build Completed in 7ms<br></span><span>69 verbose unlock done using /root/.npm/_locks/staging-3a08f0df5026584d.lock for /usr/local/lib/node_modules/.staging<br></span><span>70 timing stage:rollbackFailedOptional Completed in 11ms<br></span><span>71 timing stage:runTopLevelLifecycles Completed in 518ms<br></span><span>72 verbose stack Error: EEXIST: file already exists, symlink '../lib/node_modules/yarn/bin/yarn.js' -> '/usr/local/bin/yarn'<br></span><span>73 verbose cwd /opt/atlassian/pipelines/agent/build<br></span><span>74 verbose Linux 4.19.78-coreos<br></span><span>75 verbose argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "-g" "yarn"<br></span><span>76 verbose node v10.18.0<br></span><span>77 verbose npm v6.13.4</span><span><br>78 error code EEXIST<br></span><span>79 error syscall symlink<br></span><span>80 error path ../lib/node_modules/yarn/bin/yarn.js<br></span><span>81 error dest /usr/local/bin/yarn<br></span><span>82 error errno -17</span><span>83 error EEXIST: file already exists, symlink '../lib/node_modules/yarn/bin/yarn.js' -> '/usr/local/bin/yarn'<br></span><span>84 error File exists: /usr/local/bin/yarn<br></span><span>85 error Remove the existing file and try again, or run npm<br></span><span>86 error with --force to overwrite files recklessly.<br></span><span>87 verbose exit [ -17, true ]</span>