Vill lära mig om Linux - berätta era historier när ni byggde eget Linux

Permalänk

Vill lära mig om Linux - berätta era historier när ni byggde eget Linux

Hej.

Jag vill lära mig mycket om Linux. Jag har hört att bästa sättet är att bygga eget Linux med LFS.

Jag undrar vad er återkoppling på just skapandet av eget Linux? Är det svårt, vad är det som är svårt? Är det lätt? Vad är det man lär sig? Är det endast att komplimera källkod och adderar in dem under / ?

Berätta era historier.

Mvh

Permalänk
Avstängd

Jag använder mig bara av server Linux och för mig funkar ubuntu bra men om man vill inte ha massor har packet så kan man vilja någon annan.

Jag börja med Linux sen jag var 15 år och tycker om den jätte mycket man märker hur mycket kraft den har när det kommer till att host server och sånt då märker man hur bra den är.

Men vad vill du använda Linux till?

Visa signatur

Man är inte dum för att man har stavproblem.
Läs mer om min synfel Visual Snow
Om mig ----> #16970666

Permalänk
Skrivet av superegg:

Jag använder mig bara av server Linux och för mig funkar ubuntu bra men om man vill inte ha massor har packet så kan man vilja någon annan.

Jag börja med Linux sen jag var 15 år och tycker om den jätte mycket man märker hur mycket kraft den har när det kommer till att host server och sånt då märker man hur bra den är.

Men vad vill du använda Linux till?

Jag vill bara ha Linux som en arbetstation.

Kör Linux Mint nu.

Skickades från m.sweclockers.com

Permalänk
Medlem

Är väl en rätt stor linux-nörd.

Har linux på samtliga datorer jag använder:
Desktop, server/nas, diverse raspberry pi projekt.

Framför allt gillar jag öppenheten och möjligheten att i princip få det precis som man själv vill.
Sen älskar jag också faktumet med paketsystem och att hela systemet kan enkelt (och snabbt!) uppdateras med ett enda kommando.

Såhär har jag konfat mitt WM
http://i.imgur.com/Cw9yqSV.png

Permalänk
Medlem
Skrivet av Undie:

Är väl en rätt stor linux-nörd.

Har linux på samtliga datorer jag använder:
Desktop, server/nas, diverse raspberry pi projekt.

Framför allt gillar jag öppenheten och möjligheten att i princip få det precis som man själv vill.
Sen älskar jag också faktumet med paketsystem och att hela systemet kan enkelt (och snabbt!) uppdateras med ett enda kommando.

Såhär har jag konfat mitt WM
http://i.imgur.com/Cw9yqSV.png

Härliga personer du hänger med på IRC :/
Annars hur det är konfat ser det ju trevligt ut!

Permalänk
Medlem
Skrivet av Kalasis:

Härliga personer du hänger med på IRC :/
Annars hur det är konfat ser det ju trevligt ut!

Haha, jag var tvungen att kolla screendumpen enbart för din kommentar.

Skickades från m.sweclockers.com

Permalänk

Egentligen så vill jag kunna lära mig installera program igenom att endast använda mig av källkod.

Om jag behöver drivrutiner för t.ex en viss del av min hårdvara så måste jag veta vilka drivrutiner jag ska ha och hur jag ska installera dem.

Jag vill också lära mig installera program från hårdvara t.ex Libreoffice och kunna förstå allt det där att få in programmet helt snyggt och fint med genväg osv.

Jag vill lära mig uppdatera linuxkärnan och kunna förstå det där man bibliotek osv.

Som sagt: jag vill lära mig kunna använda Linux igenom att endast ha tillgång till källkod.

Det kanske finns en Linux dist för mig som passar mina krav?

Skickades från m.sweclockers.com

Permalänk
Medlem

Jag kör Debian och Ubuntu Server på mina servrar. Mint Debian med Cinnamon på min dator. Har testat och använt Arch, men är man Debian-nörd så är man. Började med Slackware och Red Hat i slutet av 90-talet.

