Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cannot install bun - Error: × File exists (os error 17) #293

Closed
kavsingh opened this issue Nov 18, 2023 · 2 comments · Fixed by #294
Closed

Cannot install bun - Error: × File exists (os error 17) #293

kavsingh opened this issue Nov 18, 2023 · 2 comments · Fixed by #294
Assignees
Labels
bug Something isn't working

Comments

@kavsingh
Copy link

kavsingh commented Nov 18, 2023

What version?

0.21.1

Which command?

proto install bun

What happened?

Was able to resolve, but thought might be worth filing a report anyway for anyone running into this

i had bun 1.0.9 installed via proto, which was pinned to the default version
i uninstalled bun via

❯ proto uninstall bun 1.0.9

which completed successfully
i then tried to install the latest bun version (1.0.12) which started

❯ proto install bun        
━━━━━━━    Installing Bun 1.0.12

but kept failing

❯ proto install bun        
Error:   × File exists (os error 17)

i tried removing the bun tools folder in root .proto

❯ rm -rf ~/.proto/tools/bun/
❯ ls ~/.proto/tools/bun/
ls: /Users/kav/.proto/tools/bun/: No such file or directory

and tried again, with the same result

❯ proto install bun
Error:   × File exists (os error 17)

the tool seems to be in .proto

❯ ls ~/.proto/tools/bun/
1.0.12			manifest.json		remote-versions.json
❯ ls ~/.proto/tools/bun/1.0.12/
bun

but is not listed and not usable

❯ proto list bun
No versions installed

From the logs below, looks like there was still an existing bun symlink hanging out in ~/.proto/bin

was finally able to resolve by

❯ rm -rf ~/.proto/tools/bun
❯ rm -f ~/.proto/bin/bun
❯ proto install bun
[ INFO 2023-11-18 16:02:35] proto::commands::install:install  Bun has been installed to ~/.proto/tools/bun/1.0.12!

thanks!

Any logs?

