{"id":16606577,"url":"https://github.com/adamlamar/rungo","last_synced_at":"2025-10-29T15:32:03.062Z","repository":{"id":201736319,"uuid":"90577938","full_name":"adamlamar/rungo","owner":"adamlamar","description":"Simple shim to run a specific version of Go.","archived":false,"fork":false,"pushed_at":"2019-01-22T00:22:23.000Z","size":44,"stargazers_count":10,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-02T02:32:30.415Z","etag":null,"topics":["build-automation","golang","linux","osx","version-manager","windows"],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/adamlamar.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2017-05-08T02:23:16.000Z","updated_at":"2018-07-02T02:59:18.000Z","dependencies_parsed_at":null,"dependency_job_id":"38b51505-3341-4efd-bb0f-48d85da66dc6","html_url":"https://github.com/adamlamar/rungo","commit_stats":null,"previous_names":["adamlamar/rungo"],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adamlamar%2Frungo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adamlamar%2Frungo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adamlamar%2Frungo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adamlamar%2Frungo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/adamlamar","download_url":"https://codeload.github.com/adamlamar/rungo/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238848257,"owners_count":19540849,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["build-automation","golang","linux","osx","version-manager","windows"],"created_at":"2024-10-12T01:09:16.415Z","updated_at":"2025-10-29T15:31:57.680Z","avatar_url":"https://github.com/adamlamar.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# rungo [![Build Status](https://travis-ci.org/adamlamar/rungo.svg?branch=master)](https://travis-ci.org/adamlamar/rungo)\n\nSimple shim to run the version of Go you need. Different than version managers you've used in the past.\n\n## Installation\n\n```\nbrew install adamlamar/rungo/rungo\n```\n\n## Example\n\n`rungo` replaces your `go`, `gofmt`, and `godoc` binaries. Immediately after installing you can pretend like it isn't even there:\n\n```\n$ go version\ntime=\"2018-05-15T18:36:39-06:00\" level=info msg=\"Downloading file https://storage.googleapis.com/golang/go1.10.2.darwin-amd64.tar.gz\"\ntime=\"2018-05-15T18:36:52-06:00\" level=info msg=\"Successfully extracted \\\"/Users/alamar/.rungo/1.10.2/go1.10.2.darwin-amd64.tar.gz\\\"\"\ngo version go1.10.2 darwin/amd64\n```\n\nOn the first invocation, `rungo` downloads the binary distribution of Go 1.10.2, extracts the tarball to `~/.rungo/\u003cversion\u003e/`, and executes `go version`. All future invocations simply delegate to the appropriate `go` command:\n\n```\n$ go version\ngo version go1.10.2 darwin/amd64\n```\n\n`rungo` can invoke any `go` subcommand, including build, run, tool, etc.\n\n## Version specification\n\nTo specify the desired `go` version, set either the `GO_VERSION` environment variable or use a `.go-version` file.\n\nEnvironment variable:\n```\n$ GO_VERSION=1.9.2 go version\ngo version go1.9.2 darwin/amd64\n```\n\nTo set a default version, use a `.go-version` file in your home directory:\n```\n$ echo \"1.9.2\" \u003e $HOME/.go-version\n$ go version\ngo version go1.9.2 darwin/amd64\n```\n\nOr commit to your git repository on a per-project basis:\n```\n$ cd path/to/my-project\n$ echo \"1.9.2\" \u003e .go-version\n$ git add .go-version \u0026\u0026 git commit\n$ git push\n# =\u003e All users of your project will now use the exact version specified\n```\n\nIf no version is specified, `rungo` will invoke the latest stable golang release shipped as of this version of rungo.\n\n## Platforms\n\nTested on Linux and OSX. Windows support is maintained on a best-effort basis. Other platforms may work, but are untested.\n\nCurrently, only OSX has package manager support using homebrew.\n\n## Building\n\nAt a minimum, `rungo` can build on 1.5, but may work on prior versions. Note that `rungo` should be built using `go build` - using `go run main.go` will not work.\n\n## Manual Installation on Linux\n\nBuild the `rungo` binary, or [download the latest stable release](https://github.com/adamlamar/rungo/releases/latest).\nOnce you have the `rungo` binary, copy it somewhere in your path like `/usr/local/bin`. Then symlink the 3 go commands to the `rungo` binary.\nLike this:\n\n```\n# cp rungo /usr/local/bin\n# ln -s rungo go\n# ln -s rungo gofmt\n# ln -s rungo godoc\n```\n\nDone! You should be able to invoke `go`, `gofmt`, and `godoc` as desired.\n\n## Manual Installation on Windows\n\nBuild the `rungo.exe` binary, or [download the latest stable release](https://github.com/adamlamar/rungo/releases/latest).\n\nExtract the latest release zip file to a temporary directory. For a quick installation, copy the extracted files (go.exe, gofmt.exe, godoc.exe)\ninto `C:\\Windows` which will make them automatically part of your path.\n\nFor a cleaner installation, copy the extracted files to a different directory and add it to your PATH.\n\nIf building `rungo.exe` manually, copy `rungo.exe` to each of `go.exe`, `gofmt.exe`, and `godoc.exe` to the desired directory.\n\n## FAQ\n\n### What are the command line switches and arguments?\nThere are none.\n\n### How can I turn on debug logging?\nSet the environment variable `RUNGO_VERBOSE` to any value. Example: `RUNGO_VERBOSE=t go version`\n\n### How can I download Go from an alternate server?\nBy default, golang archives are downloaded from `https://storage.googleapis.com/golang/`. To use an alternative server, set `RUNGO_DOWNLOAD_BASE` to another value like `https://my.local.network/golang/`. Don't forget the trailing `/`.\n\n### How do I recover disk space used by rungo?\nDelete the versioned directory you don't need anymore in `~/.rungo/\u003cversion\u003e`\n\n### How do I clear rungo's cache completely?\n`rm -rf ~/.rungo`\n\n### How does rungo work?\n`rungo` \"replaces\" the golang binaries that would normally reside in your `$PATH`. For each command that `rungo` instruments, a symlink is used to point back to the `rungo` binary. On startup, `rungo` reads the basename of the program (i.e. the symlink name) and uses that to determine which follow-on command should be invoked. After that, `rungo` determines the appropriate version (downloading if necessary) and exec's with the expected arguments.\n\n### What is the oldest version of go supported by rungo?\nOn OSX, 1.5.4.\n\nOn Linux/Windows, 1.2.2.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadamlamar%2Frungo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fadamlamar%2Frungo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadamlamar%2Frungo/lists"}