Du behöver inte nödvändigtvis köra LFS för att lära dig GNU/Linux - bara använd och lär dig systemet och CLI och du har att göra...

Om du är ny kan rekommendera "Introduction to Linux..." på EdX - gratis kurs från Linux Foundation.

Visa signatur

AMD Ryzen 7 5700X, ASUS ROG Crosshair VIII Dark Hero, 32GB Corsair Vengeance LP 3200MHz, Gigabyte Radeon RX 5600 XT, Fractal Design Define C, Sesonic FOCUS PX 650W.

Permalänk

Som jag har uppfattat det där med komplimera källkod så uppfattar jag processen väldigt bökig. Ska man komplimera drivrutiner så saknas det andra drivrutiner som också behöver komplimeras osv. Blir som en lång kedja.

Skickades från m.sweclockers.com

Permalänk
Medlem

@heretic16:

Med pakethanterarna ser jag ingen anledning att kompilera om det inte är något särskilt det gäller. För ett par år sedan kompilerade jag en IRC-klient som heter BitchX, som jag använde när det begav sig, till ARM, ville testa det på min Raspberry Pi. Det gäller att ta reda på vilka beroenden som programmet har och sen är det bara att köra. Förr gjorde man det oftare.

Visa signatur

AMD Ryzen 7 5700X, ASUS ROG Crosshair VIII Dark Hero, 32GB Corsair Vengeance LP 3200MHz, Gigabyte Radeon RX 5600 XT, Fractal Design Define C, Sesonic FOCUS PX 650W.

Permalänk
Medlem

@heretic16: det låter som att du vill använda gentoo! allt i portage tree (main repo) är källkod i conteiners som heter Ebuilds. egentligen script som pekar mot källkoden. så bygger man dessa utifrån sina behov med hjälp av use flags. och kompilerat till just din hårdvara. det går att installera binärer också förstås men det är inte meningen.
det är faktiskt inte så svårt att byta kärna. konfigurera kärnan som du vill ha den, kompilera, lägg i boot, fixa symlinks, grubcfg eller dylik om nödvändigt. reboot.
fråga gärna vid funderingar

Visa signatur

Rgeek L65, hdplex 200w, 4650G, Asrock a520 ITX, Crucial 32gb 3600 cl16, Black ridge.

Permalänk
Skrivet av Emrik:

@heretic16: det låter som att du vill använda gentoo! allt i portage tree (main repo) är källkod i conteiners som heter Ebuilds. så bygger man dessa utifrån sina behov med hjälp av use flags. och kompilerat till just din hårdvara. det går att installera binärer också förstås men det är inte meningen.
det är faktiskt inte så svårt att byta kärna. konfigurera kärnan som du vill ha den, kompilera, lägg i boot, fixa symlinks, grubcfg eller dylik om nödvändigt. reboot.
fråga gärna vid funderingar

Fast kan man inte använda det jag använder nu? Just nu kör jag Mint Linux då ubuntu är för segt och Lubuntu är för ostabilt.

Skickades från m.sweclockers.com

Permalänk
Medlem
Skrivet av heretic16:

Fast kan man inte använda det jag använder nu? Just nu kör jag Mint Linux då ubuntu är för segt och Lubuntu är för ostabilt.

Skickades från m.sweclockers.com

absolut kan man det fixa gcc och lite kod att kompilera. tänkte dock på raden.

Citat:

Det kanske finns en Linux dist för mig som passar mina krav?

mint är trevligt. använder också cinnamon. xfce är mycket snabbt och stadigt om du gillar sånt!
båda fungerar utmärkt på gentoo!

Visa signatur

Rgeek L65, hdplex 200w, 4650G, Asrock a520 ITX, Crucial 32gb 3600 cl16, Black ridge.

Permalänk
Medlem

