All Projects → weinholt → Akku

weinholt / Akku

Licence: gpl-3.0
Language package manager for Scheme. (Bug reports to: https://gitlab.com/akkuscm/akku)

Programming Languages

scheme
763 projects

Projects that are alternatives of or similar to Akku

Qpmx
A frontend for qpm, to provide source and build caching
Stars: ✭ 13 (-84.15%)
Mutual labels:  package-manager
Npm Git Install
Clones and (re)installs packages from remote git repos. See npm/npm#3055
Stars: ✭ 49 (-40.24%)
Mutual labels:  package-manager
Cmake Get
Get dependencies with cmake
Stars: ✭ 59 (-28.05%)
Mutual labels:  package-manager
Qgis Mac Packager
Scripts for Official QGIS MacOS Packages
Stars: ✭ 37 (-54.88%)
Mutual labels:  package-manager
Hexagon
A package manager for Hexo
Stars: ✭ 47 (-42.68%)
Mutual labels:  package-manager
Github
a module for building, searching, installing, managing, and mining Stata packages from GitHub
Stars: ✭ 56 (-31.71%)
Mutual labels:  package-manager
Shrine
A TempleOS distro for heretics
Stars: ✭ 922 (+1024.39%)
Mutual labels:  package-manager
Biddle
Self-hosted application distribution
Stars: ✭ 66 (-19.51%)
Mutual labels:  package-manager
Roboget
📦Roboget automates the process of getting apps and downloads directly
Stars: ✭ 49 (-40.24%)
Mutual labels:  package-manager
Unityasync
Task and Async Utility Package for Unity. Start co-routines from anywhere.
Stars: ✭ 58 (-29.27%)
Mutual labels:  package-manager
Aura
A secure, multilingual package manager for Arch Linux and the AUR.
Stars: ✭ 998 (+1117.07%)
Mutual labels:  package-manager
Qdd
Download JavaScript Dependencies, really fast
Stars: ✭ 47 (-42.68%)
Mutual labels:  package-manager
Vim Package Info
Vim plugin to quickly view info about the packages you use
Stars: ✭ 57 (-30.49%)
Mutual labels:  package-manager
Peru
a generic package manager, for including other people's code in your projects
Stars: ✭ 913 (+1013.41%)
Mutual labels:  package-manager
Bibliothecary
📔 Libraries.io Package Manager Manifest Parsers
Stars: ✭ 62 (-24.39%)
Mutual labels:  package-manager
Dnf
Package manager based on libdnf and libsolv. Replaces YUM.
Stars: ✭ 838 (+921.95%)
Mutual labels:  package-manager
Jgo
Launch Java code from the CLI, installation-free. ☕
Stars: ✭ 53 (-35.37%)
Mutual labels:  package-manager
Vpkg
An alternative package manager for V.
Stars: ✭ 78 (-4.88%)
Mutual labels:  package-manager
Dnfdragora
dnfdragora is a dnf frontend based on libyui abstraction
Stars: ✭ 65 (-20.73%)
Mutual labels:  package-manager
Mpm
Simple Matlab package management inspired by pip
Stars: ✭ 56 (-31.71%)
Mutual labels:  package-manager

Akku.scm

Build Status pipeline status Build Status

Akku.scm is a language package manager for Scheme. It grabs hold of code and vigorously shakes it until it behaves properly.

  • No complicated setup to point out where libraries are; Akku finds them!
  • Separately declare dependencies and locked versions for your project.
  • Convert R7RS libraries for use with Chez Scheme and other R6RS Scheme implementations.
  • Numerous R6RS packages, as well as R7RS libraries mirrored from Snow.

Dependencies

Akku requires git and libcurl. It has been tested on GNU/Linux, macOS, FreeBSD, Cygwin, OpenBSD and MSYS2. Although it supports many Scheme implementations, Akku itself currently requires either GNU Guile or Chez Scheme.

Installation

There are these options:

  • Use the release source tarball. This option uses the GNU build system and requires Guile 2.2 (the development package), pkg-config, make, git and libcurl. This works on the widest range of operating systems and architectures.

  • Use the pre-built version from GitLab. Pre-built versions based on Chez Scheme are available for GNU/Linux amd64. Use the file ending with src.tar.xz for other architectures. This type of installation uses ~/.local.

  • If you would like to install directly from Git, then see CONTRIBUTING for instructions. Running bin/akku.sps directly is not going to work.

Please remember to verify the OpenPGP signatures. The releases are signed with E33E61A2E9B8C3A2. The releases are also mirrored on GitHub.

Usage

How to get started with a new project:

  • Run akku init project-name. This creates a new project from a template. You can also safely run akku in your existing project directory.
  • Run akku list to list available packages (akku update downloads the latest package index).
  • Run akku install <pkg> to install a named package. This also installs the code in your current directory into .akku. If you add new source code files you'll need to rerun akku install.
  • Run .akku/env to get a shell in an environment that uses the programs and libraries in .akku.

The installed libraries should now be in the load path of Chez Scheme, Digamma, GNU Guile (with R6RS settings), Ikarus, Larceny, Mosh, Racket (plt-r6rs), Sagittarius, Vicare and Ypsilon. Original R7RS libraries will be available to Chibi, Digamma, Gauche, Larceny and Sagittarius. Any installed programs are available in your shell's path.

Most implementations can use the libraries as-is. GNU Guile requires a small adjustment: guile -x .guile.sls -x .sls. You may also need to enable R6RS syntax with (read-enable 'r6rs-hex-escapes) and (read-enable 'hungry-eol-escapes).

Your users can unpack your source code and run akku install to get the same dependencies that you used during development.

When you have a new package you want to make available to others, you can publish it with akku publish.

More details are in akku.1 manpage.

Docker image

The akkuscm/akku image is automatically built in Docker hub from the repository at GitHub. It is a stripped down build based on Alpine Linux. Here's a simple way to use this image to run tests with GitLab CI:

image: "akkuscm/akku:latest"

build:
  before_script:
    - akku install
  script:
    - .akku/env ./run-tests.sh

Debian-based images are available for a few Scheme implementations. See Docker hub for a list of tags. They come prepared with a scheme-script wrapper that works as described in the R6RS non-normative appendix.

License

Akku.scm is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

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].