Grundläggande frågor kring GNU/Linux

Trädvy Permalänk
Medlem
Registrerad
Nov 2014

Grundläggande frågor kring GNU/Linux

Jag vet att det finns massvis med trådar som handlar om vilken distro man bör välja och liknande men jag har lite andra funderingar som jag känner inte riktigt passar in i dessa trådar och jag hittade inte heller någon tråd för småfrågor (det kanske skulle vara en bra idé att skapa en?). Naturligtvis har jag utöver det jag läst mig till på egen hand även kikat igenom de klistrade trådarna och det fanns en del information som jag inte kände till men inget som besvarade mina specifika frågor.

Jag har prövat lite olika distros och förstår i stora drag att skillnaderna ligger i DE, WM, pakethanterare, paketerad mjukvara m.m. men vad är det som skiljer dem åt i grunden? Eller rättare sagt, vad har de alla gemensamt? De flesta bygger väl på GNU med Linuxkärnan bortsett från BSD men finns det några fundamentala skillnader mellan dem?

Det är väldigt mycket ny information att ta in och många tekniska termer på engelska vilket gör att jag har lite svårt att hänga med i allt jag läser mig till. När man kikar runt på olika forum är det många som säger att den och den distron är stabil och att vissa andra inte är det men vad är det som avgör hur pass stabil en distro är när de alla verkar vara relativt lika i grunden? Har det enbart att göra med hur pass väl mjukvaran testas innan release där Debian ligger i ena änden av spektrat medan Arch och dylika distros är raka motsatsen?

Efter att ha lekt runt i VM-miljö har jag fastnat för Debian av ett antal orsaker. Dels är det ansett som väldigt stabilt, det finns en väldigt bred användarbas (inte minst i form av vidareutvecklingar som Ubuntu och Mint) och i och med det finns det så klart även ordentlig dokumentation för hjälp och felsökning vilket underlättar för en nybörjare. Jag har noterat att en del anser att mycket av mjukvaran i Debian är föråldrad och undrar vad det beror på? Som jag har förstått det väntar Debianutvecklarna ovanligt länge innan de släpper saker för att hinna testa dem ordentligt men det gäller väl bara den mjukvara som distribueras via pakethanteraren och saker som själva Linuxkärnan som kanske använder en något äldre version än andra distros?

Då kommer vi även in på nästa fundering nämligen hur pass kompatibel den mjukvara som finns är. Fungerar alla program i alla distros? För de allra flesta program finns åtminstone ett .deb-paket (det närmaste man kommer motsvarigheten till 'exe'?) men om man använder en distro som inte bygger på Debian kan man väl kompilera programmet själv via källkoden?

Lenovo X1 Carbon / ASUS PB278Q 1440p

Trädvy Permalänk
Medlem
Plats
~
Registrerad
Jul 2001
Skrivet av ågren:

Jag har prövat lite olika distros och förstår i stora drag att skillnaderna ligger i DE, WM, pakethanterare, paketerad mjukvara m.m. men vad är det som skiljer dem åt i grunden? Eller rättare sagt, vad har de alla gemensamt? De flesta bygger väl på GNU med Linuxkärnan bortsett från BSD men finns det några fundamentala skillnader mellan dem?

Njae, inte några direkt fundamentala skillnader, lite beroende på vad man räknar in under 'fundamental'. Precis som du säger ligger skillnaderna i tre övergripande punkter:
a) Releasemodell (Rullande / icke-rullande (och i så fall hur ofta releaser släpps)).
b) DE (vilket går att ändra till den man behagar i de flesta fall.
c) Pakethanterare och tillhörande repo-system.

Sedan kan det skilja lite i mappstrukturer, konfigurationer, init-system, etc. och det är väl i princip bara det sistnämnda som kvalar in i närheten av 'fundamentalt' om du frågar mig.

Skrivet av ågren:

Det är väldigt mycket ny information att ta in och många tekniska termer på engelska vilket gör att jag har lite svårt att hänga med i allt jag läser mig till. När man kikar runt på olika forum är det många som säger att den och den distron är stabil och att vissa andra inte är det men vad är det som avgör hur pass stabil en distro är när de alla verkar vara relativt lika i grunden? Har det enbart att göra med hur pass väl mjukvaran testas innan release där Debian ligger i ena änden av spektrat medan Arch och dylika distros är raka motsatsen?

Det beror på vad man räknar som 'stabil', men oftast handlar det om precis det du säger - hur välbeprövade nya paket är innan de släpps "skarpt".

Skrivet av ågren:

