{"id":13726130,"url":"https://github.com/0install/0install","last_synced_at":"2025-12-16T22:52:02.627Z","repository":{"id":4422615,"uuid":"5560428","full_name":"0install/0install","owner":"0install","description":"the core 0install package","archived":false,"fork":false,"pushed_at":"2024-11-03T18:42:03.000Z","size":13868,"stargazers_count":504,"open_issues_count":9,"forks_count":50,"subscribers_count":20,"default_branch":"master","last_synced_at":"2024-11-03T19:28:42.364Z","etag":null,"topics":["0install","cross-platform","decentralized","package-manager"],"latest_commit_sha":null,"homepage":"https://0install.net/","language":"OCaml","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-2.1","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/0install.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES.md","contributing":null,"funding":null,"license":"COPYING","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":"2012-08-26T14:03:48.000Z","updated_at":"2024-11-03T18:42:07.000Z","dependencies_parsed_at":"2023-07-07T12:01:49.372Z","dependency_job_id":null,"html_url":"https://github.com/0install/0install","commit_stats":{"total_commits":3343,"total_committers":30,"mean_commits":"111.43333333333334","dds":0.07687705653604548,"last_synced_commit":"ae7a474b451f15f4dbe989dfb17f84ce11205eae"},"previous_names":[],"tags_count":150,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0install%2F0install","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0install%2F0install/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0install%2F0install/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0install%2F0install/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/0install","download_url":"https://codeload.github.com/0install/0install/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224654135,"owners_count":17347676,"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":["0install","cross-platform","decentralized","package-manager"],"created_at":"2024-08-03T01:02:53.444Z","updated_at":"2025-12-16T22:51:57.564Z","avatar_url":"https://github.com/0install.png","language":"OCaml","funding_links":[],"categories":["package-manager","OCaml"],"sub_categories":[],"readme":"0install\n========\n\nCopyright Thomas Leonard and others, 2017\n\nINTRODUCTION\n------------\n\nZero Install is a decentralised cross-distribution software installation system\navailable under the LGPL. It allows software developers to publish programs\ndirectly from their own web-sites, while supporting features familiar from\ncentralised distribution repositories such as shared libraries, automatic\nupdates and digital signatures. It is intended to complement, rather than\nreplace, the operating system's package management. 0install packages never\ninterfere with those provided by the distribution.\n\n0install does not define a new packaging format; unmodified tarballs or zip\narchives can be used. Instead, it defines an XML metadata format to describe\nthese packages and the dependencies between them. A single metadata file can be\nused on multiple platforms (e.g. Ubuntu, Debian, Fedora, openSUSE, Mac OS X and\nWindows), assuming binary or source archives are available that work on those\nsystems.\n\n0install also has some interesting features not often found in traditional\npackage managers. For example, while it will share libraries whenever possible,\nit can always install multiple versions of a package in parallel when there are\nconflicting requirements. Installation is always side-effect-free (each package\nis unpacked to its own directory and will not touch shared directories such as\n/usr/bin), making it ideal for use with sandboxing technologies and\nvirtualisation.\n\nThe XML file describing the program's requirements can also be included in a\nsource-code repository, allowing full dependency handling for unreleased\ndeveloper versions. For example, a user can clone a Git repository and build\nand test the program, automatically downloading newer versions of libraries\nwhere necessary, without interfering with the versions of those libraries\ninstalled by their distribution, which continue to be used for other software.\n\nSee [the 0install.net web-site](http://0install.net/) for full details.\n\n\nINSTALLATION\n------------\n\n0install is written in OCaml. You will need the OCaml build tools and some\nOCaml libraries to compile 0install.\n\nThe easiest way to get the dependencies is using [OPAM](http://opam.ocamlpro.com/).\nYou will need opam version 2 or later.\n\n    $ opam switch create 4.07.0\n    $ eval `opam config env`\n    $ opam install yojson xmlm ounit lwt_react ocurl obus lablgtk lwt_glib sha dune\n\nNote: some of these are optional:\n\n- `obus` is used on Linux to add support for D-BUS notifications, installing\n  native packages using PackageKit, and using NetworkManager to check\n  the network status before doing background updates.\n- `lablgtk` and `lwt_glib` provide a GTK GUI.\n- `ocurl` selects the C-based libcurl backend for HTTP. You can instead install\n  the packages `cohttp-lwt-unix lwt_ssl` to get a pure OCaml HTTP client.\n\nAlternatively, you can use your distribution's packages if you prefer (and if\nthey are new enough). For example, on Debian:\n\n    $ sudo apt-get install gettext ocaml-nox ocaml-findlib libyojson-ocaml-dev \\\n       libxmlm-ocaml-dev make liblwt-ocaml-dev libounit-ocaml-dev \\\n       libcurl-ocaml-dev libsha-ocaml-dev \\\n       libobus-ocaml-dev liblablgtk2-ocaml-dev liblwt-glib-ocaml-dev\n\nOn Fedora:\n\n    $ su -c 'yum install gettext ocaml ocaml-findlib ocaml-yojson-devel \\\n       ocaml-biniou-devel ocaml-easy-format-devel ocaml-xmlm-devel \\\n       ocaml-lwt-devel ocaml-ounit-devel ocaml-curl-devel \\\n       ocaml-obus-devel ocaml-lablgtk-devel openssl-devel'\n\nEither way, build and install by running this command in the top-level directory:\n\n    $ make \u0026\u0026 sudo make install\n\nYou can also install just to your home directory (this doesn't require root\naccess):\n\n    $ make \u0026\u0026 make install_home\n    $ export PATH=$HOME/bin:$PATH\n\nLogging out and back in again will ensure $PATH and the Applications menu get\nupdated correctly, on Ubuntu at least.\n\nTo try 0install without installing:\n\n    $ make\n    $ ./dist/files/0install --help\n\n### Windows installation\n\nA C# Windows version of 0install is available at [0install.de](http://0install.de/?lang=en).\nThis uses some of the OCaml code internally, but adds its own user interface and has better Windows integration.\n\nTo compile the OCaml version on Windows (which is currently only really useful if you want to build it for use with the C# code):\n\n1. Install [OPAM for Windows](http://fdopen.github.io/opam-repository-mingw/installation/).\n   I used the 64-bit graphical installer.\n   Choose a mirror when prompted and select `gnupg` when prompted to select extra packages.\n   When this completes, you will have OCaml and a package manager for installing OCaml libraries.\n\nRun the newly installed `Cygwin64 Terminal` application and run these commands at the prompt:\n\n    opam install depext-cygwinports depext\n    opam depext 0install\n    opam pin -y add -k git 0install .\n\nNotes:\n\n- The binary requires various DLLs to run. Use `cygcheck 0install.exe` to get a list of the ones\n  you need and copy them from `/usr/x86_64-w64-mingw32/sys-root/mingw/bin` to the directory containing\n  the 0install binary.\n\n- The tests don't currently pass on Windows.\n\n- The native OCaml code cannot currently cope with archives containing\n  executable files (with the Unix X bit set) - you'll get the error\n  `Incorrect manifest -- archive is corrupted`. When the OCaml version of 0install\n  is run under the .NET version, the .NET version sets the environment variable\n  `%ZEROINSTALL_EXTERNAL_FETCHER%` to a .NET helper process which does the\n  unpacking correctly.\n\nPatches to improve the situation are welcome.\n\n\nTAB COMPLETION\n--------------\n\nA bash completion script is available in share/bash-completion. It can be\nsourced from your .bashrc or added under /usr/share/bash-completion. Note that\nyou may have to install a separate \"bash-completion\" package on some systems.\n\nFor zsh users, copy the script in share/zsh/site-functions/ to a directory in\nyour $fpath (e.g. /usr/local/share/zsh/site-functions).\n\nFor fish-shell users, add the full path to share/fish/completions to\n$fish_complete_path.\n\nThese completion scripts are installed automatically by \"make install\".\n\n\nQUICK START\n-----------\n\nTo install [Edit](http://rox.sourceforge.net/2005/interfaces/Edit) and name it 'rox-edit':\n\n    $ 0install add rox-edit http://rox.sourceforge.net/2005/interfaces/Edit\n\nTo run it (use the name you chose above):\n\n    $ rox-edit\n\nWhen you run it, 0install will check how long it has been since it checked\nfor updates and will run a check in the background if it has been too long.\nTo check for updates manually:\n\n    $ 0install update rox-edit\n    http://rox.sourceforge.net/2005/interfaces/ROX-Lib: 2.0.5 -\u003e 2.0.6\n\nThis shows that ROX-Lib, a library rox-edit uses, was upgraded.\n\nIf an upgrade stops a program from working, use \"0install whatchanged\".\nThis will tell you when the application was last upgraded and what changed, and\ntells you how to revert to the previous version:\n\n    $ 0install whatchanged rox-edit\n    Last checked    : Tue Sep 25 09:45:19 2012\n    Last update     : 2012-09-25\n    Previous update : 2012-08-25\n    \n    http://rox.sourceforge.net/2005/interfaces/ROX-Lib: 2.0.5 -\u003e 2.0.6\n    \n    To run using the previous selections, use:\n    0install run /home/tal/.config/0install.net/apps/rox-edit/selections-2012-08-25.xml\n\nTo see where things have been stored:\n\n    $ 0install show rox-edit\n    - URI: http://rox.sourceforge.net/2005/interfaces/Edit\n      Version: 2.2\n      Path: /home/tal/.cache/0install.net/implementations/sha256=ba3b4953...c8ce3177f08c926bebafcf16b9\n      - URI: http://rox.sourceforge.net/2005/interfaces/ROX-Lib\n        Version: 2.0.6\n        Path: /home/tal/.cache/0install.net/implementations/sha256=ccefa7b187...16b6d0ad67c4df6d0c06243e\n      - URI: http://repo.roscidus.com/python/python\n        Version: 2.7.3-4\n        Path: (package:deb:python2.7:2.7.3-4:x86_64)\n\nTo view or change configuration settings:\n\n    $ 0install config\n\nFor more information, see the man-page for 0install and [the 0install.net web-site](http://0install.net/).\n\n\nCONDITIONS\n----------\n\nThis library is free software; you can redistribute it and/or\nmodify it under the terms of the GNU Lesser General Public\nLicense as published by the Free Software Foundation; either\nversion 2.1 of the License, or (at your option) any later version.\n\nThis library is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\nLesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public\nLicense along with this library; if not, write to the Free Software\nFoundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA\n\n\nBUG REPORTS\n-----------\n\nPlease report any bugs to [the mailing list](http://0install.net/support.html).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F0install%2F0install","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F0install%2F0install","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F0install%2F0install/lists"}