Välkommen till linuxportalen.se!

Linuxportalen.se är Sveriges största och aktivaste webbplats för användare av öppen- och fri programvara.

Du besöker Linuxportalen.se som gäst vilket begränsar din möjlighet att använda webbplatsens alla funktioner. Genom att registera dig som medlem får du inte bara möjlighet att söka bland webbplatsens innehåll, skapa nya och delta i befintliga diskussioner, skapa din egen blogg, kommunicera med andra medlemmar genom privata meddelanden och delta i omröstningar. Du får också tillgång till Veckans Kadavro - en seriestrip unikt skapad för Linuxportalen.se!

Registeringen sker snabbt och är helt kostnadsfri - tveka inte, bli medlem idag!

Skapa installationsskript för konfigurering av system

 Hejsan, ny här på forumet.

Har under längre tid fundarat på om det är möjlligt att skapa skript till Linux som kan utföra diverse konfigurationer automatiskt så att systemet ändras till hur man vill att det ska se ut och vilka egenskaper det ska ha, så som val av program och vilka tjänster som ska vara aktiva. Jag skulle t.ex. vilja ha ett skript jag kan dela med till vänner som gör att deras installerade distribution automatiskt konfigurerar och installerar de program, skrivbordsbakgrund, ikoner, fönsterhanterare etc som jag valt utan att dem manuellt ska behöva göra det här. Med andra ord utföra en post-installation utefter endast några enkla instruktioner i terminalen från skriptet.

Nu till min fråga. Är det här ens möjligt och i så fall vad för språk ska skriptet programeras i?

Alternativ för kommentarvisning

Välj ditt önskade sätt att visa kommentarerna och klicka på "Spara" för att verkställa dina ändringar.

fredentofts bild

Visst går det, det är ju bara att anropa pakethanteraren för installation osv...

Vad gäller språkval, så kan du använda precis vad som faller dig in och du känner dig bekväm med.

-
För övrigt anser jag att trådindenteringen måste lagas
-
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

fsns bild

Det är absolut möjligt att göra, även om det är ett ganska stort arbete. Att installera ett program är beroende på vilken distribution användaren har, om användaren är uppkopplad på Internet och kan hämta paket från de stora paketföråden, om användaren vill ha standardinställningar, om användaren får blir root-användare på systemet osv. Att byta skrivbordsbakgrund är beroende på systemdefaultinställningen, lokala inställningar för den användaren, i vissa fall också vilka program som startas upp när användaren loggar in, vilken fönsterhanterare/skrivbordsmiljö användaren använder, osv. Att göra något användarvänligt är ofta en ganska jobbig uppgift, man får bygga in så mycket av sin egen erfarenhet för att den tilltänkte användaren skall slippa ha någon egen. I användarvänlig kod är 20% för att utföra jobbet och 80% för att parera för alla fel och konstigheter som kan uppstå på vägen.

Så här skulle en appliaktionsarkitektur kunna se ut:
Jag skulle sätta mig ner och lista vilka aktiviteter jag skulle vilja att ett sådant system skulle klara av, exempelvis "Installera program", "Bya Ikon-tema" osv.

Därefter skulle jag lista vilka olika sätt man tycker det är lönt att stödja för att uppfylla en viss aktivitet; för installation av mjukvara kan man tänka sig apt-get för deb, apt-get för rpm, urpmi och rena skalscript. Om man kan göra vissa antaganden, användaren kör Ubuntu 10.10, så minskar antalet varianter.

Sedan implementerar man varje Aktivitet som en modul. Den modulen kallar i sin tur på rätt implementationsmodul, som man gör en för varje variant, som gäller för den aktiviteten för den distributionen.

På så sätt kan man ha en konfigurationsfil som är deklarativ, dvs. den talar om vad som skall göras men inte hur. Den ger man sedan till användaren, ihop med verktyget, som kör verktyget med konfigurationsfilen som inparameter, och gör alla ändringar på systemet.

Du kan använda vilket språk du vill, men jag tror Python är mode-språket just nu för den här typen av systemadministrativa Linux-implementationer.