Efter att ha lekt runt i VM-miljö har jag fastnat för Debian av ett antal orsaker. Dels är det ansett som väldigt stabilt, det finns en väldigt bred användarbas (inte minst i form av vidareutvecklingar som Ubuntu och Mint) och i och med det finns det så klart även ordentlig dokumentation för hjälp och felsökning vilket underlättar för en nybörjare. Jag har noterat att en del anser att mycket av mjukvaran i Debian är föråldrad och undrar vad det beror på? Som jag har förstått det väntar Debianutvecklarna ovanligt länge innan de släpper saker för att hinna testa dem ordentligt men det gäller väl bara den mjukvara som distribueras via pakethanteraren och saker som själva Linuxkärnan som kanske använder en något äldre version än andra distros?

Som Arch-användare sedan rätt tidigt i min "linuxkarriär" och med högst begränsad insikt i just Debian (så ta gärna någon annans ord på det snarare än mitt), så anser jag att Debian stable är ett överdrivet konservativt system för desktopanvändning. Dock finns väl mer "uppdaterade" repon som jag har förstått det, och det finns ju alltid alternativet (om än inte rekommenderat) att kompilera fräscha releaser av saker och ting på egen hand (men då är det nog dags att kolla närmre på lämpligare alternativ till distar).

Skrivet av ågren:

Då kommer vi även in på nästa fundering nämligen hur pass kompatibel den mjukvara som finns är. Fungerar alla program i alla distros? För de allra flesta program finns åtminstone ett .deb-paket (det närmaste man kommer motsvarigheten till 'exe'?) men om man använder en distro som inte bygger på Debian kan man väl kompilera programmet själv via källkoden?

Mja, i princip ... Det kan finnas behov av vissa versioner av kärnan eller relaterad mjukvara etc. som kan spöka lite, men i princip kan all källkod kompileras på aktuellt system efter behov (om källkod finns tillgänglig). Däremot är .deb inte alls någon motsvarighet till .exe. Den tidigare är endast en standard för att paketera programvara (motsvarande "installationsfil" i Windows snarast, även om det inte är någon jättebra liknelse heller egentligen), medan .exe är exekverbara binärfiler i allmänhet för Windows. Filändelser saknar för övrigt i princip betydelse i Linux (även om vissa program i praktiken kan bete sig lite illa om dessa saknas). Men ja ... använder man någon av de större distarna brukar de flesta relativt vanliga programmen finnas i distens repon, och således är det sällan man behöver krångla med att kompilera och paketera mjukvara manuellt.

Fedora, i3wm, Ansible, Vim, git, LaTeX - allt som behövs för att göra mig nöjd.

Trädvy Permalänk
Medlem
Plats
Linköping
Registrerad
Jun 2007

För att komplettera Crazy Ferrets svar lite så har Debian tre huvudgrenar, stable, testing och unstable (även kallad Sid). Stable är den senaste releasen, och uppdateras inte förutom med säkerhetsuppdateringar. Testing är grenen som kommer att bli nästa Stable. Den uppdateras löpande med nya versioner av paket tills några månader innan nästa release ska släppas, och fram till releasen görs endast buggfixar i testing. Unstable innehåller ännu nyare paket än testing, och uppdateras med nya paket utan särskilt mycket testande alls. Så du kan själv välja hur pass nya paket du vill använda även med Debian.

När det gäller Arch så har de ett liknande upplägg, men med färre nivåer. Dels finns de vanliga paketförråden som oftast innehåller hyffsat nya versioner av paket, och testing som innehåller paket som behöver testas först. Så Debian testing motsvarar ungefär Archs vanliga paketförråd, och Debian unstable motsvarar ungefär Archs testing.

Arch har även Arch User Repository (AUR), där användare kan lägga upp PKGBUILD-filer. Dessa filer kan laddas ner och användas tillsammans med makepkg-verktyget för att bygga paket, som sedan kan installeras med pakethanteraren. Det finns även verktyg som t.ex. yaourt som kan ladda ner, bygga och installera paket. Fördelen med detta är att vem som helst kan lägga upp en PKGBUILD-fil så att andra användare enkelt kan bygga paket, utan allt jobb med att lägga till och underhålla paket i paketförråden. Nackdelen är att vem som helst kan lägga upp en PKGBUILD-fil

Sen finns det många distributioner som är baserade på andra distributioner, t.ex. Ubuntu som baseras på Debian. Dessa distributioner är oftast rätt så lika i grunden, den största skillnaden är oftast vilka paket som installeras som standard. Wikipedia har ett litet diagram här över släktskapet mellan Linux-distributioner.

