https://github.com/vinz3872/lang-install
Install and easily manage your prefered languages using Docker
https://github.com/vinz3872/lang-install
bash docker nodejs ruby
Last synced: 3 months ago
JSON representation
Install and easily manage your prefered languages using Docker
- Host: GitHub
- URL: https://github.com/vinz3872/lang-install
- Owner: vinz3872
- License: mit
- Created: 2021-02-07T09:31:41.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2021-02-07T13:51:39.000Z (over 5 years ago)
- Last Synced: 2025-07-30T05:24:17.330Z (11 months ago)
- Topics: bash, docker, nodejs, ruby
- Language: Shell
- Homepage:
- Size: 40 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Lang-install
==========
Install and easily manage your prefered languages (Ruby, Golang...) and versions using Docker.
You can also install programs like Postgres as long as they have a docker image.
## Requirements
- [Git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git)
- [Docker](https://docs.docker.com/get-docker/)
### External command used (most shells include them by default)
`awk`, `cat`, `chmod`, `cp`, `find`, `grep`, `mkdir`, `realpath`, `rm`, `sed`, `xargs`
## Installation
```bash
git clone https://github.com/vinz3872/lang-install.git
cd lang-install && ./install.sh
```
## Configuration
You can add custom env variables, mount points or packages in **config/.config.yaml**
If a language / program doesn't work with the generic install (or need specific build configuration), you can overwrite it in the **languages** folder
e.g. *node alpine who create a default 'node' user*
## Usage
```console
$ lang_install help
USAGE:
lang_install help
Show usage
lang_install list
List installed languages
lang_install add [OPTIONS] LANGUAGE [VERSION]
Install a new language / version
lang_install remove [OPTIONS] LANGUAGE [VERSION]
Remove an installed language
OPTIONS
-a, --alpine
Use alpine images
-b , --binary
Specify the main binary name. Default is equal to the language's name, can be configured in config/.config.yaml
-d, --debug
Debug mode. Show what binaries whould be installed
-v, --verbose
Show more logs
```
### Examples
```bash
# Install Ruby 2.5.1 and use it by default
lang_install add ruby 2.5.1
# Install Ruby latest and use it by default
lang_install add ruby
# List installed languages
lang_install list
# Remove Ruby 2.5.1
lang_install remove ruby 2.5.1
```
## Tested languages / programs
- Golang *(default / alpine)*
- Node *(default / alpine)*
- Postgres *(default / alpine)*
- Python *(default / alpine)*
- Ruby *(default / alpine)*
## Contributing
1. Fork the Project
2. Create a new Branch (`git checkout -b new-branch`)
3. Commit your Changes (`git commit -m 'add feature'`)
4. Push to the Branch (`git push origin new-branch`)
5. Open a Pull Request
## License
Distributed under the MIT License. See `LICENSE` for more information.