# prenv
**p**ortable **r**eproducible **env**ironments for Linux applications
[](https://pypi.python.org/pypi/prenv)
[](https://github.com/ambv/black)
## What is prenv?
prenv is a tool that allows regular users to deploy applications in a portable and reproducible way.
prenv does not require root privileges to be installed or used.
The focus of prenv is to provide a tool that can be used to run applications in a reproducible way, without the need to install dependencies on the host system.
> prenv does **NOT** aim to provide full isolation between environemtns and the host, for such kind case please consider using Docker or Podman.
## Which applications can I run with prenv?
Currently you can run applications available to install from the following distributions:
|Distro|Status|Command|Exec. time|Notes|
|:----:|:----:|--------|:---------:|:-------|
|Alpine Linux|✓|prenv run alpine:3.17 true|2|
|openSUSE|✓|prenv run opensuse:tumbleweed true|5|
|Void Linux|✓|prenv run voidlinux true|5
|Amazon Linux|✓|prenv run amazonlinux true|6|
|Springdale Linux|✓|prenv run springdalelinux:9 true|8|
|AlmaLinuxOS|✓|prenv run almalinux:9 true|10|
|CentoOS|✓|prenv run centos:9-Stream true|10|
|Fedora Linux|✓|prenv run fedora:37 true|10
|Rocky Linux|✓|prenv run rockylinux:9 true|10|
|Arch Linux|✓|prenv run archlinux true|16|
The Linux images are sourced from https://linuxcontainers.org/ and are based on the official images from the respective distributions.
## System Requirements
- Linux or WSL2 (Kernel version >=4.18)
- Python 3.8, 3.9, 3.10 or 3.11
## How to install
```sh
pip install prenv
```
## How to use
List all the distributions available from the LXC project
```sh
# Check the list of supported distro names in the table above
prenv lxc list
```
### Run an in-memory single run container
Run a shell in an Alpine Linux container
```sh
prenv run alpine:3.17
```
Check the apk version:
```sh
prenv run alpine:3.17 "apk --version"
```
### Create an in-memory multi run container
```sh
prenv create alpine:3.17
```
### Execute a command in a container
```sh
prenv execute alpine:3.17 "apk --version"
```
Raw data
{
"_id": null,
"home_page": "https://github.com/joaompinto/prenv",
"name": "prenv",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "",
"author": "Jo\u00e3o Pinto",
"author_email": "lamego.pinto@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/be/ac/01e05e9d97297740df6e3f319bcf3b291e629bc3f049ac4b0cfb209b0fc7/prenv-0.0.4.tar.gz",
"platform": null,
"description": "# prenv\n\n**p**ortable **r**eproducible **env**ironments for Linux applications\n\n[](https://pypi.python.org/pypi/prenv)\n[](https://github.com/ambv/black)\n\n## What is prenv?\n\nprenv is a tool that allows regular users to deploy applications in a portable and reproducible way.\n\nprenv does not require root privileges to be installed or used.\nThe focus of prenv is to provide a tool that can be used to run applications in a reproducible way, without the need to install dependencies on the host system.\n > prenv does **NOT** aim to provide full isolation between environemtns and the host, for such kind case please consider using Docker or Podman.\n\n## Which applications can I run with prenv?\n\nCurrently you can run applications available to install from the following distributions:\n\n|Distro|Status|Command|Exec. time|Notes|\n|:----:|:----:|--------|:---------:|:-------|\n|Alpine Linux|\u2713|prenv run alpine:3.17 true|2|\n|openSUSE|\u2713|prenv run opensuse:tumbleweed true|5|\n|Void Linux|\u2713|prenv run voidlinux true|5\n|Amazon Linux|\u2713|prenv run amazonlinux true|6|\n|Springdale Linux|\u2713|prenv run springdalelinux:9 true|8|\n|AlmaLinuxOS|\u2713|prenv run almalinux:9 true|10|\n|CentoOS|\u2713|prenv run centos:9-Stream true|10|\n|Fedora Linux|\u2713|prenv run fedora:37 true|10\n|Rocky Linux|\u2713|prenv run rockylinux:9 true|10|\n|Arch Linux|\u2713|prenv run archlinux true|16|\n\n\n\nThe Linux images are sourced from https://linuxcontainers.org/ and are based on the official images from the respective distributions.\n\n## System Requirements\n\n- Linux or WSL2 (Kernel version >=4.18)\n- Python 3.8, 3.9, 3.10 or 3.11\n\n## How to install\n```sh\npip install prenv\n```\n## How to use\n\nList all the distributions available from the LXC project\n```sh\n# Check the list of supported distro names in the table above\nprenv lxc list\n```\n\n### Run an in-memory single run container\nRun a shell in an Alpine Linux container\n```sh\nprenv run alpine:3.17\n```\nCheck the apk version:\n```sh\nprenv run alpine:3.17 \"apk --version\"\n```\n\n### Create an in-memory multi run container\n```sh\nprenv create alpine:3.17\n```\n### Execute a command in a container\n```sh\nprenv execute alpine:3.17 \"apk --version\"\n```\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Portable reproducible environments for Linux applications",
"version": "0.0.4",
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "05e2ce1b8602ee333d6034a72ad4838f254b291c15806a805e3bc00632eca508",
"md5": "ee390170353aec3b0cc101b72e6b353b",
"sha256": "c3bbbf801658d16f1796a9418157c0167ed16a3f479da06572aab82facadee44"
},
"downloads": -1,
"filename": "prenv-0.0.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "ee390170353aec3b0cc101b72e6b353b",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 16009,
"upload_time": "2023-04-07T17:04:45",
"upload_time_iso_8601": "2023-04-07T17:04:45.878243Z",
"url": "https://files.pythonhosted.org/packages/05/e2/ce1b8602ee333d6034a72ad4838f254b291c15806a805e3bc00632eca508/prenv-0.0.4-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "beac01e05e9d97297740df6e3f319bcf3b291e629bc3f049ac4b0cfb209b0fc7",
"md5": "69e8b985c04f457e248a32db33d11386",
"sha256": "96ed051da8d3b08b4b1341288ba2e232a5a79a00e40d44ddd52db2690c9017ba"
},
"downloads": -1,
"filename": "prenv-0.0.4.tar.gz",
"has_sig": false,
"md5_digest": "69e8b985c04f457e248a32db33d11386",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 15507,
"upload_time": "2023-04-07T17:04:47",
"upload_time_iso_8601": "2023-04-07T17:04:47.415649Z",
"url": "https://files.pythonhosted.org/packages/be/ac/01e05e9d97297740df6e3f319bcf3b291e629bc3f049ac4b0cfb209b0fc7/prenv-0.0.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-04-07 17:04:47",
"github": true,
"gitlab": false,
"bitbucket": false,
"github_user": "joaompinto",
"github_project": "prenv",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "drclient",
"specs": []
},
{
"name": "print_err",
"specs": []
},
{
"name": "requests",
"specs": []
},
{
"name": "rich",
"specs": []
},
{
"name": "termcolor",
"specs": []
},
{
"name": "typer",
"specs": []
}
],
"tox": true,
"lcname": "prenv"
}