User:Pnoecker/philosophy of slackware

From Funtoo
Jump to navigation Jump to search

funtoo can be used as a base operating system that functions as a slackware underlayer. slackware publishes an operating system that has a robust gcc compilation system that uses manual dependency resolution and manual compilation of dependencies. funtoo can fill in dependencies through portage and load hand compiled binaries. first we must adjust the $PATH. we need to load /usr/local/bin & /usr/local/sbin before the standard $PATH variables like /bin & /sbin & /usr/bin & /usr/sbin & finally loading /opt/bin & /opt/sbin path binaries.

user $ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin:/usr/lib/llvm/13/bin:/usr/lib/llvm/12/bin

this shows that the default $PATH variable loads slackware appropriate paths. we can compile programs with ./configure && make && make install. these programs installed this way will land binaries in /usr/local/bin or /usr/local/sbin. we only need to resolve dependencies that hand compiled programs require. it makes sense to use portage to pull in underlying dependencies & compile our final package required outside of portage.

  • example: merge smartmontools to pull in it's dependencies:
root # emerge smartmontools
  • download the newest smartmontools from upstream:

https://sourceforge.net/projects/smartmontools/files/smartmontools/ shows 7.3 is latest as of right now.

user $ cd
user $ cd Downloads
user $ tar -xf smartmontools-7.3.tar.gz
user $ cd smartmontools-7.3
user $ ./configure && make
user $ sudo make install
  • reload terminal:
user $ bash
user $ which smartctl
# /usr/local/sbin/smartctl

this shows that our sideloaded hand compiled source is loaded first.

user $ smartctl --version
# smartctl 7.3 2022-02-28 r5338 [x86_64-linux-6.1.4_p1-debian-sources] (local build)
# Copyright (C) 2002-22, Bruce Allen, Christian Franke, www.smartmontools.org

# smartctl comes with ABSOLUTELY NO WARRANTY. This is free
# software, and you are welcome to redistribute it under
# the terms of the GNU General Public License; either
# version 2, or (at your option) any later version.
# See https://www.gnu.org for further details.

# smartmontools release 7.3 dated 2022-02-28 at 16:33:40 UTC
# smartmontools SVN rev 5338 dated 2022-02-28 at 16:34:26
# smartmontools build host: x86_64-pc-linux-gnu
# smartmontools build with: C++11, GCC 11.3.0
# smartmontools configure arguments: [no arguments given
  • To uninstall a hand compiled package, it has to be compiled:
user $ sudo make uninstall
user $ bash
user $ which smartctl
# /usr/sbin/smartctl