Trädvy Permalänk
Medlem
Plats
Borås
Registrerad
Okt 2002

Antar att du sett denna:
http://www.sweclockers.com/forum/trad/1353422-samlingstrad-fo...
Där står det länkar till trådar som tar upp lite av det du frågar om.

Angående det här att själv kompilera program så finns det en aspekt som jag tycker krånglar till det något. De flesta program är beroende av olika programbibliotek som måste finnas installerade och dessutom vara i en kompatibel version med programkoden. Kör man med de paket som finns i distributionens repon då har man redan anpassat dessa så att de fungerar ihop med de bibliotek som också ingår i paketkällorna.

Men om man själv ska installera senaste version av något program som är beroende av uppdaterade versioner av andra programvaror och bibliotek kan det hela växa sig väldigt stort innan man får det att fungera och risken är att man sabbar något annat i systemet som också är beroende av dessa bibliotek. Detta är en stor anledning till att man i första hand ska använda de programversioner som finns med i officiella repositorier eftersom dessa radan har anpassats och testats att fungera ihop med systemet i övrigt.

Nu behöver inte program fungera dåligt bara för att de inte är i senaste version. Nya versioner kan ha fått nya buggar. Så det är väl en avvägning vilket man prioriterar.

Trädvy Permalänk
Medlem
Registrerad
Nov 2014
Skrivet av Crazy Ferret:

Som Arch-användare sedan rätt tidigt i min "linuxkarriär" och med högst begränsad insikt i just Debian (så ta gärna någon annans ord på det snarare än mitt), så anser jag att Debian stable är ett överdrivet konservativt system för desktopanvändning. Dock finns väl mer "uppdaterade" repon som jag har förstått det, och det finns ju alltid alternativet (om än inte rekommenderat) att kompilera fräscha releaser av saker och ting på egen hand (men då är det nog dags att kolla närmre på lämpligare alternativ till distar).

Skrivet av perost:

För att komplettera Crazy Ferrets svar lite så har Debian tre huvudgrenar, stable, testing och unstable (även kallad Sid). Stable är den senaste releasen, och uppdateras inte förutom med säkerhetsuppdateringar. Testing är grenen som kommer att bli nästa Stable. Den uppdateras löpande med nya versioner av paket tills några månader innan nästa release ska släppas, och fram till releasen görs endast buggfixar i testing. Unstable innehåller ännu nyare paket än testing, och uppdateras med nya paket utan särskilt mycket testande alls. Så du kan själv välja hur pass nya paket du vill använda även med Debian.

När det gäller Arch så har de ett liknande upplägg, men med färre nivåer. Dels finns de vanliga paketförråden som oftast innehåller hyffsat nya versioner av paket, och testing som innehåller paket som behöver testas först. Så Debian testing motsvarar ungefär Archs vanliga paketförråd, och Debian unstable motsvarar ungefär Archs testing.

Vad jag har hört är Debian testing väldigt stabilt så man kanske skulle ta och pröva det men är det verkligen så pass stora versionsskillnader mellan stable och testing t.ex.? Dessutom kan man som jag har förstått det ändå välja att lägga till alternativa källor både för specifika program och mjukvaran i allmänhet så spelar det någon större roll? Man kanske borde köra stable men använda testingrepon?

Tack för välutvecklade och informativa svar!

Skrivet av ronnylov:

Antar att du sett denna:
http://www.sweclockers.com/forum/trad/1353422-samlingstrad-fo...
Där står det länkar till trådar som tar upp lite av det du frågar om.

Angående det här att själv kompilera program så finns det en aspekt som jag tycker krånglar till det något. De flesta program är beroende av olika programbibliotek som måste finnas installerade och dessutom vara i en kompatibel version med programkoden. Kör man med de paket som finns i distributionens repon då har man redan anpassat dessa så att de fungerar ihop med de bibliotek som också ingår i paketkällorna.

Men om man själv ska installera senaste version av något program som är beroende av uppdaterade versioner av andra programvaror och bibliotek kan det hela växa sig väldigt stort innan man får det att fungera och risken är att man sabbar något annat i systemet som också är beroende av dessa bibliotek. Detta är en stor anledning till att man i första hand ska använda de programversioner som finns med i officiella repositorier eftersom dessa radan har anpassats och testats att fungera ihop med systemet i övrigt.

Nu behöver inte program fungera dåligt bara för att de inte är i senaste version. Nya versioner kan ha fått nya buggar. Så det är väl en avvägning vilket man prioriterar.

