Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Help about MediaWiki
FUTO
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
Introduction to a Self Managed Life: a 13 hour & 28 minute presentation by FUTO software
(section)
Main Page
Discussion
English
Read
Edit
Edit source
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
Edit source
View history
General
What links here
Related changes
Special pages
Page information
Appearance
move to sidebar
hide
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
=== The Dependency Hell of the 1990s === Before modern package managers like <code>apt</code> used by Debian(and 6+ years later, ubuntu) or <code>emerge</code> (Gentoo), installing software on GNU/Linux would require '''manually finding & installing specific dependencies.''' Here’s what this hell was like: # You downloaded a <code>.tar.gz</code> file that was the source code of the program you wanted to install, called <code>rabbitholetohell</code>. # You ran <code>./configure</code> & it told you you’re missing <code>libshit</code>. # You found<code>libshit</code>, downloaded it, and discovered ''it'' required (<code>libpiss</code>). # You found <code>libpiss</code> but learned that <code>libpiss</code> needed version 1.2 of <code>libpuke</code> and your computer had version 1.3 of <code>libpuke</code> installed. # Downgrading from version 1.3 of <code>libpuke</code> to version 1.2 of <code>libpuke</code> breaks your entire system. # User throws keyboard at wall & switches back to windows and says forget GNU/Linux for life. # If the user is a sysadmin, they curse and figure out how to make it work because this is their job, wasting tons of time. This was called '''dependency hell''', where each dependency needed more dependencies. it’s what eli the computer guy would correctly call the [https://www.youtube.com/watch?v=I-N_iQC1Uhk rabbit hole to hell] Tools like <code>apt</code> came along in the late 90s. Instead of dependency hell, you typed <code>apt install rabbitholetohell -y</code> & it just installed <code>rabbitholetohell</code>. It installed all the dependencies, & their dependencies, and it installed the right ones. It was beautiful… Yet, even with tools like <code>apt</code> to make installs simpler, problems came up if multiple applications needed '''different versions''' of the same dependency. For example: * '''PHP Example:''' Suppose you wanted to run two applications: ** App 1 requires PHP 7.4. ** App 2 requires PHP 8.1. ** Your system can only have one version of PHP installed at a time, and switching between versions was a [https://www.youtube.com/watch?v=I-N_iQC1Uhk rabbit hole to hell] <div class="figure"> <gallery mode="packed-hover" heights=250 widths=400 perrow=2> File:800px-Netherlandwarf.jpg </gallery> </div> <span id="why-this-is-a-nightmare-for-software-maintenance"></span>
Summary:
Please note that all contributions to FUTO may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
FUTO:Copyrights
for details).
Do not submit copyrighted work without permission!
To protect the wiki against automated edit spam, we kindly ask you to solve the following hCaptcha:
Cancel
Editing help
(opens in new window)