{"id":18209037,"url":"https://github.com/kdabir/nixstall","last_synced_at":"2025-09-01T17:39:42.072Z","repository":{"id":14745948,"uuid":"17467052","full_name":"kdabir/nixstall","owner":"kdabir","description":"Generic package installer for the packages that are not listed in your favourite package manager","archived":false,"fork":false,"pushed_at":"2018-03-04T16:11:55.000Z","size":19,"stargazers_count":9,"open_issues_count":1,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-17T09:11:22.285Z","etag":null,"topics":["installer","linux","macos"],"latest_commit_sha":null,"homepage":"","language":"Shell","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/kdabir.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}},"created_at":"2014-03-06T05:19:47.000Z","updated_at":"2020-07-30T21:58:54.000Z","dependencies_parsed_at":"2022-09-11T15:31:40.480Z","dependency_job_id":null,"html_url":"https://github.com/kdabir/nixstall","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kdabir%2Fnixstall","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kdabir%2Fnixstall/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kdabir%2Fnixstall/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kdabir%2Fnixstall/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kdabir","download_url":"https://codeload.github.com/kdabir/nixstall/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246860173,"owners_count":20845622,"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":["installer","linux","macos"],"created_at":"2024-11-03T14:03:52.857Z","updated_at":"2025-04-02T17:32:09.707Z","avatar_url":"https://github.com/kdabir.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"nixstall\n========\n\nGeneric installer for **\\*nix** platform for the packages that are **not** listed in your favourite package manager.\n\nInstall just about anything from the url using the following command:\n\n    $ nixstall get http://somesite.com/package-1.2.3.zip\n\nOr from the local filesystem using:\n\n    $ nixstall /path/to/package-1.2.3.zip\n\nIf it's the *first* time you are using `nixstall`, then use:\n\n    $ curl -L http://git.io/nixstall | bash -s get http://somesite.com/somepackage-1.2.3.zip\n\n\n## Features\n\n- Download and install archive from remote url or use from local filesystem\n\n- Install any standard package that has `bin` directory\n\n- `nixstall` manages itself automatically. You don't even need to install it.\n\n- Developers can distribute the snippet like the following for their packages as installer.\n        `curl -L http://git.io/nixstall | bash -s get http://yoursite.com/yourpackage-1.2.3.zip`\n\n- Don't need to wait for the maintainer to update the package in package manager.\n\n- `PATH` updated automatically (dynamically)\n\n- No dependencies apart from bash and curl\n\n\n## Why?\n\nMost packages follow a simple structure\n\n    + archive(.zip)\n    |--+ package-v1.0.2/\n    |  |--+ bin/\n    |  |--+ lib/\n    |  |--+ etc/\n    |  ..\n\nBut Installation requires atleast three steps:\n\n1. Download a `.zip`,\n2. Extract it,\n3. And then set the path to its `bin` directory in `PATH` environment variable in dotfiles like `.zshrc` / `.bash_profile`.\n\nThe last step is quite error prone. Do you see a pattern? These three steps can be automated into one. And that's just what `nixstall` does well. No more pesky `PATH` editing.\n\n\n## Example\n\nLet's install Ant. We know it lives [here](http://archive.apache.org/dist/ant/binaries/apache-ant-1.9.3-bin.zip)\n\n    curl -L http://git.io/nixstall | bash -s get http://archive.apache.org/dist/ant/binaries/apache-ant-1.9.3-bin.zip\n\nThis installs ant and in fact install nixstall as well. Now next time on you can use `nixstall` command directly and it all\ngets even terse when you use `nixstall` that's already there on your machine now:\n\n\u003e Note: Ant can be, of course, installed with other package managers. I have chosen `ant` as an example because most of\n\u003e us know it and its binaries are small enough to be downloaded.\n\n\n## User guide\n\n1. Installing nixstall **itself**. Nixstall installs itself whenever you install any package for the first time. But if you\n   want to install nixstall first :\n\n        $ curl -L http://git.io/nixstall | bash -s self\n\n2. Getting archive directly from the site:\n\n        $ nixstall get http://archive.apache.org/dist/ant/binaries/apache-ant-1.9.3-bin.zip\n\n3. Some archive that's already there on your machine:\n\n        $ nixstall /path/to/apache-ant-1.9.3-bin.zip\n\n4. From already extracted dir:\n\n        $ nixstall link /absolute/path/to/ant-1.9.3\n\n    This just creates symlink and does not copy content.\n\n5. Listing paackages installed\n\n        $ nixstall list\n\n6. Reloading path when new package is installed without opening new terminal\n\n        $ nixstall reload\n\n7. Updating nixstall\n\n        $ nixstall self\n\n8. Deleting single package, for example `ant` in this case. You can find path using `nixstall list` command\n    \n        $ rm -rf  ~/.nixstall/apache-ant-1.9.3        \n\n    Nothing more to do (path is automatically managed)\n    \n9. Deleting everything including nixstall\n    \n        $ rm -rf ~/.nixstall\n        \n    Also delete the line below `# Added by nixstall` from `.zshrc` / `.bash_profile` \n\n\n## Limitations\n\n- Archives must follow standard structure i.e. they must have `bin` directory in them.\n- Archives must be self contained. No post processing is supported.\n- You can potentially install multiple versions of same package, and all may end up in `$PATH`. \n\n## Troubleshooting\n\n- If the `nixstall` script or shell functions are not loaded for some reason, try:\n    `source ~/.nixstall/nixstall/bin/nixstall`\n\n- If that does not exist, try one `curl -sL http://git.io/nixstall | bash -s self`\n\n\n## Supported On:\n\n- bash / zsh\n- Mac OS / Linux \n- Zip archives / extracted archives\n\n\n## Developing locally\n\n1. clone the repo\n\n2. edit `bin/nixstall.sh`\n\n3. run `$ bash bin/nixstall.sh \u003c..\u003e` \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkdabir%2Fnixstall","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkdabir%2Fnixstall","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkdabir%2Fnixstall/lists"}