The Funtoo Linux project has transitioned to "Hobby Mode" and this wiki is now read-only.
Difference between revisions of "User:Pnoecker/philosophy of slackware"
(unloading hand compiled binaries) |
|||
(One intermediate revision by the same user not shown) | |||
Line 32: | Line 32: | ||
this shows that our sideloaded hand compiled source is loaded first. | this shows that our sideloaded hand compiled source is loaded first. | ||
{{console|body= | |||
$##i## 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: | |||
{{console|body= | |||
$##i## sudo make uninstall | |||
$##i## bash | |||
$##i## which smartctl | |||
\# /usr/sbin/smartctl | |||
}} |
Latest revision as of 20:00, January 29, 2023
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