Skip to main content

Simple symlink-based package manager for local installations (without sudo)

Project description

apt-local

image image Documentation Status

Simple symlink-based package manager for local installations (without sudo)

Features

Meant for Debian-based distributions: such as Debian / Ubuntu / Linux Mint and so on.

This package is born out of the frustration of a typical grad student who has no admin-rights over the machine, and has to rely on the system-admin over and over for installation of that "X" package.

Requirements

  • Debian-based OS or atleast dpkg, apt-get and apt-cache installed
  • GNU Stow: HTTP | FTP | Git | CPAN

If Stow is not available in the system you may use this script to install it.

Warning

This is an experimental project, and often results in hit-or-miss situation. The advantages with apt-local is a lightweight installation and installing packages requires no compilation. If you want a more robust package manager use one of the following:

  • NixOS/nix
  • conda/conda
  • fsquillace/junest
  • bpkg/bpkg

Quick start

Install the package using either of the following commands

python setup.py install --user  # with the source code
pip install apt-local --user  # without the source code

To get started choose a local directory where you would like the package to be installed. For example ~/.local or <path-to-scratch-directory>/.local and a directory called apt-cache (name can be anything) under it (very important!). This can simply be done as:

apt-local set-path ~/.local/apt-cache
apt-local show-path

Installing a .deb package is made as simple as:

usage: apt-local install [-h] pkg

positional arguments:
  pkg

For example apt-local install wget.

Usage

The subcommands serve self-explanatory purposes. The subcommands set-path and show-path are used to configure path and display the configured path respectively.

usage: apt-local [-h] {install,uninstall,list,set-path,show-path} ...

positional arguments:
  {install,uninstall,list,set-path,show-path}

optional arguments:
  -h, --help            show this help message and exit

Make your installation useable by setting up environment variables such as PATH, LD_LIBRARY_PATH, CPATH etc. in the ~/.profile or ~/.bashrc. The following snippet can be adapted:

export PATH=$PATH:$HOME/.local/bin
export CPATH=$CPATH:$HOME/.local/include
export LIBRARY_PATH=$LIBRARY_PATH:$HOME/.local/lib
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/.local/lib

Credits

This package was created with Cookiecutter and the ashwinvis/cookiecutter-pypackage project template.

History

0.0.2b1 (2019-09-04)

  • Option -y for install and uninstall

0.0.2b0 (2019-05-15)

  • No need to change directory
  • Now supports uninstall, list and other configuration option
  • Flattten usr dir
  • Avoid duplicate dependencies
  • Add search subcommand
  • Refactor to use src/ layout using cookiecutter

0.0.1b0 (2018-01-19)

  • First release, simple install option alone

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for apt-local, version 0.0.2b1
Filename, size File type Python version Upload date Hashes
Filename, size apt_local-0.0.2b1-py2.py3-none-any.whl (8.0 kB) File type Wheel Python version py2.py3 Upload date Hashes View
Filename, size apt_local-0.0.2b1.tar.gz (16.5 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page