|
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