{"id":47885214,"url":"https://github.com/dongli/starman","last_synced_at":"2026-04-04T02:14:03.082Z","repository":{"id":138507815,"uuid":"121907742","full_name":"dongli/starman","owner":"dongli","description":"Another package manager for HPC warriors.","archived":false,"fork":false,"pushed_at":"2024-01-02T10:43:57.000Z","size":485,"stargazers_count":66,"open_issues_count":5,"forks_count":15,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-01-02T11:45:55.277Z","etag":null,"topics":["package-manager"],"latest_commit_sha":null,"homepage":"https://dongli.github.com/starman","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dongli.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2018-02-18T01:24:01.000Z","updated_at":"2024-01-02T10:44:06.000Z","dependencies_parsed_at":"2023-05-31T12:01:10.277Z","dependency_job_id":null,"html_url":"https://github.com/dongli/starman","commit_stats":null,"previous_names":[],"tags_count":0,"template":null,"template_full_name":null,"purl":"pkg:github/dongli/starman","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dongli%2Fstarman","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dongli%2Fstarman/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dongli%2Fstarman/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dongli%2Fstarman/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dongli","download_url":"https://codeload.github.com/dongli/starman/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dongli%2Fstarman/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31384907,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-04T01:22:39.193Z","status":"online","status_checked_at":"2026-04-04T02:00:07.569Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["package-manager"],"created_at":"2026-04-04T02:14:02.575Z","updated_at":"2026-04-04T02:14:03.068Z","avatar_url":"https://github.com/dongli.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"Introduction\n============\n\nThis is the third time I rewrote this package manager, and hope this will be\nthe final version. This time I try to simplify the design to make STARMAN\nrobust and focus on HPC usage. I set down the following goals:\n\n* [X] User can use `load` command to change shell environment for specific packages\n  like `modules`.\n* [X] Use database to manage information.\n* [ ] Support package update which is lacked in previous version.\n\nPrerequisites\n=============\n\nSTARMAN is implemented by using Ruby programming language which is good at\nwriting DSL (Domain Specific Language), so the system should have Ruby\ninstalled.\n\n- Ruby \u003e= 2.0\n- SQLite\n\nInstallation\n============\n\nPut STARMAN in any location, and add the following `source` statement in your `.bashrc`:\n\n```\nsource \u003cSTARMAN_directory\u003e/setup/bashrc\n```\n\nRelogin. Then run setup command to kickoff:\n\n```\nstarman setup --install-root \u003cwhere_you_want_to_put_installed_software\u003e \\\n--rc-root \u003cwhere_store_config_and_db_files\u003e \\\n--cache-root \u003cwhere_store_packages_and_temporary_files\u003e\n```\n\nWhere `rc_root` (default is `$USER/.starman`) stores `config` and `history.db`\nwhich should be accessible by anyone who needs to use STARMAN, and `cache_root`\n(default is `/tmp/starman`) is used to store package source codes. *You can put\npredownloaded packages into `cache_root` to avoid download.*\n\nUsage\n=====\n\nWhen first use, you need to edit the configuration by running:\n\n```\nstarman config\n```\n\nAn example is:\n```\n---\ninstall_root: /nfs/software\ncache_root: /tmp/starman\ndefaults:\n  compiler_set: ifort_2013.2.146\ncompiler_sets:\n  ifort_2013.2.146:\n    c: /nfs/software/intel/composer_xe_2013.2.146/bin/intel64/icc\n    cxx: /nfs/software/intel/composer_xe_2013.2.146/bin/intel64/icpc\n    fortran: /nfs/software/intel/composer_xe_2013.2.146/bin/intel64/ifort\n```\n\nYou are advised to give each compiler set a good name, and NEVER change them\nsince they will be casted into packages' prefix.\n\nYou can list the help message of each command by:\n\n```\n$ starman \u003ccommand\u003e -h/--help\n```\n\n```\n      _______  _______  _______  ______    __   __  _______  __    _\n     |       ||       ||   _   ||    _ |  |  |_|  ||   _   ||  |  | |\n     |  _____||_     _||  |_|  ||   | ||  |       ||  |_|  ||   |_| |\n     | |_____   |   |  |       ||   |_||_ |       ||       ||       |\n     |_____  |  |   |  |       ||    __  ||       ||       ||  _    |\n      _____| |  |   |  |   _   ||   |  | || ||_|| ||   _   || | |   |\n     |_______|  |___|  |__| |__||___|  |_||_|   |_||__| |__||_|  |__|\n\nSTARMAN: Another package manager for Linux/Mac programmer.\nCopyright (C) 2015-2018 - All Rights Reserved.\n\n    \u003e\u003e\u003e starman install \u003cpackage_name\u003e ... [options]\n\n    -r, --rc-root PATH               Set runtime configuration root directory.\n    -d, --debug                      Print debug information.\n    -v, --verbose                    Print more information including build output.\n    -c, --compiler-set NAME          Set the active compiler set by its name set in conf file.\n    -k, --skip-test                  Skip possible build test (e.g., make test).\n    -j, --make-jobs NUMBER           Set the number of making jobs (currently only works for hdf5 and netcdf).\n    -h, --help                       Print this help message.\n```\n\nInstall package\n---------------\n\n```\n$ starman install netcdf\n```\n\nor\n\n```\n$ starman install hdf5 -j 4           # Currently only works for hdf5 and netcdf.\n```\n\nto use more threads to build hdf5.\n\nLoad package\n------------\n\nIn your `.bashrc` after STARMAN source statement, add the load commands:\n\n```\nstarman load netcdf\n```\n\nThis command will load the environment settings (e.g., `PATH`,\n`LD_LIBRARY_PATH`) into current shell (currently only BASH). You can use\n`NETCDF_ROOT` environment variable in any place you need to refer to the\nlocation of netcdf.\n\nUninstall package\n-----------------\n\n```\n$ starman uninstall netcdf\n```\n\nor\n\n```\n$ starman rm netcdf\n```\n\nContribution\n============\n\nIf you are familiar with package installation and system admin, you can\ncontribute new packages by writing a package `DSL` file in Ruby language as\n[netcdf-c.rb](https://github.com/dongli/starman/blob/master/packages/netcdf-c.rb).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdongli%2Fstarman","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdongli%2Fstarman","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdongli%2Fstarman/lists"}