Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/lodosgroup/lpm
an experimental package manager for operating systems
https://github.com/lodosgroup/lpm
linux operating-system package-manager rust source-builder unix
Last synced: about 1 month ago
JSON representation
an experimental package manager for operating systems
- Host: GitHub
- URL: https://github.com/lodosgroup/lpm
- Owner: lodosgroup
- License: gpl-2.0
- Created: 2022-02-15T21:49:09.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2024-03-03T19:30:11.000Z (9 months ago)
- Last Synced: 2024-08-02T16:05:13.744Z (4 months ago)
- Topics: linux, operating-system, package-manager, rust, source-builder, unix
- Language: Rust
- Homepage: https://lpm.lodosgroup.org
- Size: 426 KB
- Stars: 65
- Watchers: 2
- Forks: 4
- Open Issues: 21
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
Awesome Lists containing this project
- awesome-rust - lodosgroup/lpm
- awesome-rust - lodosgroup/lpm - An experimental system package manager (Applications / System tools)
- fucking-awesome-rust - lodosgroup/lpm - An experimental system package manager (Applications / System tools)
README
**This is the main source code repository for Lod Package Manager.**
- For a comprehensive understanding of the project, refer to this blog post [An Experimental Package Manager For Operating Systems: LPM](https://onurozkan.dev/read/an-experimental-system-package-manager-lpm/)
- Please refer to the documentation at [lpm.lodosgroup.org/docs](https://lpm.lodosgroup.org/docs/getting-started/introduction) for more information.
- If you'd like to add/update or propose packages for the lpm repositories, please visit [github.com/lodosgroup/package-builds](https://github.com/lodosgroup/package-builds).
- To report bugs, suggest improvements, or request new features, kindly [open a GitHub issue](https://github.com/lodosgroup/lpm/issues/new).
- For security-related concerns, please [open a private security vulnerability report](https://github.com/lodosgroup/lpm/security/advisories/new). We kindly ask you not to create a public issue on GitHub for security matters.
- To explore the packages available in the official lpm repositories, visit [lpm.lodosgroup.org/explore-packages](https://lpm.lodosgroup.org/explore-packages/).
- For guidance on contributing, read [lpm.lodosgroup.org/docs/contributing/contribution-guidelines/](https://lpm.lodosgroup.org/docs/contributing/contribution-guidelines/) and [lpm.lodosgroup.org/docs/contributing/code-of-conduct/](https://lpm.lodosgroup.org/docs/contributing/code-of-conduct/).
- Get the latest news and updates about lpm [lpm.lodosgroup.org/news](https://lpm.lodosgroup.org/news/).
## Quickstart
*Package install and delete demonstration in docker*
![lpm-demo](https://lpm.lodosgroup.org/lpm-demo.svg)
### Install with Cargo
To install LPM from a specific branch, run the following command:
```sh
cargo install --git https://github.com/lodosgroup/lpm --branch main
```Alternatively, you can install it from tags:
```sh
cargo install --git https://github.com/lodosgroup/lpm --branch
```To confirm a successful LPM installation, simply execute the `lpm -v` or `lpm --version` command.
### Build LPM from Source
If you prefer building LPM from its source code (usually preferred for development), follow these steps:
1. **Clone the lpm repository from GitHub**:
```sh
git clone https://github.com/lodosgroup/lpm
```2. **Change into the cloned repository directory**:
```sh
cd lpm
```3. **Build the lpm executable**:
```sh
cargo build --release # exclude the `--release` flag for debugging
```After the building, you will be able to use the lpm executable under`target/{debug/release}` directory.
### Try in Docker
You don't need to install LPM on your host system just to play with it. You can use the docker image instead:
```sh
docker run -it ozkanonur/lpm:alpha
```If you want to do some benchmarking with `perf` tool, you may need to add `--privileged` flag:
```sh
docker run -it --privileged ozkanonur/lpm:alpha
```Now, you can play with LPM as you like in the container without touching your host system.
### Database and Repository Setup (ignore this step if using docker):
1. **Migrate LPM database**:
The first step is to migrate the LPM database. This process initializes the core database files required for LPM to function effectively.
```sh
sudo lpm --update --db
```2. **Add repository**:
Adding a repository is essential for LPM to access and manage packages. A repository acts as the source of packages for your system. Let's add the `linux-amd64-default` repository as an example.
```sh
# args:
sudo lpm --repository --add linux-amd64-default linux-amd64-default.lpm.lodosgroup.org
```Once you've added the repository, LPM will synchronize with the package indexes sourced from the added repository. This indicates that you are all set to install packages.
### Basic Usage
1. **Install a package**:
Installing packages using LPM is straightforward. Simply use the following command, replacing with the name of the package you want to install.
```sh
# args:
sudo lpm --install lzip
```To confirm the successful completion of the installation, you can check by running the command `lzip --version`.
2. **Delete the installed package**:
If you want to delete a package from your system, use the delete command followed by the package name.
```sh
# args:
sudo lpm --delete lzip
```These steps cover the basic operations to quickly start using the LOD Package Manager. You can explore the advanced features of LPM from the docs at https://lpm.lodosgroup.org.