Man kan också tänka sig att man inte skickar ut hela systemet och konfigurationsfilen till en användare, utan att systemet istället genererar ett komplett skalscript med allt som skall göras. Fördelen är att man bara har en fil att skicka över, nackdelen är att man måste veta hur ens målmiljö ser ut när man genererar skalscriptet.

Var det något sånt här du tänkte dig?

Joakim_Ws bild

Tackar för svaren och har fått lite mer inblick i hur processen av att skapa ett skript bör gå tillväga. Så blir till att läsa om Python och skriptet jag vill skapa är för användare av Ubuntu så förmodligen underlättar det lite, även om det låter som ett stort projekt att skapa ett sådan skript. Arbetar egentligen på en remix av Ubuntu 10.10 som har Avant window navigator som navigeringsystem istället för Gnome panelerna. Hade underlättat med ett skript som efter en installation av Ubuntu utför de inställningar jag gjort för att få mitt nuvarande systems inställningar. Men som sagt, alltid kul att lära sig något nytt så tackar igen för svaren Smile

-----
http://linuxbloggen.blogspot.com/

"Software is like sex: it's best when it's free"

LAltinells bild

 Ja det behöver väll inte direkt vara precis så invecklat som det låter. Eftersom det verkar som att du endast är inriktad på Ubuntu 10.10 och utgår ifrån att användaren har rättigheter så klarar du dig med ett enkelt bash-script.

Tex för att installera de programmen som du vill använda kan du göra såhär;

Skapa en textfil som heter t.ex. install.sh, och klistra in följande text:

#!/bin/bash

apt-get install ubuntu-restricted-extras mplayer avn vim

 

Spara filen, gör den executable med kommandot:

chmod +x install.sh

 

Sedan kan du köra scriptet med:

sudo ./install.sh

Anledningen till att du behöver köra scriptet med sudo är att det krävs rättigheter för att installera program.

 

Nu vet du grunden, exakt vilka program du vill installera får du själv välja och skriva in i scriptet. Du borde kunna byta bakrundsbild (i GNOME) relativt enkelt. Exakt hur vet jag inte eftersom jag inte använder GNOME. Men om du exempelvis skulle vilja flytta knapparna Stäng, Maximera, och Minimera till höger (varför sitter de nu mer till vänster?!) kan du använda gconftool-2;

gconftool-2 --set /apps/metacity/general/button_layout --type string menu:minimize,maximize,close

 

Du kan själv bygga ut ditt script att bli smartare och göra fler saker. Lycka till! Smile

fsns bild

En sak att tänka på i exemplet ovan, bara. Om scriptet körs med sudo så kommer både apt-get och gconftool-2 köras som användaren root. Applikationen kommer installeras och roots-bakgrundbild kommer ändras, vilket kanske inte var det som avsågs.

extons bild

Mycket bra tips LAltinell!

Ett sådant script skulle jag kunna lägga med i mina remastrade system bl a för att hålla nere storleken på ISO-filerna.

LINUX.EXTON.NET

LAltinells bild

 Det går att göra mycket andra saker också. Själv har jag ett script som jag kör vid nyinstallation på alla mina datorer som hämtar mina .bashrc och .vimrc filer och placerar dem i min (nya) home. Scriptet uppdaterar min hosts-fil och skickar ut denna till alla andra datorer lokalt. Beroende på vilken dist det är installeras vissa program, vissa inställningar ändras (gnome och openbox) samt lägger till en sshfs entry till fstab-filen. Hurra för bash! Smile

Joakim_Ws bild

Perfekt! Precis vad jag behöver som start och sedan jobba vidare på.

-----
http://linuxbloggen.blogspot.com/

"Software is like sex: it's best when it's free"

Pettmans bild

Har du en färdig version av det önskade systemet på en partition är det väl bara att göra en avbildning av det och lägga in direkt på hårddisken på de andra datorerna? Linux är mycket mindre petigt än windows med att behöva installeras specifikt för en viss dator så det kan gå.

___________________________________
För övrigt anser jag att CapsLock bör förgöras...