De eerste vraag die wellicht opkomt is, "Hoe weten we welke opdrachten nodig zijn?". Het is mogelijk gewoon te beginnen met cat en ls om vervolgens andere opdrachten te installeren zodra we bemerken dat we die nodig hebben. Maar dit is behoorlijk inefficiënt. We hebben een plan of blauwdruk nodig om van uit te kunnen gaan. Hiervoor kunnen we ons wenden tot de Filesystem Hierarchy Standard (FHS) beschikbaar vanaf http://www.pathname.com/fhs/. De FHS schrijft voor welke opdrachten op een Linux systeem aanwezig zouden moeten zijn en waar ze zouden moeten worden geplaatst in de directorystructuur.
De volgende logische vraag is, "Waar halen we de broncode vandaan, nu we weten wat we nodig hebben?" Een manier om achter het antwoord te komen op deze vraag is de manpages na te gaan. We kunnen zowel de manpages opgenomen in één van de populaire GNU/Linux distributies doorzoeken als gebruik maken van één van de zoekmachines die staan opgesomd op http://www.tldp.org/docs.html#man. Wat ons een aanwijzing zou kunnen geven waar de broncode vandaan gehaald zou kunnen worden van een bepaalde opdracht is het e-mailadres dat wordt weergegeven voor het rapporteren van programmeerfouten. In bijvoorbeeld de manpage voor cat staat het adres bug-textutils@gnu.org. Uit dit e-mailadres kunnen we afleiden dat cat onderdeel uitmaakt van het pakket textutils van GNU.
Dus laten we eens kijken naar de FHS vereisten voor de directory /bin. De eerste paar opdrachten in de lijst zijn cat, chgrp, chmod, chown en cp. We weten reeds dat cat onderdeel uitmaakt van GNU's textutils. Gebruik makend van de volgende paar opdrachten als trefwoorden bij een zoekopdracht door manpages, ontdekken we dat we het pakket fileutils van GNU nodig hebben voor chmod, chgrp, chown en cp. In feite zijn aardig wat van de opdrachten in /bin afkomstig uit GNU's fileutils. De opdracht date komt ook uit een GNU pakket genaamd sh-utils. Dus een goede manier om het probleem aan te pakken hoe de broncode kan worden gevonden zou kunnen zijn de opdrachten per pakket te groeperen zoals hieronder wordt gedaan.
De BASH shell -- echo, false, pwd, sh, true
GNU textutils -- cat
GNU fileutils -- chgrp, chmod, chown, cp, dd, df, ln, ls, mkdir, mknod, mv, rm, rmdir, sync
GNU sh-utils -- date, hostname, stty, su, uname
Deze vier pakketten bevatten niet alle opdrachten in de directory /bin, maar ze vertegenwoordigen er meer dan 70% van. Dat zou genoeg moeten zijn om ons doel te bereiken in het toevoegen van een aantal van de veel gebruikte externe opdrachten. In latere fasen van het project kunnen we ons altijd nog bezig houden met de andere opdrachten.
Voor het ophalen van de broncode maken we simpelweg een verbinding met GNU's FTP site en navigeren naar de van toepassing zijnde pakketdirectory.
Wanneer we zijn aangekomen bij de directory met textutils, zien we dat er verschillende versies beschikbaar zijn. Er is ook een notitie waarin we worden geïnformeerd dat het pakket is hernoemd naar coreutils. Dezelfde melding over coreutils verschijnt ook in de directory's fileutils en sh-utils. Dus in plaats van het downloaden van drie aparte pakketten, kunnen we alles in één handige bundel ophalen uit de directory coreutils.