Att bygga allt helt från scratch och kompilera själv är nog lärorikt, men kan också bli en smula överväldigande. Den dist jag personligen har lärt mig mest av att installera och köra är Arch Linux. Det finns en pakethanterare och förkompilerade paket, men du som användare måste fortfarande konfigurera mycket själv och välja vad som ska installeras. Bra community där det är lätt att få hjälp, och en mycket användbar wiki.

Visa signatur

Intel NUC Coffee Lake I7-8559U | Thinkvision P27u | Shiit Fulla 2| Beyerdynamic DT 770 80 Ohm | WhiteFox gen 1 | Ducky Secret M | Lenovo Thinkpad x280

Permalänk
Medlem

@heretic16

Det låter som att Gentoo eller Funtoo är något för dig! Då har du en pakethanterare som vanligt, men istället för att installera ett färdigkompilerat paket så hämtar du direkt från github och kompilerar. Du får själv välja exakt vilka dependencies du behöver.

Det finns dock några nackdelar:

  • Svårt för en nybörjare

  • Kräver väldigt kraftfull processor för kunna installera relativt snabbt

  • Kräver temporärt mycket RAM just då när man kompilerar

  • Svårt med konfiguration av pakethanteraren för kompilering för nybörjare

Visa signatur

AMD R5 1600 3.2 GHz | Gigabyte AX370 Gaming K3 | Corsair Vengeance LP 2x8GB 3200MHz CL16 | Sapphire RX580 Nitro+ 8GB | Phanteks Eclipse P400S | 1x Samsung 970 EVO 500GB 1x WD 500GB | Windows 11 Pro

Permalänk
Inaktiv
Skrivet av saturday_sun:

Jag kör Debian och Ubuntu Server på mina servrar. Mint Debian med Cinnamon på min dator. Har testat och använt Arch, men är man Debian-nörd så är man. Började med Slackware och Red Hat i slutet av 90-talet.

Du behöver inte nödvändigtvis köra LFS för att lära dig GNU/Linux - bara använd och lär dig systemet och CLI och du har att göra...

Om du är ny kan rekommendera "Introduction to Linux..." på EdX - gratis kurs från Linux Foundation.

Nån särskild anledning till att du kör både Debian och Ubuntu som servrar och inte bara valt en av dem?

Permalänk
Medlem
Skrivet av anon273280:

Nån särskild anledning till att du kör både Debian och Ubuntu som servrar och inte bara valt en av dem?

Jag har nästan alltid kört Debian, men jag ville testa Ubuntu på serversidan också. Det skulle bara bli en "testserver", men nu har den snurrat i ett par år.

Visa signatur

AMD Ryzen 7 5700X, ASUS ROG Crosshair VIII Dark Hero, 32GB Corsair Vengeance LP 3200MHz, Gigabyte Radeon RX 5600 XT, Fractal Design Define C, Sesonic FOCUS PX 650W.

Permalänk
Medlem

Vill du prompt installera allt genom att kompilera det själv är Gentoo eller Funtoo bra alternativ, som nämnts ovan, eller src-sources i valfri debianbaserad dist, och så vidare. Det stora böket man springer på om man inte använder pakethanterare är dependencies. Att köra "källkodsdist" (bespara oss alla fyndiga kommentarer om att "all mjukvara kommer ur källkod" - det är inte det jag menar) eliminerar det böket, men ja ... frågar du mig är det drygt att sitta och kompilera allting, särskilt om man inte har ett specifikt behov av det. Har man dessutom inte överdrivet vass hårdvara, ja då är det inte roligt i längden.
Arch är ett bra alternativ om man vill förstå sig på vad man sysslar med generellt. Vill man sedan gå vidare kan man titta på hur man skapar paket och så vidare utan att behöva kompilera precis allting, vilket givetvis gäller för alla distar, inte bara Arch.

Visa signatur

Desktop: AMD 3950X, 64 GB RAM, Nvidia 4070 ... (Windows 11)
Serverdesktop: AMD 5600G, 64 GB RAM (Proxmox)
Labbmiljö: Supermicro SC825 X9DRi-F 2xE5-2667v2 64GB RAM
Kamera: Canon R5, Canon RF 100-500, Laowa 100mm f/2.8, Canon RF 24-70 f/2,8

