Document installable builds

This commit is contained in:
Fabian Boehm 2024-12-01 20:09:28 +01:00
parent 3360dcbebc
commit 74e0436c3c
2 changed files with 32 additions and 4 deletions

View File

@ -120,7 +120,7 @@ Building
Dependencies Dependencies
~~~~~~~~~~~~ ~~~~~~~~~~~~
Compiling fish from a tarball requires: Compiling fish requires:
- Rust (version 1.70 or later) - Rust (version 1.70 or later)
- CMake (version 3.5 or later) - CMake (version 3.5 or later)
@ -134,8 +134,8 @@ cloned git repository.
Additionally, running the full test suite requires Python 3, tmux, and the pexpect package. Additionally, running the full test suite requires Python 3, tmux, and the pexpect package.
Building from source (all platforms) - Makefile generator Building from source with CMake
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
To install into ``/usr/local``, run: To install into ``/usr/local``, run:
@ -149,10 +149,34 @@ To install into ``/usr/local``, run:
The install directory can be changed using the The install directory can be changed using the
``-DCMAKE_INSTALL_PREFIX`` parameter for ``cmake``. ``-DCMAKE_INSTALL_PREFIX`` parameter for ``cmake``.
Building fish as self-installable
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also build fish as a self-installing binary.
This will include all the datafiles like the included functions or web configuration tool in the main ``fish`` binary,
and you can unpack them to ~/.local/share/fish/install/ by running ``fish --install`` (or ``fish --install=noconfirm`` to skip the confirmation).
You will have to use ``--install`` once per user and you will have to run it again when you upgrade fish. It will tell you to.
To install fish as self-installable, just use ``cargo``, like:
.. code:: bash
cargo install --path /path/to/fish # if you have a git clone
cargo install --git https://github.com/fish-shell/fish-shell --tag 4.0 # to build from git once 4.0 is released
cargo install --git https://github.com/fish-shell/fish-shell # to build the current development snapshot without cloning
This will place the binaries in ~/.cargo/bin/, but you can place them wherever you want.
This build won't have the html docs (``help`` will open the online version) or translations.
You can also link it statically (but not against glibc) and move it to other computers.
Build options Build options
~~~~~~~~~~~~~ ~~~~~~~~~~~~~
In addition to the normal CMake build options (like ``CMAKE_INSTALL_PREFIX``), fish has some other options available to customize it. In addition to the normal CMake build options (like ``CMAKE_INSTALL_PREFIX``), fish's CMake build has some other options available to customize it.
- BUILD_DOCS=ON|OFF - whether to build the documentation. This is automatically set to OFF when Sphinx isn't installed. - BUILD_DOCS=ON|OFF - whether to build the documentation. This is automatically set to OFF when Sphinx isn't installed.
- INSTALL_DOCS=ON|OFF - whether to install the docs. This is automatically set to on when BUILD_DOCS is or prebuilt documentation is available (like when building in-tree from a tarball). - INSTALL_DOCS=ON|OFF - whether to install the docs. This is automatically set to on when BUILD_DOCS is or prebuilt documentation is available (like when building in-tree from a tarball).

View File

@ -40,6 +40,10 @@ The following options are available:
**-i** or **--interactive** **-i** or **--interactive**
The shell is interactive. The shell is interactive.
**--install[=noconfirm]**
When built as self-installable (via cargo), this will unpack fish's datafiles and place them in ~/.local/share/fish/install/.
Using ``--install=noconfirm`` will skip the confirmation step.
**-l** or **--login** **-l** or **--login**
Act as if invoked as a login shell. Act as if invoked as a login shell.