Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/michaeldelago/aipm

Package Manager for AppImages
https://github.com/michaeldelago/aipm

Last synced: 2 months ago
JSON representation

Package Manager for AppImages

Awesome Lists containing this project

README

        

# AIPM - A Package Manager for AppImages

###### Scrapes [appimage.github.io/apps](https://appimage.github.io/apps), and creates a small download manager for these

### Usage

`aipm install appimage`

- install a package

`aipm uninstall appimage`
- uninstalls all versions of package

`aipm clean [appimage|all]`
- remove older versions of AppImages

`aipm search search_term`

- search for a package

`aipm import -f library.json`

- import a JSON in library format

`aipm export`

- export to `library.json` in the current working dir

`aipm update`

- Pulls the library from JSON feed
- requires `gh_login` and `gh_token` to be set in configuration

`aipm scrape`[Deprecated]

- generate the library manually

- requires `gh_login` and `gh_token` to be set in configuration

`aipm -h`

- shows you the same thing as above


### Installation

```
- clone repo

- install python dependencies
pip install -r requirements.txt

- symlink aipm
ln -s /path/to/repo/aipm.py /home/USER/bin/aipm

- configure application (edit aipm-sample.yaml, and move it to /home/USER/.config/aipm.yaml)

- import library
aipm import -f /path/to/repo/library.json
OR
aipm update
```

### Notes

- Created when I started using Fedora Silverblue

- Immutable OS, favors applications that are installed via AppImage or Flatpak

- It's super cool and suprisingly usable, I'd recommend looking into it.

- I found shortcomings with a similar project, [spm](https://github.com/simoniz0r/spm)

- funnily enough, you can actually download spm (as an AppImage) with this tool.

- I just wanted a simple tool to install AppImages as needed

- I also wanted to write it

- I thought it would be cool to pull a list of AppImages from an "official" resource

- Before this project, I had no clue how webscraping worked. Turns out it's really easy :E

- I chose shelve as a db because it's lightweight, and has a great context manager

- I don't feel that a full sqlite3 db is necessary for a database so small/simple

### Shortcomings

- There is no rollback (though older versions aren't deleted when new ones are installed)

- If installation through `aipm` isn't working, it's always worth a google search for the project instead

- AppImages and Flatpaks are better and worse than eachother in their own ways.

### Known Bugs/ToDo

- There is sometimes an issue with KeyErrors on the shelve db, due to the way a json can be imported (i think?)

- This would potentially be solved by switching to sqlite3

- Workaround for this is to run an update command

- Implement "upgrade" command

- It should only install a package if there's a newer version

- ideally, if the release cycle is "continuous", it should always download the new version