Permalänk
Medlem

Kollade på LSF för några år sedan men kände då att jag inte orkade, men nu blev jag lite sugen.
http://www.linuxfromscratch.org/index.html
http://www.linuxfromscratch.org/lfs/downloads/stable/LFS-BOOK...
Får se om jag orkar. Ser lite jobbigt ut...
Har kompilerat lite program och kernels förut som inte funnits i den disten jag för tillfället använde men förstod inte 100 vad jag gjorde. Jag har stora kunskapshål även om jag använt Linux primärt sedan typ 2005. Så detta borde täppa till hålen

Visa signatur

ASUS ROG STRIX B450-F GAMING - AMD Ryzen 5 3600 3.6 GHz 35MB - Cooler Master - Hyper 212 Black Edition - Corsair 16GB (2x8GB) DDR4 3200Mhz CL16 Vengeance LPX - Kingston A2000 500GB M.2 NVMe - Fractal Design Define C Svart - 2 X Noctua NF-P14s redux-1200 140mm PWM - Corsair RM650X 650W v2 - ASUS GeForce GTX 1060 6GB DUAL OC - Raijintek Morpheus II Heatpipe VGA Cooler - 2 X Noctua NF-P12 120mm PWM - OS Debian 10 Stable

Permalänk
Skrivet av oTiuZ:

@heretic16

Det låter som att Gentoo eller Funtoo är något för dig! Då har du en pakethanterare som vanligt, men istället för att installera ett färdigkompilerat paket så hämtar du direkt från github och kompilerar. Du får själv välja exakt vilka dependencies du behöver.

Det finns dock några nackdelar:

  • Svårt för en nybörjare

  • Kräver väldigt kraftfull processor för kunna installera relativt snabbt

  • Kräver temporärt mycket RAM just då när man kompilerar

  • Svårt med konfiguration av pakethanteraren för kompilering för nybörjare

Jag har lyckats kompilera linuxkärnan på en CPU 200 MMX 32 Mb dator från 1995. Tog 8 timmar med minimal konfigurering

Men hur är det när man installerar från källkod? Är det inte bara make och sedan make install och vänta tills det är klart? Sedan lägger man in det på ett bra ställe och sedan skapar en genväg?

Eller måste man ha med flaggor och nummer osv som bekräftar vilken hårdvara man använder sig av osv?

Skickades från m.sweclockers.com

Permalänk
Medlem

Blir också sugen på att testa LFS nu faktiskt. Har ett par gamla maskiner som jag skulle vilja labba med.

Visa signatur

AMD Ryzen 7 5700X, ASUS ROG Crosshair VIII Dark Hero, 32GB Corsair Vengeance LP 3200MHz, Gigabyte Radeon RX 5600 XT, Fractal Design Define C, Sesonic FOCUS PX 650W.

Permalänk
Medlem
Skrivet av heretic16:

Jag har lyckats kompilera linuxkärnan på en CPU 200 MMX 32 Mb dator från 1995. Tog 8 timmar med minimal konfigurering

Men hur är det när man installerar från källkod? Är det inte bara make och sedan make install och vänta tills det är klart? Sedan lägger man in det på ett bra ställe och sedan skapar en genväg?

Eller måste man ha med flaggor och nummer osv som bekräftar vilken hårdvara man använder sig av osv?

Skickades från m.sweclockers.com

Jag som tycker att 1h kompilering är segt

När man installerar med pakethanteraren i Gentoo/Funtoo så körs alla kommandon automatiskt, det vill säga make osv. Man kan däremot välja flaggor och sådant själv. På Gentoo/Funtoo så väljer du vilken ISO-fil du ska ha för den processorn som du har.

Ska man kompilera själv så skriver man

.configure # om det finns en configure-fil och man vill konfigurera källkoden på något vis make sudo make install