Ja, jag kikade igenom de trådar jag kände var relevanta men hittade inte riktigt svar på mina frågor. Hur ser man vilka dependencies som krävs för ett visst program? Under Debian kan man väl bara använda gdebi för att försäkra sig om att allt finns installerat?

En annan fråga jag kom att tänka på är varför det finns olika pakethanterare. Alla BASH-kommandon är väl i stort sett identiska mellan olika distributioner (bortsett från just pakethanteraren) och när man väl har lärt sig hantera dem går de att applicera på de flesta andra distros så varför hålla på och krångla med olika kommandon när de ändå gör samma sak?

pacman -Sy
pacman -Ss <program>
pacman -S <program>

aptitude update
aptitude search <program>
aptitude install <program>

etc.

Lenovo X1 Carbon / ASUS PB278Q 1440p

Trädvy Permalänk
Avstängd
Plats
/home
Registrerad
Apr 2010
Skrivet av ågren:

Vad jag har hört är Debian testing väldigt stabilt så man kanske skulle ta och pröva det men är det verkligen så pass stora versionsskillnader mellan stable och testing t.ex.? Dessutom kan man som jag har förstått det ändå välja att lägga till alternativa källor både för specifika program och mjukvaran i allmänhet så spelar det någon större roll? Man kanske borde köra stable men använda testingrepon?

Tack för välutvecklade och informativa svar!
Ja, jag kikade igenom de trådar jag kände var relevanta men hittade inte riktigt svar på mina frågor. Hur ser man vilka dependencies som krävs för ett visst program? Under Debian kan man väl bara använda gdebi för att försäkra sig om att allt finns installerat?

En annan fråga jag kom att tänka på är varför det finns olika pakethanterare. Alla BASH-kommandon är väl i stort sett identiska mellan olika distributioner (bortsett från just pakethanteraren) och när man väl har lärt sig hantera dem går de att applicera på de flesta andra distros så varför hålla på och krångla med olika kommandon när de ändå gör samma sak?

pacman -Sy
pacman -Ss <program>
pacman -S <program>

aptitude update
aptitude search <program>
aptitude install <program>

etc.

Du kan enkelt skapa egna install-kommandon. Som ett alias. Till exempel "Update World", eller varför inte "uworld" för en update && upgrade och liknande.

i7
GTX
4K

Trädvy Permalänk
Medlem
Plats
Linköping
Registrerad
Jun 2007
Skrivet av ågren:

Hur ser man vilka dependencies som krävs för ett visst program? Under Debian kan man väl bara använda gdebi för att försäkra sig om att allt finns installerat?

Om man har ett färdigkompilerat paket så kan pakethanteraren oftast visa vilka beroenden paketet har (det är ju lite poängen med en pakethanterare trots allt). Om du själv kompilerar ett program från källkod så får du läsa programmets dokumentation och hoppas på att utvecklaren talar om vilka beroenden programmet har.

Skrivet av ågren:

En annan fråga jag kom att tänka på är varför det finns olika pakethanterare.

Varför finns det olika webbläsare? Eller olika operativsystem? För att någon kollade på det som fanns, och tänkte att de kunde göra det bättre.

Trädvy Permalänk
Hedersmedlem
Plats
Linköping
Registrerad
Apr 2004
Skrivet av perost:

Om du själv kompilerar ett program från källkod så får du läsa programmets dokumentation och hoppas på att utvecklaren talar om vilka beroenden programmet har.

Dokumentation är ju förvisso bra, men vanligtvis behöver man väl inte läsa den? I praktiken brukar kompilatorn (mer eller mindre tydligt) tala om vad som saknas så att man kan installera rätt paket (eller kompilera även dessa själv).

Trädvy Permalänk
Medlem
Registrerad
Nov 2014
Skrivet av Dockland:

Du kan enkelt skapa egna install-kommandon. Som ett alias. Till exempel "Update World", eller varför inte "uworld" för en update && upgrade och liknande.

Smidigt! Troligtvis ingenting jag personligen kommer att använda mig av men det är trevligt att möjligheten finns.

Skrivet av perost:

Varför finns det olika webbläsare? Eller olika operativsystem? För att någon kollade på det som fanns, och tänkte att de kunde göra det bättre.

Fast skillnaderna är inte direkt enorma om man t.ex. jämför med webbläsare eller operativsystem. BASH-kommandona är (med några få undantag) universella så det enda som egentligen skiljer dem åt är just när man vill hämta paket och liknande.

