Cool things to try

Fast package installation

asciicast
  1. Verify i3status is not yet installed: i3status --version
  2. Install the i3status package: distri install i3status
  3. Verify i3status is now installed: i3status --version

Specific package versions

asciicast
  1. Find out which package a file belongs to: readlink -f /bin/i3

  2. If we are unhappy with the path that the exchange directory references, we can side-step it and make a specific selection:

    % i3 --version
    % /ro/i3-amd64-4.15*/bin/i3 --version
    % /ro/i3-amd64-4.17*/bin/i3 --version
    

Exchange directories

asciicast
  1. The /bin directory contains all executables: ls /bin
  2. distri implements common file system hierarchy locations such as /usr/include as a symbolic link to an exchange directory: ls -l /usr/include
  3. Exchange directories consist of symbolic links to the files of individual distri packages: ls -l /usr/include/

Debug symbols and package sources

asciicast
  1. Start the GNU Debugger, e.g. gdb ps
  2. Set a breakpoint on the main function and run the program:
    gdb> break main
    gdb> run
    
  3. Once the breakpoint is hit, list the source code:
    gdb> list
    
  4. Notice that you did not have to manually install any debug packages are sources.

C build environment

asciicast
  1. Make available the build dependencies using distri install autoconf automake make gcc libxcb xorgproto
  2. Build standard C software as usual:
    % git clone https://github.com/i3/i3lock
    % cd i3lock
    % autoreconf -fi
    % mkdir build && cd build
    % ../configure
    % make -j8
    

© 2018 Michael Stapelberg and contributors