Oftast så känner kompilatorn av vilken typ av processor du använder, så det behövs i flesta fall inte anges.

Detta kräver dock att man helst alltid ska ha kvar alla källkoder för framtida bruk. Till exempel om man vill avinstallera något program så måste man gå till källkoden och skriva: sudo make uninstall

Visa signatur

AMD R5 1600 3.2 GHz | Gigabyte AX370 Gaming K3 | Corsair Vengeance LP 2x8GB 3200MHz CL16 | Sapphire RX580 Nitro+ 8GB | Phanteks Eclipse P400S | 1x Samsung 970 EVO 500GB 1x WD 500GB | Windows 11 Pro

Permalänk

Blir programmen snabbare när man komplimerar från källkod? Typ mer anpassad?

Skickades från m.sweclockers.com

Permalänk
Avstängd

http://ss64.com/bash/

Bästa sidan för att lära sig Kommandon till Linux.

Visa signatur

Man är inte dum för att man har stavproblem.
Läs mer om min synfel Visual Snow
Om mig ----> #16970666

Permalänk
Medlem
Skrivet av heretic16:

Blir programmen snabbare när man komplimerar från källkod? Typ mer anpassad?

Skickades från m.sweclockers.com

man kan kompilera för de instruktioner som just din CPU stödjer. detta är inga jättevinster man gör men liten skillnad ändå.
och i gentoo finns USE flags. som man med hjälp av kan låta bli att installera olika funktioner (gtk, 32bit, alsa, doc, mic osv) i program för att få det mer anpassat och platsbesparande.
portage sköter alla genvägar och såna saker. lika smart som alla andra pakethanterare. lite smartare ibland

Calculate Linux finns även. ska vara som gentoo fast med grafisk install. annars allt lika. inte testat men verkar lovande om du nu vill kompilera saker utan att installera OSet i CLI.
liknande Funtoo. vet inte skillnaden riktigt

Visa signatur

Rgeek L65, hdplex 200w, 4650G, Asrock a520 ITX, Crucial 32gb 3600 cl16, Black ridge.

Permalänk
Medlem

Jag kan väl tycka att det är väl bättre att lär sig att gå innan man börjar springa.

Kör med typ Ubuntu, Mint eller vad du nu gillar (och som är nybörjarvänligt). När du sedan är varm i kläderna kan du väl börja med att lära dig hur Linux fungerar, hur det är uppbyggt etc. Och sedan kanske börja kompilera och optimera program, kanske rent av kompilera din egen kärna osv.

Om du inte ens kan grunderna i Linux och börjar med att kompilera en egen kärna kommer du inte förstå ett skit, tröttna och ge upp efter en halv dag - typ.

Visa signatur

Spara på minnen, inte saker.

Permalänk
Medlem

Jag kör Arch Linux och där finns det möjlighet att kompilera paket från källkod med ABS (Arch Build System). Finns också AUR (Arch User Repository) där användare själva lägger upp program man kan kompilera och installera. LFS har jag inte testat och jag känner inget större behov av att göra det heller för egen del.

Det är väl främst i följande fall jag kompilerar själv:

1) Om jag vill ha något annat än standardkonfigurationen i ett program. Då kan man ändra i konfigurationen och kompilera om paketet med ny konfiguration.

2) Om programmet inte finns med överhuvudtaget som binärpaket i linuxdistens repositories. Ofta hittar jag det då i AUR alternativt som källkod.

3) Om jag programmerar ett eget program.

I övrigt kör jag hellre med de standardpaket som finns och är anpassade för min Linux-dist. Jag gillar som sagt Arch Linux och där finns det bra stöd för att utveckla egna programpaket. Ett sätt att lära sig hur det fungerar är att börja programmera själv, alternativt titta hur andras källkod ser ut och hur man bygger ett eget binärpaket som man sedan kan installera med pakethanteraren. Hur man gör detta skiljer sig åt mellan olika distar men gillar du Linux mint så kan du väl försöka bygga ett paket som kan installeras på Linux Mint.

