https://github.com/eliphatfs/apt-local-install
Tool for installing apt packages without root permission in user local space (aptli).
https://github.com/eliphatfs/apt-local-install
apt-get dpkg-deb linux linux-shell package-management package-manager utility
Last synced: 11 months ago
JSON representation
Tool for installing apt packages without root permission in user local space (aptli).
- Host: GitHub
- URL: https://github.com/eliphatfs/apt-local-install
- Owner: eliphatfs
- Created: 2023-03-09T15:08:41.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2023-06-28T10:41:24.000Z (almost 3 years ago)
- Last Synced: 2025-05-04T14:47:17.306Z (12 months ago)
- Topics: apt-get, dpkg-deb, linux, linux-shell, package-management, package-manager, utility
- Language: Python
- Homepage:
- Size: 17.6 KB
- Stars: 31
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# apt-local-install (aptli)
Tool for installing `apt` packages without root permission in local space.
## Getting Started
To use `aptli`, there are a few requirements (but should be satisfied in almost all use cases of the program):
1. The script is written in Python. You will need a `python3` available in the system.
2. `aptli` depends on `apt-get`, `ldconfig` and `dpkg`. These should come with all linux systems with `apt`.
3. `aptli` does not fetch `apt` registries by now, and the system need to have an up-to-date `apt` registry.
An `apt update` needs to be done by the system admin beforehand.
This should always be okay on a system under maintenance.
Then, clone the repository or copy the contents of `aptli` to some local file. If you have `wget` on your system you can do that by:
```bash
wget https://raw.githubusercontent.com/eliphatfs/apt-local-install/main/aptli
chmod 755 ./aptli
```
Execute it to configure `aptli`:
```bash
./aptli
```
`aptli` will configure itself. You probably need to do either of these before
the configurations come into effect:
1. Re-login (or re-enter the `bash` shell at least) into the system.
2. `source ~/.bashrc` in the running shell.
Now, you can install packages without root permission by:
```bash
aptli [ ...]
```
The package will be installed under `~/.local/`.
You may also specify a `.deb` file at the `` to install the package file.
To update the configured `aptli` with a new `aptli` downloaded from this repository, you can call
```bash
./aptli --upgrade-aptli
```
To remove a package installed with `aptli`, call
```bash
aptli --remove
```
## Why `aptli`
I have met it a lot of times when I need to install a package on a system where I am not a sudo-er.
Moreover, the package is not for general use so it is better to install user-wise instead of system-wise.
We may build from the source or extract `.deb` files manually.
But this is a nasty and time-consuming process if some of the dependencies and the dependencies of the dependencies
are not available on the system either.
As a result, I made `aptli`, to install packages locally without sudo permission.
## How `aptli` works
`aptli` configures `.bashrc` so the executables in relevant folders in `.local` could be found by the system command line and
the shared libraries could be loaded by the system linker (`ld`).
It reads and parses `.deb` files, automatically finds and handles the dependencies, and downloads required packages with `apt-get download`.
## Future
+ More CI test cases for the tool.
+ Setup for include files/`-dev` packages.
+ Virtual packages.
+ Try to support triggers and custom install configuration scripts.
+ Version resolution and conflict resolution.
+ Different verbose levels.
+ Parsing repository index.