|
1 | 1 | = Pijul Bootstrap
|
2 | 2 |
|
3 |
| -This is a quick way to get started with https://pijul.org[Pijul]. Pijul is a **much better** version control system than `git`, but is a bit painful to initially install, because it depends on either itself or rust+cargo+nix. |
| 3 | +This is a quick way to get started with https://pijul.org[Pijul]. |
4 | 4 |
|
5 |
| -Instead, this repo provides `pijul`` as: |
| 5 | +Pijul is a **much better** version control system than `git`, but is a bit painful to initially install, because it depends on either itself or rust+cargo+nix. I think that Pijul deserves to do better, and making it easier to get started with will probably help, so this is an easier way. |
6 | 6 |
|
7 |
| -- a pre-compiled as a binary for amd64 linux, which only needs some commonly available distro libraries |
8 |
| -- a Docker Linux container image tarball, which you can download, import, and run (or use as a base image to extend) with no further dependencies (except docker/podman) |
9 |
| -- A simple `pij` script that runs the docker image provided above (once it has been manually installed - a docker upload will come soon, meaning no manual installation other than the script itself). |
| 7 | +This repo provides `pijul` as: |
10 | 8 |
|
11 |
| -== Binary executable installation |
| 9 | +- (primarily) a wrapper script that "just works", if you have docker installed and working. |
| 10 | +- (optionally) a pre-compiled as a binary for amd64 linux, which only needs some commonly available distro libraries |
12 | 11 |
|
13 |
| -1. Download the latest pijul-$VERSION-$ARCH release executable and install it **(as root)** to /usr/local/bin (set VERSION and ARCH to match what you downloaded, of course): |
| 12 | +
|
| 13 | +== User-only install (for docker): |
| 14 | + |
| 15 | +1. Download the `bin/pij` script, and install it to `$HOME/.local/bin`: |
14 | 16 | +
|
15 | 17 | [source,shell]
|
16 | 18 | ----
|
17 |
| -VERSION=1.0.0-alpha |
18 |
| -ARCH=x86_64 |
19 |
| -install pijul-$ARCH-$VERSION /usr/local/bin/pijul |
| 19 | +install pij $HOME/.local/bin |
20 | 20 | ----
|
21 | 21 |
|
22 |
| -2. Install the dependencies. |
| 22 | +2. Add this directory to your shell path. For bash, for example: |
23 | 23 | +
|
24 |
| -For debian-likes (Debian, Ubuntu, Devuan), this command is: |
25 | 24 | [source,shell]
|
26 | 25 | ----
|
27 |
| -RUN apt-get update && apt-get install -y libsodium23 libssl3 |
| 26 | +echo >> ~/.bashrc 'export PATH="$HOME/.local/bin:$PATH"' |
28 | 27 | ----
|
29 | 28 |
|
30 |
| -3. Run `pijul` as usual |
31 |
| - |
| 29 | +3. Run `pijul` as normal, per the official documentation. |
32 | 30 |
|
33 |
| -== Docker image |
34 | 31 |
|
35 |
| -The docker image can be downloaded from releases, and used as follows (again, set VERSION and ARCH to match what you downloaded, of course): |
| 32 | +== System-wide install (for docker): |
36 | 33 |
|
37 |
| -1. Import the docker save image: |
| 34 | +1. Download the `bin/pij` script, and install it **(as root)**, to `/usr/local/bin/pijul`: |
38 | 35 | +
|
39 | 36 | [source,shell]
|
40 | 37 | ----
|
41 |
| -VERSION=1.0.0-alpha |
42 |
| -ARCH=x86_64 |
43 |
| -gunzp pijul-serve-${ARCH}-${VERSION}.tar.gz |
44 |
| -docker import pijul-serve-${ARCH}-${VERSION}.tar |
| 38 | +install pij /usr/local/bin/pijul |
45 | 39 | ----
|
46 | 40 |
|
47 |
| -3. Tag the version as the latest one: |
| 41 | + |
| 42 | +== Binary executable installation |
| 43 | + |
| 44 | +1. Download the latest pijul-$VERSION-$ARCH release executable and install it **(as root)** to /usr/local/bin (set VERSION and ARCH to match what you downloaded, of course): |
48 | 45 | +
|
49 | 46 | [source,shell]
|
50 | 47 | ----
|
51 |
| -docker tag pijul-serve:${ARCH}-${VERSION} pijul-serve:latest |
| 48 | +VERSION=1.0.0-alpha |
| 49 | +ARCH=x86_64 |
| 50 | +install pijul-$ARCH-$VERSION /usr/local/bin/pijul |
52 | 51 | ----
|
53 | 52 |
|
54 |
| -4. Run `pijul` using docker |
55 |
| -+ |
56 |
| -You need to map the directory that you want to work in to /workspace, and also be sure to run it as your current user and group id, so that any files are created as you. |
| 53 | +2. Install the dependencies. |
57 | 54 | +
|
| 55 | +For debian-likes (Debian, Ubuntu, Devuan), this command is: |
58 | 56 | [source,shell]
|
59 | 57 | ----
|
60 |
| -docker run -u `id -u`:`id -g` -v $(pwd):/workspace -ti pijul-serve |
| 58 | +RUN apt-get update && apt-get install -y libsodium23 libssl3 |
61 | 59 | ----
|
62 |
| -+ |
63 |
| -See below on a script that simplifies this step. |
64 | 60 |
|
65 |
| -== `pij` wrapper for docker |
| 61 | +3. Run `pijul` as usual |
66 | 62 |
|
67 |
| -1. Download and install the `bin/pij` script **(as root)**: |
68 |
| -+ |
69 |
| -[source,shell] |
70 |
| ----- |
71 |
| -install pij /usr/local/bin |
72 |
| ----- |
73 | 63 |
|
74 |
| -2. Run `pij` instead of the more complex `docker run` command given above. They're essentially the same. |
| 64 | +== Docker image (from docker hub) |
| 65 | + |
| 66 | +This may be useful if you want to build another container that pijul, such as a container-based pijul repo server. However, you are advised to study the Dockerfile and build your own as needed, rather than relying on this for production updates etc. |
| 67 | ++ |
| 68 | +1. Run `docker pull leebraid/pijul-bootstrap:latest`. |
| 69 | +2. Use the `pijul` command within the docker container as usual (consult the docker documentation if unsure at this point). |
| 70 | +3. To use this in a Dockerfile, of course just do `FROM docker.io/leebraid/pijul-bootstrap:latest AS base`, or whatever. |
75 | 71 |
|
76 |
| -3. From now on, you can use `pij` per the documentation for `pijul` on the official website. |
77 | 72 |
|
78 | 73 | == Contributing
|
79 | 74 |
|
80 | 75 | - Please fork the code and submit a PR for any improvements. In particular, the following improvements are welcome:
|
81 | 76 |
|
82 |
| - + Making the rust build fully static |
| 77 | + + Making the rust binary executable build fully static |
83 | 78 | + Library installation instructions for distros other than debian-likes.
|
| 79 | + + automated CI/CD updates from the pijul repo, so I don't have to maintain this ;) |
0 commit comments