Nackdelen med att installera från källkod utan att använda distens pakethanterare är att det blir krångligare att hantera beroenden och man får sämre koll på vad som är installerat. Oavsett vilken dist man använder så finns ju möjligheten att själv utveckla programpaket till sin favoritdist. Open Source bygger ju på att man har möjlighet att själv ändra i programvaran.

Permalänk
Datavetare

Har kört allt från Ubuntu och Fedora till Slackware och Gentoo till att helt bygga en kärna samt ett minimalt userland från scratch.

I slutändan fördrar jag ändå Ubuntu (startar normalt med ubuntu-server och installerar det jag vill ha därifrån). Gillade tanken med Gentoo, d.v.s. att man kan bättre optimera för sitt specifika system. Problemet är att den reella vinsten är minimal (någon enstaka procent i de flesta fall) medan tidskostnaden jämfört med att installera binärer är enorm.

Behöver jag källkoden till t.ex. bash i Ubuntu så är det bara att köra

$ apt-get source bash

Vill jag sedan inte traggla med att ha alla beroenden installerade fixas det enkelt med

$ sudo apt-get build-dep bash

Är nu bara att bygga göra de ändringar som eventuellt behövs, välja om det ska vara debug eller release bygge och köra.

Allt detta fungerar naturligtvis i alla Debian-baserade distributioner, så finns en rad alternativ. Motsvarande går också att göra i Redhat-baserade distributioner om man föredrar dessa

Ladda ner källkod för ett paket

$ yumdownloader --source bash

Installera allt som behövs för att bygga

$ sudo yum-builddep bash

Enda fallet jag kan komma på där det är en fördel att bygga allt från scratch är om man gör kernel-utveckling. Var precis detta use-case som fick mig att bygga kärnan (vilket naturligtvis är ett krav då) med ett minimalt user-land byggt från scratch. I mitt fall byggde jag in hela user-land som en blob i kärnan (initramfs). Allt man behöver för att boota systemet finns då i en enda fil vilket rejält snabbar upp koda-bygg-testa cykeln.

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Medlem
Skrivet av heretic16:

Hej.

Jag vill lära mig mycket om Linux. Jag har hört att bästa sättet är att bygga eget Linux med LFS.

Jag undrar vad er återkoppling på just skapandet av eget Linux? Är det svårt, vad är det som är svårt? Är det lätt? Vad är det man lär sig? Är det endast att komplimera källkod och adderar in dem under / ?

Berätta era historier.

Mvh

Att "skapa ett eget linux" - med tolkningen ett någorlunda komplett userland - är en organisatorisk utmaning i att hålla reda på kompabilitet mellan olika versioner av allting. Det är ingenting som enligt mig vore särskilt givande utan troligen endast frustrerande.

När jag började min linuxkarriär körde jag igenom LFS och såhär i efterhand gav det mig följande:

  • Jag tyckte innan det var "skrämmande" att kompilera saker (configure/make/install) med tanke på storlek på kodbas, mycket som sprutade i konsollen med mera. Efter att ha gjort detta en massa gånger i LFS blev man mer "van" och tröskeln blev lägre.

  • Även om jag bara följde instruktioner fick jag koll på beståndsdelarna och ett hum om vad som ingår i ett system.

  • Jag förstod varför det finns pakethanterare och vilka problem de löser.

  • Jag förstod syftet av en linuxdistribution och vilka problem de som underhåller en distribution löser för mig som användare (i LFS ställde jag mig ofta frågan "hur fan ska man veta att just den här patchen ska appliceras på det här pakete", eller "hur i helsike vet man att man ska ha den här versionen av detta libbet")

Jag tycker därför det är en utmärkt idé att köra igenom LFS. Man behöver inte förstå exakt vad man gör. När man har ett system uppe och snurrar kan man försöka lägga till ett program man inte har från början. Efter det inser man varför det inte är hållbart att köra ett "eget" system utan att man vill ha någon som löser ovanstående problem åt en