❯ PROTO_LOG=trace proto install bun
[DEBUG 2023-11-18 16:00:25] proto  Running proto v0.21.1  args=["proto", "install", "bun"]
[TRACE 16:00:25] starbase::app  Running startup phase with 1 systems 
[TRACE 16:00:25] starbase::app  Running analyze phase with 1 systems 
[TRACE 16:00:25] starbase::app  Running execute phase with 2 systems 
[DEBUG 16:00:25] proto_core::tool_loader:install  Traversing upwards to find a configured plugin  tool="bun"
[TRACE 16:00:26] warpgate::loader:install  Creating plugin loader  cache_dir="/Users/kav/.proto/plugins"
[TRACE 16:00:26] proto_core::helpers:install:is_offline  Checking for an internet connection  timeout=750
[TRACE 16:00:26] proto_core::helpers  Resolving 1.1.1.1:53 
[TRACE 16:00:26] proto_core::helpers:install:is_offline  Online! 
[TRACE 16:00:26] warpgate::loader:install  Loading plugin bun  plugin="bun" locator="source:https://github.com/moonrepo/bun-plugin/releases/latest/download/bun_plugin.wasm"
[TRACE 16:00:26] starbase_utils::fs:install  Reading file metadata  file="/Users/kav/.proto/plugins/bun-latest-a0f91f21dd97eb6089f835f51898bfe2299ac8cfb9c3b6c268599d2f3cb1c539.wasm"
[TRACE 16:00:26] warpgate::loader:install  Plugin already downloaded and cached  plugin="bun" path="/Users/kav/.proto/plugins/bun-latest-a0f91f21dd97eb6089f835f51898bfe2299ac8cfb9c3b6c268599d2f3cb1c539.wasm"
[DEBUG 16:00:26] proto_core::tool_loader:install  Loading WASM plugin  source="/Users/kav/.proto/plugins/bun-latest-a0f91f21dd97eb6089f835f51898bfe2299ac8cfb9c3b6c268599d2f3cb1c539.wasm"
[TRACE 16:00:26] proto_core::tool_loader:install  Storing tool identifier  id="bun"
[TRACE 16:00:26] proto_core::tool_loader:install  Storing user configuration  config={"auto_clean":false,"auto_install":false,"node_intercept_globals":true}
[TRACE 16:00:26] proto_core::tool_loader:install  Storing proto environment  env={"arch":"arm64","os":"macos","home_dir":{"path":"/userhome/","virtual_prefix":"/userhome","real_prefix":"/Users/kav"},"proto_dir":{"path":"/proto/","virtual_prefix":"/proto","real_prefix":"/Users/kav/.proto"}}
[DEBUG 16:00:26] proto_core::tool:install  Creating tool bun and instantiating plugin 
[DEBUG 16:00:26] proto_core::tool_manifest:install:load  Loading manifest.json  file="/Users/kav/.proto/tools/bun/manifest.json"
[TRACE 16:00:26] starbase_utils::fs:install:load  Opening file  file="/Users/kav/.proto/tools/bun/manifest.json"
[TRACE 16:00:26] starbase_utils::fs_lock:install:load  Locking file  file="/Users/kav/.proto/tools/bun/manifest.json"
[TRACE 16:00:26] starbase_utils::fs_lock:install:load  Unlocking file  file="/Users/kav/.proto/tools/bun/manifest.json"
[DEBUG 16:00:26] proto_core::tool:install  Created tool bun and its WASM runtime 
[TRACE 16:00:26] warpgate::plugin:install  Calling plugin function register_tool  plugin="bun" input={"id":"bun"}
[TRACE 16:00:26] warpgate::plugin:install  Called plugin function register_tool  plugin="bun" output={"inventory":{},"name":"Bun","plugin_version":"0.5.0","self_upgrade_commands":["upgrade"],"type":"Language"}
[DEBUG 16:00:26] proto_core::tool:install  Resolving a semantic version or alias  tool="bun" initial_version="latest"
[DEBUG 16:00:26] proto_core::tool:install  Loading available versions  tool="bun"
[TRACE 16:00:26] starbase_utils::fs:install  Reading file metadata  file="/Users/kav/.proto/tools/bun/remote-versions.json"
[TRACE 16:00:26] warpgate::plugin:install  Calling plugin function load_versions  plugin="bun" input={"initial":"latest"}
[TRACE 16:00:26] proto_wasm::exec_command:install  Executing command from plugin  command="git" args=["ls-remote", "--tags", "--sort", "version:refname", "https://github.com/oven-sh/bun"] env_vars={}
[TRACE 16:00:26] proto_wasm::exec_command:install  Executed command from plugin  command="git" exit_code=0 stderr_len=0 stdout_len=9654
[TRACE 16:00:26] warpgate::plugin:install  Called plugin function load_versions  plugin="bun" output={"latest":"1.0.12","aliases":{"latest":"1.0.12"},"versions":["0.0.0-8","0.0.0-9","0.0.0-10","0.0.0-11","0.0.0-12","0.0.0-13","0.0.0-14","0.0.0-15","0.0.15","0.0.16","0.0.17","0.0.18","0.0.19","0.0.20","0.0.21","0.0.22","0.0.23","0.0.24","0.0.25","0.0.26","0.0.27","0.0.28","0.0.29","0.0.30","0.0.31","0.0.32","0.0.34","0.0.35","0.0.36","0.0.37","0.0.38","0.0.39","0.0.40","0.0.41","0.0.42","0.0.43","0.0.44","0.0.45","0.0.46","0.0.48","0.0.49","0.0.50","0.0.51","0.0.52","0.0.53","0.0.54","0.0.55","0.0.56","0.0.57","0.0.58","0.0.59","0.0.60","0.0.61","0.0.62","0.0.63","0.0.64","0.0.65","0.0.66","0.0.68","0.0.69","0.0.70","0.0.71","0.0.72","0.0.73","0.0.74","0.0.75","0.0.76","0.0.77","0.0.78","0.0.79","0.0.80","0.0.81","0.0.82","0.0.83","0.1.0","0.1.1","0.1.2","0.1.3","0.1.4","0.1.5","0.1.6","0.1.7","0.1.8","0.1.9","0.1.10","0.1.11","0.1.12","0.1.13","0.2.0","0.2.1","0.2.2","0.3.0","0.4.0","0.5.0","0.5.1","0.5.2","0.5.3","0.5.4","0.5.5","0.5.6","0.5.7","0.5.8","0.5.9","0.6.0","0.6.1","0.6.2","0.6.3","0.6.4","0.6.5","0.6.6","0.6.7","0.6.8","0.6.9","0.6.10","0.6.11","0.6.12","0.6.13","0.6.14","0.7.0","0.7.1","0.7.2","0.7.3","0.8.0","0.8.1","1.0.0","1.0.1","1.0.2","1.0.3","1.0.4","1.0.5","1.0.6","1.0.7","1.0.8","1.0.9","1.0.10","1.0.11","1.0.12"]}
[TRACE 16:00:26] starbase_utils::json:install  Stringifying JSON  file="/Users/kav/.proto/tools/bun/remote-versions.json"
[TRACE 16:00:26] starbase_utils::fs:install  Writing file  file="/Users/kav/.proto/tools/bun/remote-versions.json"
[DEBUG 16:00:26] proto_core::tool:install  Resolved to 1.0.12  tool="bun" version="1.0.12"
[DEBUG 16:00:26] proto_core::tool:install  Checking if tool is installed  tool="bun" install_dir="/Users/kav/.proto/tools/bun/1.0.12"
[DEBUG 16:00:26] proto_core::tool:install  Tool has not been installed  tool="bun"
[DEBUG 16:00:26] proto::commands::install:install  Installing Bun with version latest 
━━         Installing Bun 1.0.12               [TRACE 16:00:26] starbase_utils::fs_lock:install  Locking directory  dir="/Users/kav/.proto/tools/bun/1.0.12"
[TRACE 16:00:26] starbase_utils::fs:install  Creating file without truncating  file="/Users/kav/.proto/tools/bun/1.0.12/.lock"
[TRACE 16:00:26] starbase_utils::fs_lock:install  Waiting to acquire lock on directory  lock="/Users/kav/.proto/tools/bun/1.0.12/.lock"
[TRACE 16:00:26] starbase_utils::fs_lock:install  Acquired lock on directory, writing PID  lock="/Users/kav/.proto/tools/bun/1.0.12/.lock" pid=86053
[DEBUG 16:00:26] proto_core::tool:install  Installing tool from a pre-built archive  tool="bun"
━━━        Installing Bun 1.0.12               [TRACE 16:00:26] warpgate::plugin:install  Calling plugin function download_prebuilt  plugin="bun" input={"context":{"tool_dir":{"path":"/proto/tools/bun/1.0.12","virtual_prefix":"/proto","real_prefix":"/Users/kav/.proto"},"version":"1.0.12"},"install_dir":{"path":"/proto/tools/bun/1.0.12","virtual_prefix":"/proto","real_prefix":"/Users/kav/.proto"}}
[TRACE 16:00:26] warpgate::plugin:install  Called plugin function download_prebuilt  plugin="bun" output={"archive_prefix":"bun-darwin-aarch64","checksum_url":"https://github.com/oven-sh/bun/releases/download/bun-v1.0.12/SHASUMS256.txt","download_name":"bun-darwin-aarch64.zip","download_url":"https://github.com/oven-sh/bun/releases/download/bun-v1.0.12/bun-darwin-aarch64.zip"}
[DEBUG 16:00:26] proto_core::tool:install  Tool not downloaded, downloading  tool="bun"
━━━━━━━    Installing Bun 1.0.12               [TRACE 16:00:28] starbase_utils::fs:install  Creating directory  dir="/Users/kav/.proto/temp/bun/1.0.12"
[TRACE 16:00:28] starbase_utils::fs:install  Writing file  file="/Users/kav/.proto/temp/bun/1.0.12/bun-darwin-aarch64.zip"
[DEBUG 16:00:28] proto_core::tool:install  Checksum does not exist, downloading  tool="bun"
━          Installing Bun 1.0.12               [TRACE 16:00:28] starbase_utils::fs:install  Writing file  file="/Users/kav/.proto/temp/bun/1.0.12/SHASUMS256.txt"
[DEBUG 16:00:28] proto_core::tool:install  Verifiying checksum of downloaded file  tool="bun" download_file="/Users/kav/.proto/temp/bun/1.0.12/bun-darwin-aarch64.zip" checksum_file="/Users/kav/.proto/temp/bun/1.0.12/SHASUMS256.txt"
[TRACE 16:00:28] proto_core::helpers:install  Calculating SHA256 checksum  file="/Users/kav/.proto/temp/bun/1.0.12/bun-darwin-aarch64.zip"
[TRACE 16:00:28] starbase_utils::fs:install  Opening file  file="/Users/kav/.proto/temp/bun/1.0.12/bun-darwin-aarch64.zip"
━━         Installing Bun 1.0.12               [TRACE 16:00:28] proto_core::helpers:install  Calculated hash  hash="b464101043c1accc7702e22c25b3748bfc686bb1d27f8acdac4ea49b73568c74"
[TRACE 16:00:28] starbase_utils::fs:install  Opening file  file="/Users/kav/.proto/temp/bun/1.0.12/SHASUMS256.txt"
[DEBUG 16:00:28] proto_core::tool:install  Successfully verified, checksum matches  tool="bun"
[DEBUG 16:00:28] proto_core::tool:install  Attempting to unpack archive  tool="bun" download_file="/Users/kav/.proto/temp/bun/1.0.12/bun-darwin-aarch64.zip" install_dir="/Users/kav/.proto/tools/bun/1.0.12"
[TRACE 16:00:28] starbase_archive::archive:install  Unpacking archive  output_dir="/Users/kav/.proto/tools/bun/1.0.12" input_file="/Users/kav/.proto/temp/bun/1.0.12/bun-darwin-aarch64.zip"
[TRACE 16:00:28] starbase_archive::tree_differ:install  Creating a file tree differ for destination directory  dir="/Users/kav/.proto/tools/bun/1.0.12"
[TRACE 16:00:28] starbase_utils::fs:install  Opening file  file="/Users/kav/.proto/temp/bun/1.0.12/bun-darwin-aarch64.zip"
[TRACE 16:00:28] starbase_archive::zip:install  Opening zip  output_dir="/Users/kav/.proto/tools/bun/1.0.12"
[TRACE 16:00:28] starbase_utils::fs:install  Creating file  file="/Users/kav/.proto/tools/bun/1.0.12/bun"
━━━━       Installing Bun 1.0.12               [TRACE 16:00:28] starbase_utils::fs:install  Updating file permissions  file="/Users/kav/.proto/tools/bun/1.0.12/bun" mode="0o100755"
[TRACE 16:00:28] starbase_archive::tree_differ:install  Removing stale and invalid files 
[TRACE 16:00:28] starbase_utils::fs_lock:install  Unlocking directory  dir="/Users/kav/.proto/tools/bun/1.0.12"
[TRACE 16:00:28] starbase_utils::fs:install  Removing file  file="/Users/kav/.proto/tools/bun/1.0.12/.lock"
[DEBUG 16:00:28] proto_core::tool:install  Successfully installed tool  tool="bun" install_dir="/Users/kav/.proto/tools/bun/1.0.12"
[TRACE 16:00:28] starbase_utils::fs_lock:install  Unlocking directory  dir="/Users/kav/.proto/tools/bun/1.0.12"
[DEBUG 16:00:28] proto_core::tool:install  Cleaning up temporary files and downloads  tool="bun"
[TRACE 16:00:28] starbase_utils::fs:install  Removing directory  dir="/Users/kav/.proto/temp/bun/1.0.12"
[DEBUG 16:00:28] proto_core::tool:install  Locating binaries for tool  tool="bun"
[TRACE 16:00:28] warpgate::plugin:install  Calling plugin function locate_bins  plugin="bun" input={"context":{"tool_dir":{"path":"/proto/tools/bun/1.0.12","virtual_prefix":"/proto","real_prefix":"/Users/kav/.proto"},"version":"1.0.12"}}
[TRACE 16:00:28] warpgate::plugin:install  Called plugin function locate_bins  plugin="bun" output={"bin_path":"bun","fallback_last_globals_dir":true,"globals_lookup_dirs":["$HOME/.bun/bin"]}
[DEBUG 16:00:28] proto_core::tool:install  Found a binary  tool="bun" bin_path="/Users/kav/.proto/tools/bun/1.0.12/bun"
[DEBUG 16:00:28] proto_core::tool:install  Creating shims as they either do not exist, or are outdated  tool="bun"
[DEBUG 16:00:28] proto_core::tool_manifest:install:save  Saving manifest  file="/Users/kav/.proto/tools/bun/manifest.json"
[TRACE 16:00:28] starbase_utils::fs:install:save  Creating file without truncating  file="/Users/kav/.proto/tools/bun/manifest.json"
[TRACE 16:00:28] starbase_utils::fs_lock:install:save  Locking file exclusively  file="/Users/kav/.proto/tools/bun/manifest.json"
[TRACE 16:00:28] starbase_utils::fs_lock:install:save  Writing file  file="/Users/kav/.proto/tools/bun/manifest.json"
[TRACE 16:00:28] starbase_utils::fs_lock:install:save  Unlocking file exclusively  file="/Users/kav/.proto/tools/bun/manifest.json"
[TRACE 16:00:28] warpgate::plugin:install  Calling plugin function create_shims  plugin="bun" input={"context":{"tool_dir":{"path":"/proto/tools/bun/1.0.12","virtual_prefix":"/proto","real_prefix":"/Users/kav/.proto"},"version":"1.0.12"}}
[TRACE 16:00:28] warpgate::plugin:install  Called plugin function create_shims  plugin="bun" output={"no_primary_global":false,"global_shims":{"bunx":{"before_args":"x"}},"local_shims":{}}
[DEBUG 16:00:28] proto_core::shimmer:install  Creating global shim  tool="bun" shim="/Users/kav/.proto/shims/bun"
[TRACE 16:00:28] starbase_utils::fs:install  Writing file  file="/Users/kav/.proto/shims/bun"
[TRACE 16:00:28] starbase_utils::fs:install  Updating file permissions  file="/Users/kav/.proto/shims/bun" mode="0o755"
[DEBUG 16:00:28] proto_core::shimmer:install  Creating global shim  tool="bun" shim="/Users/kav/.proto/shims/bunx"
[TRACE 16:00:28] starbase_utils::fs:install  Writing file  file="/Users/kav/.proto/shims/bunx"
[TRACE 16:00:28] starbase_utils::fs:install  Updating file permissions  file="/Users/kav/.proto/shims/bunx" mode="0o755"
[DEBUG 16:00:28] proto_core::tool:install  Creating a symlink to the original tool executable  tool="bun" source="/Users/kav/.proto/tools/bun/1.0.12/bun" target="/Users/kav/.proto/bin/bun"
[TRACE 16:00:28] starbase::app  Running shutdown phase with 1 systems 
Error:   × File exists (os error 17)

Operating system?

Linux

Architecture?

x64

@kavsingh kavsingh added the bug Something isn't working label Nov 18, 2023
@milesj
Copy link
Contributor

milesj commented Nov 18, 2023

I believe this was fixed in 0.22.

I'll try and reproduce it again to verify.

Edit: Looks like its happening still in some cases, looking into.

@milesj
Copy link
Contributor

milesj commented Nov 18, 2023

Found the root cause, fix upstream: moonrepo/starbase#50

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Development

Successfully merging a pull request may close this issue.

2 participants