Jump to content

Installing pmbootstrap: Difference between revisions

From postmarketOS Wiki
use syntaxhighlight tags
Minor fixes, remove TODO (the MR is merged now)
Line 7: Line 7:


==== Create a link ====
==== Create a link ====
If the directory <code>~/.local/bin</code> does not already exist, create it with
If the directory <code>~/.local/bin</code> does not already exist, create it with:
<syntaxhighlight lang="shell-session">
<syntaxhighlight lang="shell-session">
$ mkdir --parents ~/.local/bin
$ mkdir --parents ~/.local/bin
</syntaxhighlight>
</syntaxhighlight>


Create a symbolic link in <code>~/.local/bin</code> named <code>pmbootstrap</code>
Create a symbolic link in <code>~/.local/bin</code> named <code>pmbootstrap</code>:
<syntaxhighlight lang="shell-session">
<syntaxhighlight lang="shell-session">
$ ln -s "$PWD/pmbootstrap/pmbootstrap.py" ~/.local/bin/pmbootstrap
$ ln -s "$PWD/pmbootstrap/pmbootstrap.py" ~/.local/bin/pmbootstrap
Line 18: Line 18:


==== Test installation ====
==== Test installation ====
To test that pmbootstrap is installed correctly, open a new terminal and run
To test that pmbootstrap is installed correctly, open a new terminal and run:
<syntaxhighlight lang="shell-session">
<syntaxhighlight lang="shell-session">
$ pmbootstrap --version
$ pmbootstrap --version
</syntaxhighlight>
</syntaxhighlight>


If this returns something like <code>pmbootstrap: command not found</code> instead of a version number, ensure that the following lines are in <code>~/.profile</code> (zsh: <code>~/.zprofile</code>), then open a new terminal and try again.
If this returns something like <code>pmbootstrap: command not found</code> instead of a version number, ensure that the following lines are in <code>~/.profile</code> (zsh: <code>~/.zprofile</code>):
 
<syntaxhighlight lang="shell">
<syntaxhighlight lang="shell">
# set PATH so it includes user's private bin if it exists
# set PATH so it includes user's private bin if it exists
Line 31: Line 30:
fi
fi
</syntaxhighlight>
</syntaxhighlight>
Then open a new terminal and try again.


== Tab Completion ==
== Tab completion ==
{{todo | This is not yet implemented, watch {{MR|1656}} }}
{{note|Make sure you have created and tested the symlink as described above!}}


[https://en.wikipedia.org/wiki/Command-line_completion Tab completion] is an optional feature that saves you time by automatically filling in the rest of a command when you press the tab key. You can also see a list of possible commands by double pressing the tab key.
[https://en.wikipedia.org/wiki/Command-line_completion Tab completion] is an optional feature that saves you time by automatically filling in the rest of a command when you press the tab key. You can also see a list of possible commands by double pressing the tab key.


Install [https://argcomplete.readthedocs.io/en/latest/ argcomplete] with
Install [https://argcomplete.readthedocs.io/en/latest/ argcomplete] with:
<syntaxhighlight lang="shell-session">
<syntaxhighlight lang="shell-session">
$ pip3 install --user argcomplete
$ pip3 install --user argcomplete
</syntaxhighlight>
</syntaxhighlight>


Next, do one of the following depending on the shell you use:
Next, do one of the following depending on the shell you use.
{{note | Note: The following assumes you run pmbootstrap with <code>pmbootstrap</code>. If you use <code>pmbootstrap.py</code>, use that instead}}
 
==== Bash ====
==== Bash ====
Add the following line to <code>~/.bashrc</code>:
Add the following line to <code>~/.bashrc</code>:
<syntaxhighlight lang="shell">
<syntaxhighlight lang="shell">

Revision as of 21:37, 27 August 2018

Installing Manually

Download pmbootstrap

$ git clone https://gitlab.com/postmarketOS/pmbootstrap.git

Create a link

If the directory ~/.local/bin does not already exist, create it with:

$ mkdir --parents ~/.local/bin

Create a symbolic link in ~/.local/bin named pmbootstrap:

$ ln -s "$PWD/pmbootstrap/pmbootstrap.py" ~/.local/bin/pmbootstrap

Test installation

To test that pmbootstrap is installed correctly, open a new terminal and run:

$ pmbootstrap --version

If this returns something like pmbootstrap: command not found instead of a version number, ensure that the following lines are in ~/.profile (zsh: ~/.zprofile):

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/.local/bin" ] ; then
    PATH="$HOME/.local/bin:$PATH"
fi

Then open a new terminal and try again.

Tab completion

Note Make sure you have created and tested the symlink as described above!

Tab completion is an optional feature that saves you time by automatically filling in the rest of a command when you press the tab key. You can also see a list of possible commands by double pressing the tab key.

Install argcomplete with:

$ pip3 install --user argcomplete

Next, do one of the following depending on the shell you use.

Bash

Add the following line to ~/.bashrc:

eval "$(register-python-argcomplete pmbootstrap)"

Then reload your configuration by opening a new terminal or by running source ~/.bashrc.

Zsh

Add the following lines to ~/.zshrc:

autoload bashcompinit
bashcompinit
eval "$(register-python-argcomplete pmbootstrap)"

Then reload your configuration by opening a new terminal or by running source ~/.zshrc.