|
|
(30 intermediate revisions by 22 users not shown) |
Line 1: |
Line 1: |
| {{note|Running postmarketOS or Void Linux? Grab pmbootstrap straight from your distribution's package manager (e.g. <code>apk add pmbootstrap</code>)!}}
| | #REDIRECT [[Pmbootstrap#Installation]] |
| | |
| == Requirements ==
| |
| * <code>python</code> >=3.4
| |
| * Depending on the installation method:
| |
| ** <code>pip3</code> (possibly shipped with Python)
| |
| ** <code>git</code>
| |
| | |
| Alpine Linux users also need to install <code>coreutils</code> and <code>procps</code>:
| |
| <syntaxhighlight lang="shell-session">
| |
| $ apk add python3 coreutils procps
| |
| </syntaxhighlight>
| |
| | |
| == pmaports.git ==
| |
| pmbootstrap will automatically clone the [https://gitlab.com/postmarketOS/pmaports/ pmaports.git] repository during <code>pmbootstrap init</code> to the work dir of your choice, and afterwards you can look up the full path with <code>pmbootstrap config aports</code>. See [[git workflow]] for more information.
| |
| | |
| == Installing automatically ==
| |
| === Latest release with pip ===
| |
| pmbootstrap is up on [https://pypi.org/project/pmbootstrap/ pypi] now, so it can be installed with:
| |
| <syntaxhighlight lang="shell-session">
| |
| $ pip3 install --user pmbootstrap
| |
| </syntaxhighlight>
| |
| | |
| You may need to reload your configuration by running <code>source ~/.profile</code>.
| |
| | |
| That's it. The steps below are for alternative methods of installing <code>pmbootstrap</code>. Read on at [[#Tab completion]] if you are interested.
| |
| === Latest development version from git ===
| |
| ==== Download pmbootstrap ====
| |
| <syntaxhighlight lang="shell-session">
| |
| $ git clone https://gitlab.com/postmarketOS/pmbootstrap.git
| |
| </syntaxhighlight>
| |
| | |
| ==== Install ====
| |
| <syntaxhighlight lang="shell-session">
| |
| $ cd pmbootstrap && python3 setup.py install
| |
| </syntaxhighlight>
| |
| | |
| == Installing manually ==
| |
| | |
| This setup is useful for hacking on pmbootstrap code, because you are directly running the code from your git tree. No need to run setup.py after each change.
| |
| | |
| ==== Download pmbootstrap ====
| |
| <syntaxhighlight lang="shell-session">
| |
| $ git clone https://gitlab.com/postmarketOS/pmbootstrap.git
| |
| </syntaxhighlight>
| |
| | |
| ==== Create a link ====
| |
| If the directory <code>~/.local/bin</code> does not already exist, create it with:
| |
| <syntaxhighlight lang="shell-session">
| |
| $ mkdir -p ~/.local/bin
| |
| </syntaxhighlight>
| |
| | |
| Create a symbolic link in <code>~/.local/bin</code> named <code>pmbootstrap</code>:
| |
| <syntaxhighlight lang="shell-session">
| |
| $ ln -s "$PWD/pmbootstrap/pmbootstrap.py" ~/.local/bin/pmbootstrap
| |
| </syntaxhighlight>
| |
| | |
| ==== Test installation ====
| |
| To test that pmbootstrap is installed correctly, open a new terminal and run:
| |
| <syntaxhighlight lang="shell-session">
| |
| $ pmbootstrap --version
| |
| </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>):
| |
| <syntaxhighlight lang="shell">
| |
| # set PATH so it includes user's private bin if it exists
| |
| if [ -d "$HOME/.local/bin" ] ; then
| |
| PATH="$HOME/.local/bin:$PATH"
| |
| fi
| |
| </syntaxhighlight>
| |
| Then open a new terminal and try again.
| |
| | |
| == Tab completion ==
| |
| [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://kislyuk.github.io/argcomplete argcomplete] with:
| |
| <syntaxhighlight lang="shell-session">
| |
| $ pip3 install --user argcomplete
| |
| </syntaxhighlight>
| |
| | |
| Next, do one of the following depending on the shell you use.
| |
| | |
| ==== Bash ====
| |
| Add the following line to <code>~/.bashrc</code>:
| |
| <syntaxhighlight lang="shell">
| |
| eval "$(register-python-argcomplete pmbootstrap)"
| |
| </syntaxhighlight>
| |
| | |
| Then reload your configuration by opening a new terminal or by running <code>source ~/.bashrc</code>.
| |
| | |
| ==== Zsh ====
| |
| Add the following lines to <code>~/.zshrc</code>:
| |
| <syntaxhighlight lang="shell">
| |
| autoload bashcompinit
| |
| bashcompinit
| |
| eval "$(register-python-argcomplete pmbootstrap)"
| |
| </syntaxhighlight>
| |
| | |
| Then reload your configuration by opening a new terminal or by running <code>source ~/.zshrc</code>.
| |
| | |
| == See also ==
| |
| * {{MR|1656}} implement bash tab completion
| |
| | |
| [[Category:Guide]]
| |