All Projects → alire-project → Alire

alire-project / Alire

Licence: gpl-3.0
Command-line tool from the Alire project and supporting library

Projects that are alternatives of or similar to Alire

libdnf
Package management library.
Stars: ✭ 157 (+45.37%)
Mutual labels:  package-manager, package-management
Scarf
An experimental prototype of a package manager and packaging ecosystem. Currently being rebuilt.
Stars: ✭ 108 (+0%)
Mutual labels:  package-manager, package-management
choco
Chocolatey - the package manager for Windows
Stars: ✭ 8,643 (+7902.78%)
Mutual labels:  package-manager, package-management
Luarocks
LuaRocks is the package manager for the Lua programming language.
Stars: ✭ 2,324 (+2051.85%)
Mutual labels:  package-manager, package-management
Conan Center Index
Recipes for the ConanCenter repository
Stars: ✭ 310 (+187.04%)
Mutual labels:  package-manager, package-management
Habitat
Modern applications with built-in automation
Stars: ✭ 2,334 (+2061.11%)
Mutual labels:  package-manager, package-management
jean
Bored from installing tiny shell scripts and .dotfiles manually? Huh! Missing Shell Package Manager For Linux
Stars: ✭ 21 (-80.56%)
Mutual labels:  package-manager, package-management
nix-portable
Nix - Static, Permissionless, Installation-free, Pre-configured
Stars: ✭ 356 (+229.63%)
Mutual labels:  package-manager, package-management
basalt
The rock-solid Bash package manager
Stars: ✭ 16 (-85.19%)
Mutual labels:  package-manager, package-management
cpm
🌵 A wrapper for package managers to make them consistent for those of us who are lazy.
Stars: ✭ 52 (-51.85%)
Mutual labels:  package-manager, package-management
Sampctl
The Swiss Army Knife of SA:MP - vital tools for any server owner or library maintainer.
Stars: ✭ 149 (+37.96%)
Mutual labels:  package-manager, package-management
Qdd
Download JavaScript Dependencies, really fast
Stars: ✭ 47 (-56.48%)
Mutual labels:  package-manager, package-management
Core Plans
Core Habitat Plan definitions
Stars: ✭ 129 (+19.44%)
Mutual labels:  package-manager, package-management
Pkgtop
Interactive package manager and resource monitor designed for the GNU/Linux.
Stars: ✭ 222 (+105.56%)
Mutual labels:  package-manager, package-management
Bpkg
Lightweight bash package manager
Stars: ✭ 1,601 (+1382.41%)
Mutual labels:  package-manager, package-management
awesome-package-manager
☘ Awesome package manager resources
Stars: ✭ 87 (-19.44%)
Mutual labels:  package-manager, package-management
Patch Package
Fix broken node modules instantly 🏃🏽‍♀️💨
Stars: ✭ 6,062 (+5512.96%)
Mutual labels:  package-manager, package-management
Mpm
Simple Matlab package management inspired by pip
Stars: ✭ 56 (-48.15%)
Mutual labels:  package-manager, package-management
Zigmod
A package manager for the Zig programming language.
Stars: ✭ 81 (-25%)
Mutual labels:  package-manager
Apt Offline
Offline APT Package Manager
Stars: ✭ 102 (-5.56%)
Mutual labels:  package-manager

Linux CI Windows CI MacOS CI Gitter chat

ALR

ALIRE: Ada LIbrary REpository.

A catalog of ready-to-use Ada libraries plus a command-line tool (alr) to obtain, build, and incorporate them into your own projects. It aims to fulfill a similar role to Rust's cargo or OCaml's opam.

Caveat emptor

Documentation at this time is a work in progress. Expect further efforts in this direction until this warning is removed.

TL;DR

Available for Debian stable / Ubuntu >=17.10 / macOS / Windows

The latest release is version 0.7, which is also the first public beta intended for general testing and feedback gathering towards the 1.0 release. See the Getting Started guide for binary downloads.

If, instead, you want to test the latest development version, see Building from sources.

Installation and First Steps

See the Getting Started guide.

Building from sources

The build process of alr is straighforward and depends only on a recent GNAT Ada 2012 compiler. All dependencies are included as submodules. A project file (alr_env.gpr) is provided to drive the build with all necessary configuration (see the macOS extra step below, though).

Follow these steps:

  1. Clone the repository: git clone --recurse-submodules https://github.com/alire-project/alire.git
  2. Enter the cloned repository folder.
  3. Only on macOS: define the environment variable OS=macOS
  4. Build the executable: gprbuild -j0 -P alr_env

The binary will be found at bin/alr. You can run alr version to see version and diagnostics information.

Sourcing the scripts/alr-completion.bash file will provide bash tab autocompletion.

Design principles

alr is tailored to userspace, in a similar way to Python's virtualenv. A project or workspace will contain all its dependencies.

Some crates benefit from using platform packages. In this case the user will be asked to authorize a sudo installation through the platform package manager.

Properties and dependencies of projects are managed through a TOML file. This file exists locally for working copies of projects, and the Alire community index stores the files corresponding to its projects.

The complete build environment is set up by setting the GPR_PROJECT_PATH environment variable before running gprbuild, thus freeing the user from concerns about installation paths. The user simply adds the used projects to its own project GPR file with their simple name.

Supported platforms

Alire requires a recent Ada 2012 compiler. In practice, this currently means GNAT Community or GNAT FSF 7.2 onward. The continuous integration checks are run against Debian stable, Ubuntu LTS, Windows and MacOS.

Note that platform-provided Ada libraries (such as Debian's GtkAda) require the use of the platform Ada compiler. Otherwise these libraries will be unavailable, potentially making dependent crates unavailable too.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].