Go to file
Elara 43baf8024a
ci/woodpecker/push/woodpecker Pipeline was successful Details
Return error if db.JSON decode hook gets an invalid type
2023-01-01 19:28:16 -08:00
assets Move logo into repo 2022-12-22 13:55:29 -08:00
cmd/lure-api-server Move json_array_contains sql function registration to internal/db 2022-12-27 11:14:04 -08:00
distro Convert distro.ParseOSRelease() into a singleton 2022-12-28 18:40:20 -08:00
docs Restructure and add more documentation 2022-12-23 18:09:27 -08:00
download Add install-completion helper command 2022-11-21 15:20:22 -08:00
internal Return error if db.JSON decode hook gets an invalid type 2023-01-01 19:28:16 -08:00
manager Provide flag for passing package manager arguments 2022-12-28 11:57:07 -08:00
scripts Add noconfirm flags to install script 2022-12-24 16:35:00 -08:00
vercmp Move version comparison to separate package 2022-11-30 11:46:51 -08:00
.gitignore Add Dockerfile and docker.sh script 2022-12-20 21:24:15 -08:00
.goreleaser.yaml Add back 32-bit architectures 2022-12-24 14:09:41 -08:00
.woodpecker.yml Add woodpecker CI config 2022-11-18 08:18:02 +00:00
LICENSE Add GPLv3 License 2022-09-26 19:21:39 +00:00
Makefile Add installmisc target for non-binary files 2023-01-01 19:17:06 -08:00
README.md Replace GenjiDB with SQLite in README 2022-12-24 16:31:42 -08:00
build.go Move CLI helper functions into internal/cliutils 2022-12-29 12:25:37 -08:00
config.go Begin moving repository operations into separate package 2022-11-30 11:45:13 -08:00
db.go Move json_array_contains sql function registration to internal/db 2022-12-27 11:14:04 -08:00
fix.go Switch to SQLite DB 2022-12-24 12:56:02 -08:00
go.mod Remove replace directive for pebble 2022-12-28 20:07:58 +00:00
go.sum Switch to SQLite DB 2022-12-24 12:56:02 -08:00
helpers.go Do two parsing passes when building a package, and prompt user to view script after the first 2022-12-03 11:52:09 -08:00
info.go Move CLI helper functions into internal/cliutils 2022-12-29 12:25:37 -08:00
install.go Move CLI helper functions into internal/cliutils 2022-12-29 12:25:37 -08:00
list.go Actually eliminate duplicate results this time 2022-12-24 13:58:05 -08:00
main.go Display only info for current distro in lure info 2022-12-28 19:04:38 -08:00
repo.go Remove unused imports 2022-11-30 21:46:41 -08:00
upgrade.go Add ignorePkgUpdates field to config 2022-12-18 17:46:40 -08:00

README.md

LURE Logo

LURE (Linux User REpository)

Go Report Card status-badge lure-bin AUR package

LURE is a distro-agnostic build system for Linux, similar to the AUR. It is currently in an alpha state and may not be stable. It is currently able to successfully and consistently build and install packages on various distributions, but there are some bugs that still need to be ironed out.

LURE is written in pure Go and has zero dependencies after building. The only things LURE requires are a command for privilege elevation such as sudo, doas, etc. as well as a supported package manager. Currently, LURE supports apt, pacman, apk, dnf, yum, and zypper. If a supported package manager exists on your system, it will be detected and used automatically.


Installation

Install script

The LURE install script will automatically download and install the appropriate LURE package on your system. To use it, simply run the following command:

curl https://www.arsenm.dev/lure.sh | bash

IMPORTANT: This method is not recommended as it executes any code that is stored at that URL. In order to make sure nothing malicious is going to occur, download the script and inspect it before running.

Packages

Distro packages and binary archives are provided at the latest Gitea release: https://gitea.arsenm.dev/Arsen6331/lure/releases/latest

LURE is also available on the AUR as lure-bin

Building from source

To build LURE from source, you'll need Go 1.18 or newer. Once Go is installed, clone this repo and run:

sudo make install

Why?

Arch Linux's AUR is a very useful feature. It's one of the main reasons I and many others use Arch on most of their devices. However, Arch is not always a good choice. Whether you're running a server that needs to be stable over long periods of time, or you're a beginner and feel intimidated by Arch, there are many different reasons not to use it. Such useful functionality should not be restricted to only a single distro. That is what LURE is meant to solve.


Documentation

The documentation for LURE is in the docs directory in this repo.


Web Interface

LURE now has a web interface! It's open source, licensed under the AGPLv3 (https://gitea.arsenm.dev/Arsen6331/lure-web), and is available at https://lure.arsenm.dev.


Repositories

Unlike the AUR, LURE supports third-party repositories. Also unlike the AUR, LURE's repos are single git repositories containing all the build scripts. Inside each LURE repo, there is a separate directory for each package, containing a lure.sh script, which is a PKGBUILD-like build script for LURE. The default repository is hosted on Github: https://github.com/Arsen6331/lure-repo, and information about its packages is displayed at https://lure.arsenm.dev/pkgs.


Dependencies

As mentioned before, LURE has zero dependencies after compilation. Thanks to the following projects for making this possible:


Planned Features

  • Automated docker-based testing tool