Vad skulle vara bättre eller sämre med att skriva pacman -S istället för apt-get install? Det är ju exakt samma sak fast med olika namn och uppfattas som oerhört förvirrande av oss nybörjare. Eller är det jag som har missat någonting? Jag förstår naturligtvis att olika distros har olika repos och att de på det viset skiljer sig från varandra men de kommandon man använder sig av utför väl exakt samma åtgärder?

Lenovo X1 Carbon / ASUS PB278Q 1440p

Trädvy Permalänk
Hedersmedlem
Plats
Linköping
Registrerad
Apr 2004
Skrivet av ågren:

Vad skulle vara bättre eller sämre med att skriva pacman -S istället för apt-get install? Det är ju exakt samma sak fast med olika namn och uppfattas som oerhört förvirrande av oss nybörjare. Eller är det jag som har missat någonting? Jag förstår naturligtvis att olika distros har olika repos och att de på det viset skiljer sig från varandra men de kommandon man använder sig av utför väl exakt samma åtgärder?

Även om operationen "installera program" ofta ger ungefär samma effekt med alla system är det nog djärvt att kalla det exakt samma sak. Systemen är utvecklade av olika personer, skrivna i olika språk, har olika förmågor (och till exempel mekanismer för kontroll av hur paket beror av varandra).

Trädvy Permalänk
Avstängd
Plats
/home
Registrerad
Apr 2010
Skrivet av ågren:

Smidigt! Troligtvis ingenting jag personligen kommer att använda mig av men det är trevligt att möjligheten finns.
Fast skillnaderna är inte direkt enorma om man t.ex. jämför med webbläsare eller operativsystem. BASH-kommandona är (med några få undantag) universella så det enda som egentligen skiljer dem åt är just när man vill hämta paket och liknande.

Vad skulle vara bättre eller sämre med att skriva pacman -S istället för apt-get install? Det är ju exakt samma sak fast med olika namn och uppfattas som oerhört förvirrande av oss nybörjare. Eller är det jag som har missat någonting? Jag förstår naturligtvis att olika distros har olika repos och att de på det viset skiljer sig från varandra men de kommandon man använder sig av utför väl exakt samma åtgärder?

Välj en distro, exempelvis Arch. Lär dig den under några månader exklusivt. Läs på wikin och forumet för Arch och när du känner dig hyfsat svängd i Arch, testa någon annan. Gentoo eller liknande.
Jag körde Ubuntu av alla de slag som jag dualbootade med Windows och förstod inte så mycket egentligen utan återkom ofta i Ubuntuforumet med frågor som "Varför funkar inte detta i Linux/Ubuntu, det fungerar ju i Windows. Liknande frågeställningar.
Efter en inlärningströskel med Arch på några veckor satt det mesta rätt naturligt.
Jag stannade kvar, så Arch Linux blev min s.k. Distrostopper.

i7
GTX
4K

Trädvy Permalänk
Medlem
Plats
~
Registrerad
Jul 2001
Skrivet av ågren:

Smidigt! Troligtvis ingenting jag personligen kommer att använda mig av men det är trevligt att möjligheten finns.
Fast skillnaderna är inte direkt enorma om man t.ex. jämför med webbläsare eller operativsystem. BASH-kommandona är (med några få undantag) universella så det enda som egentligen skiljer dem åt är just när man vill hämta paket och liknande.

Vad skulle vara bättre eller sämre med att skriva pacman -S istället för apt-get install? Det är ju exakt samma sak fast med olika namn och uppfattas som oerhört förvirrande av oss nybörjare. Eller är det jag som har missat någonting? Jag förstår naturligtvis att olika distros har olika repos och att de på det viset skiljer sig från varandra men de kommandon man använder sig av utför väl exakt samma åtgärder?

Bash är universellt, däremot kan tillgängliga hjälpprogram skilja sig åt, och även vilket shell som är default, mellan olika distributioner.

Pakethanterare kan på ytan för en nybörjare te sig identiska men med olika kommandon, men under ytan kan mycket skilja sig åt, även om grundläggande funktioner ger samma resultat för slutanvändaren (installera, avinstallera etc). Vissa håller koll på dependencies, andra gör det inte, och så vidare. Men ja, i nybörjarstadiet räcker det att känna till vilken man har och att skillnader finns.

Aliases kommer du att använda, förr eller senare, oftast när du finner att du sitter och använder kommandon med många långa dryga växlar om och om igen... Så var medveten om att de finns och hur du lägger till dem.

Skickades från m.sweclockers.com

Fedora, i3wm, Ansible, Vim, git, LaTeX - allt som behövs för att göra mig nöjd.