et startscript til Ubuntu 12.04

Dette forum bruges på EGET ANSVAR til at lege med scripts og andre ting med risiko for at beskadige sit eget og andres systemer.
thj01
Indlæg: 2667
Tilmeldt: 21. nov 2006, 10:06
Geografisk sted: Fredericia

et startscript til Ubuntu 12.04

Indlæg af thj01 »

Jeg vil gerne have et script jeg bare kan starte når jeg har installeret Ubuntu fra bunden af, så alle de programmer jeg ønsker bliver installeret.

Det som jeg ikke helt har fattet endnu - og som jeg ikke evner at søge mig frem til er

Hvordan skal filen bygges op
Hvordan indsættes kommentarer

Her ligger jeg lige min "rå udgave" op, så alle der lige føler for at vejlede og hjælpe mig er velkomne gg

Også gerne hvis i ser et program der bare MANGLER! gg



Kode: Vælg alt



Nedenstående har jeg så ikke fundet en kommandolinie til endnu
Aktiver Canonical-partner i opdateringshåndteringen

sudo -E wget --output-document=/etc/apt/sources.list.d/medibuntu.list http://www.medibuntu.org/sources.list.d/$(lsb_release -cs).list && sudo apt-get --quiet update &&
sudo apt-get --yes --quiet --allow-unauthenticated install medibuntu-keyring &&
sudo apt-get --quiet update

if [[ `uname -m` == 'x86_64' ]];
then
sudo apt-get install -y icedtea-plugin flashplugin-installer non-free-codecs ubuntu-restricted-extras libdvdcss2 vlc-plugin-pulse mozilla-plugin-vlc totem-plugins-extra skype vlc audacity gparted sysinfo rar p7zip gnome-system-tools geany inkscape;
else
sudo apt-get install -y icedtea-plugin adobe-flashplugin non-free-codecs ubuntu-restricted-extras libdvdcss2 vlc-plugin-pulse mozilla-plugin-vlc totem-plugins-extra skype vlc audacity gparted sysinfo rar p7zip gnome-system-tools geany inkscape;
fi


sudo add-apt-repository -y ppa:otto-kesselgulasch/gimp &&
sudo add-apt-repository -y ppa:tualatrix/ppa &&
sudo add-apt-repository -y ppa:clipgrab-team/ppa &&
sudo add-apt-repository -y ppa:webupd8team/jupiter &&
sudo add-apt-repository -y ppa:indicator-multiload/stable-daily &&
sudo add-apt-repository -y ppa:minetestdevs/daily-builds &&
sudo apt-add-repository -y ppa:diesch/testing &&
sudo apt-add-repository -y ppa:pidgin-developers/ppa


sudo apt-get update &&
sudo apt-get install -y gimp ubuntu-tweak clipgrab jupiter indicator-multiload minetestc55 classicmenu-indicator pidgin

wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | sudo apt-key add - &&
sudo sh -c 'echo "deb http://download.virtualbox.org/virtualbox/debian precise contrib" >> /etc/apt/sources.list' &&
sudo apt-key adv --keyserver pgp.mit.edu --recv-keys 5044912E &&
sudo sh -c 'echo "deb http://linux.dropbox.com/ubuntu/ precise main" >> /etc/apt/sources.list.d/dropbox.list' &&
wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add - &&
sudo sh -c 'echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list' &&
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4E9CFF4E &&
sudo sh -c 'echo "deb http://repository.spotify.com stable non-free" >> /etc/apt/sources.list' &&
sudo apt-get update &&
sudo apt-get install -y virtualbox-4.1 nautilus-dropbox google-chrome-stable spotify-client
Forfatter til Ubuntuguiden: http://www.vidas.dk/guides/ubuntuguiden.html

Kører LTS udgaverne.

"It's always easy if you know how to do it."
Brugeravatar
NickyThomassen
Admin
Indlæg: 3652
Tilmeldt: 5. mar 2010, 19:58
IRC nickname: nicky
Geografisk sted: 192.168.20.42

Re: et startscript til Ubuntu 12.04

Indlæg af NickyThomassen »

Opbygningen af scriptet ser umiddelbart ok ud, og mht. til kommentarene, som er det nemmeste, så er det bare en havelåge ( # )

Så vidt jeg husker, kan # også bruges 'inline':

Kode: Vælg alt

1. #!/bin/bash
2.
3. # Scriptet viser bare noget tekst
4. echo Hej # Alt efter havelågen køres ikke
5. # Endnu en kommentar
6. ...
7. exit0

Linie 1 fortæller bash at du gerne vil bruge bash, husk den linie i scripts, da det kan give problemer hvis den mangler (især hvis det ikke er bash-scriptning der er i scriptet, men fx perl). Så en anden måde at sige det på, ville være at kommentarer gælder fra # til en newline nås.

Omkring delen med partner, så ser det ud til at det bare er en linie med 'partner', der skal have fjernet # i sources.list
http://askubuntu.com/questions/14629/how-do-i-enable-the-partner-repository

(sources.list ligger i /etc/apt/ og er ansvarlig for hvad pakkehåndteringen kan hente, så en ødelagt sources.list = et ødelagt pakkesystem https://help.ubuntu.com/community/SourcesList )

Der er et eksempel med sed

Kode: Vælg alt

sed -i "/^# deb .*partner/ s/^# //" /etc/apt/sources.list && apt-get update

Så vidt mine sed-evner går, så bliver der ledt efter en linie der indeholder 'deb' og 'partner', og eventuelle havelåger bliver fjernet, så den pågældende linie ikke længere er kommenteret ud. Du bør selvsagt være forsigtig med at køre den kommando ;) Det smarte ved den er, at hvis den pågældende linie allerede er aktiv, så gør sed ikke mere, og den burde heller ikke fejle.
Brugeravatar
NickyThomassen
Admin
Indlæg: 3652
Tilmeldt: 5. mar 2010, 19:58
IRC nickname: nicky
Geografisk sted: 192.168.20.42

Re: et startscript til Ubuntu 12.04

Indlæg af NickyThomassen »

Nårh ja, du kender selvfølgelig til sources.list når du har den med i scriptet :D
thj01
Indlæg: 2667
Tilmeldt: 21. nov 2006, 10:06
Geografisk sted: Fredericia

Re: et startscript til Ubuntu 12.04

Indlæg af thj01 »

Jeg jeg kendte til dem, men jeg ledte jo efter en metode til at fjerne # mærket - og lidt hurtig visdom i hvordan scriptet skal struktures.
Og det har jeg jo fået i rigelige mål med dine indlæg ;)

Tak
Forfatter til Ubuntuguiden: http://www.vidas.dk/guides/ubuntuguiden.html

Kører LTS udgaverne.

"It's always easy if you know how to do it."
Brugeravatar
Christian.Arvai
Admin
Indlæg: 10725
Tilmeldt: 26. apr 2008, 19:27
IRC nickname: Christian_Arvai
Geografisk sted: Holeby - Lolland

Re: et startscript til Ubuntu 12.04

Indlæg af Christian.Arvai »

Her er softwarekilderne til u12.04:

Kode: Vælg alt

echo "Tilføjelser af softwarekilder."
echo ""
sudo apt-add-repository "deb http://archive.canonical.com/ubuntu/ precise partner"
sudo apt-add-repository "deb http://archive.canonical.com/ubuntu/ precise-updates partner"
sudo apt-add-repository "deb http://dk.archive.ubuntu.com/ubuntu/ precise multiverse"
sudo apt-add-repository "deb http://dk.archive.ubuntu.com/ubuntu/ precise-updates multiverse"
sudo apt-add-repository "deb http://dk.archive.ubuntu.com/ubuntu/ precise main restricted"
sudo apt-add-repository "deb http://dk.archive.ubuntu.com/ubuntu/ precise-updates main restricted"
sudo apt-add-repository "deb http://dk.archive.ubuntu.com/ubuntu/ precise universe"
sudo apt-add-repository "deb http://dk.archive.ubuntu.com/ubuntu/ precise-updates universe"
sudo apt-get update -y 
echo ""
echo "Udført."


Hvis du vil lege lidt mere, så har jeg et ret godt script til samme formål https://ubuntudanmark.dk/forum/viewtopic.php?f=33&t=13560&p=105772&hilit=script#p105772

Der er også "udkommenterede linjer" og "echo", som skriver korte beskeder i terminalen under kørsel (det er ret praktisk).
Med venlig hilsen Christian

"We can only see a short distance ahead, but we can see plenty there that needs to be done." -- Alan Turing
Brugeravatar
NickyThomassen
Admin
Indlæg: 3652
Tilmeldt: 5. mar 2010, 19:58
IRC nickname: nicky
Geografisk sted: 192.168.20.42

Re: et startscript til Ubuntu 12.04

Indlæg af NickyThomassen »

Glad for at kunne hjælpe :)

christian.arvai, giver det dubletter hvis linien allerede er der, eller er det meningen at sources.list skal tømmes først?
Brugeravatar
Christian.Arvai
Admin
Indlæg: 10725
Tilmeldt: 26. apr 2008, 19:27
IRC nickname: Christian_Arvai
Geografisk sted: Holeby - Lolland

Re: et startscript til Ubuntu 12.04

Indlæg af Christian.Arvai »

TitanusEramius skrev:Glad for at kunne hjælpe :)

christian.arvai, giver det dubletter hvis linien allerede er der, eller er det meningen at sources.list skal tømmes først?

Det giver dubletter, men det er uden betydning, med mindre at man selv går ind og markere de oprindelige via GUI. Hvis at man både gør det med GUI, og derefter kører et script, som tilføjer de samme sources.list, vil der komme fejlmeldinger om at der er dubletter. Så det bedste er at droppe GUI, og bare fyrer de kommandoer af (hvis man altså er til CLI).

Man kunne helt sikkert godt lave kommandoer, som fjerner de oprindelige fra "Anden software", og derefter tilføje de ønskede (det ville jo også se pænere ud), men jeg syntes godt at jeg kan overleve, med at der er nogle få linier , som der ikke er flueben ved ;)
Med venlig hilsen Christian

"We can only see a short distance ahead, but we can see plenty there that needs to be done." -- Alan Turing
Brugeravatar
NickyThomassen
Admin
Indlæg: 3652
Tilmeldt: 5. mar 2010, 19:58
IRC nickname: nicky
Geografisk sted: 192.168.20.42

Re: et startscript til Ubuntu 12.04

Indlæg af NickyThomassen »

christian.arvai skrev:Man kunne helt sikkert godt ...

Kan alt, det er jo Linux vi snakker om :D
(spørgsmålet er bare om vi nøgne aber er smarte nok...)

Men sources.list er jo bare en fil, så for at undgå risikoen for dubletter, hvorfor så ikke

Kode: Vælg alt

1. echo "deb http://archive.canonical.com/ubuntu/ precise partner" > /etc/apt/sources.list
2. echo "deb http://dk.archive.ubuntu.com/ubuntu/ precise multiverse" >> /etc/apt/sources.list
3. echo "deb http://dk.archive.ubuntu.com/ubuntu/ precise multiverse" >> /etc/apt/sources.list
4. ...

osv. Bare lig mærke til forskellen i > og >> ... Den kode løser flere problemer i forhold til den anden, deriblandt at du er sikker på at arkiverne er danske osv.
Brugeravatar
Christian.Arvai
Admin
Indlæg: 10725
Tilmeldt: 26. apr 2008, 19:27
IRC nickname: Christian_Arvai
Geografisk sted: Holeby - Lolland

Re: et startscript til Ubuntu 12.04

Indlæg af Christian.Arvai »

Jeg kan godt se at:

Kode: Vælg alt

echo "deb http://archive.canonical.com/ubuntu/ precise partner" > /etc/apt/sources.list
echo "deb http://archive.canonical.com/ubuntu/ precise-updates partner" >> /etc/apt/sources.list
echo "deb http://dk.archive.ubuntu.com/ubuntu/ precise multiverse" >> /etc/apt/sources.list
echo "deb http://dk.archive.ubuntu.com/ubuntu/ precise-updates multiverse" >> /etc/apt/sources.list
echo "deb http://dk.archive.ubuntu.com/ubuntu/ precise main restricted" >> /etc/apt/sources.list
echo "deb http://dk.archive.ubuntu.com/ubuntu/ precise-updates main restricted" >> /etc/apt/sources.list
echo "deb http://dk.archive.ubuntu.com/ubuntu/ precise universe" >> /etc/apt/sources.list
echo "deb http://dk.archive.ubuntu.com/ubuntu/ precise-updates universe" >> /etc/apt/sources.list

vil give et pænere resultat (uden dubletter).

Men jeg vil lige gøre folk opmærksom på, at denne metode vil rydde alle tidligere tilføjede Softwarekilder. Dette er så også ok med mig, da jeg jo bruger scriptet ved en helt frisk install.
Med venlig hilsen Christian

"We can only see a short distance ahead, but we can see plenty there that needs to be done." -- Alan Turing
Brugeravatar
Christian.Arvai
Admin
Indlæg: 10725
Tilmeldt: 26. apr 2008, 19:27
IRC nickname: Christian_Arvai
Geografisk sted: Holeby - Lolland

Re: et startscript til Ubuntu 12.04

Indlæg af Christian.Arvai »

Hvis vi nørder den lidt videre, så kan vi undgå at skulle ændre navnet på udgivelsen ved softwarekilder ved hver udgivelse, ved at bruge $(lsb_release -cs) i stedet for precise. Altså sådan at scriptet ikke skal opdateres hvert ½ år.

Kode: Vælg alt

echo "deb http://archive.canonical.com/ubuntu/ $(lsb_release -cs) partner" > /etc/apt/sources.list
echo "deb http://archive.canonical.com/ubuntu/ $(lsb_release -cs)-updates partner" >> /etc/apt/sources.list
echo "deb http://dk.archive.ubuntu.com/ubuntu/ $(lsb_release -cs) multiverse" >> /etc/apt/sources.list
echo "deb http://dk.archive.ubuntu.com/ubuntu/ $(lsb_release -cs)-updates multiverse" >> /etc/apt/sources.list
echo "deb http://dk.archive.ubuntu.com/ubuntu/ $(lsb_release -cs) main restricted" >> /etc/apt/sources.list
echo "deb http://dk.archive.ubuntu.com/ubuntu/ $(lsb_release -cs)-updates main restricted" >> /etc/apt/sources.list
echo "deb http://dk.archive.ubuntu.com/ubuntu/ $(lsb_release -cs) universe" >> /etc/apt/sources.list
echo "deb http://dk.archive.ubuntu.com/ubuntu/ $(lsb_release -cs)-updates universe" >> /etc/apt/sources.list
Med venlig hilsen Christian

"We can only see a short distance ahead, but we can see plenty there that needs to be done." -- Alan Turing
Brugeravatar
Christian.Arvai
Admin
Indlæg: 10725
Tilmeldt: 26. apr 2008, 19:27
IRC nickname: Christian_Arvai
Geografisk sted: Holeby - Lolland

Re: et startscript til Ubuntu 12.04

Indlæg af Christian.Arvai »

Kode: Vælg alt

if [[ `uname -m` == 'x86_64' ]];
then
sudo apt-get install -y icedtea-plugin flashplugin-installer non-free-codecs ubuntu-restricted-extras libdvdcss2 vlc-plugin-pulse mozilla-plugin-vlc totem-plugins-extra skype vlc audacity gparted sysinfo rar p7zip gnome-system-tools geany inkscape;
else
sudo apt-get install -y icedtea-plugin adobe-flashplugin non-free-codecs ubuntu-restricted-extras libdvdcss2 vlc-plugin-pulse mozilla-plugin-vlc totem-plugins-extra skype vlc audacity gparted sysinfo rar p7zip gnome-system-tools geany inkscape;
fi

ville jeg ændre til:

Kode: Vælg alt

if [[ `uname -m` == 'x86_64' ]];
then
sudo apt-get install -y flashplugin-installer;
else
sudo apt-get install -y adobe-flashplugin;
fi
sudo apt-get install -y icedtea-plugin non-free-codecs ubuntu-restricted-extras libdvdcss2 vlc-plugin-pulse mozilla-plugin-vlc totem-plugins-extra skype vlc audacity gparted sysinfo rar p7zip gnome-system-tools geany inkscape

Da det vil være nemmere at tilføje og rette i pakker, hvis man ikke skal rette flere steder. Som jeg lavede det, er det kun de pakker, som er forskellige i 32/64bit, der er forskel på. Resten er så en samlet, og er nemmere at rette i.
Med venlig hilsen Christian

"We can only see a short distance ahead, but we can see plenty there that needs to be done." -- Alan Turing
Brugeravatar
NickyThomassen
Admin
Indlæg: 3652
Tilmeldt: 5. mar 2010, 19:58
IRC nickname: nicky
Geografisk sted: 192.168.20.42

Re: et startscript til Ubuntu 12.04

Indlæg af NickyThomassen »

I Debian kan man vælge imellem 'stable' eller navnet på den udgave man bruger, som fx lenny eller squeeze, så der er det lidt nemmere. Men genialt nok at bygge lsb_release ind i scriptet, det havde jeg slet ikke tænkt på :)

Og ja, den første linie med > sletter hele filen, så hvis man har tilpasset sources.list, så virker det ikke så godt.
thj01
Indlæg: 2667
Tilmeldt: 21. nov 2006, 10:06
Geografisk sted: Fredericia

Re: et startscript til Ubuntu 12.04

Indlæg af thj01 »

har lige tilrettet det

Kode: Vælg alt

#!/bin/bash

# aktivere de forskellige repositories

echo "deb http://archive.canonical.com/ubuntu/ $(lsb_release -cs) partner" > /etc/apt/sources.list
echo "deb http://archive.canonical.com/ubuntu/ $(lsb_release -cs)-updates partner" >> /etc/apt/sources.list
echo "deb http://dk.archive.ubuntu.com/ubuntu/ $(lsb_release -cs) multiverse" >> /etc/apt/sources.list
echo "deb http://dk.archive.ubuntu.com/ubuntu/ $(lsb_release -cs)-updates multiverse" >> /etc/apt/sources.list
echo "deb http://dk.archive.ubuntu.com/ubuntu/ $(lsb_release -cs) main restricted" >> /etc/apt/sources.list
echo "deb http://dk.archive.ubuntu.com/ubuntu/ $(lsb_release -cs)-updates main restricted" >> /etc/apt/sources.list
echo "deb http://dk.archive.ubuntu.com/ubuntu/ $(lsb_release -cs) universe" >> /etc/apt/sources.list
echo "deb http://dk.archive.ubuntu.com/ubuntu/ $(lsb_release -cs)-updates universe" >> /etc/apt/sources.list

#Aktivere medibuntu
#
#
#

sudo -E wget --output-document=/etc/apt/sources.list.d/medibuntu.list http://www.medibuntu.org/sources.list.d/$(lsb_release -cs).list && sudo apt-get --quiet update &&
sudo apt-get --yes --quiet --allow-unauthenticated install medibuntu-keyring &&
sudo apt-get --quiet update

#Installer flash - forskel på 64bit og 32bit udg.
#
#
#

if [[ `uname -m` == 'x86_64' ]];
then
sudo apt-get install -y flashplugin-installer;
else
sudo apt-get install -y adobe-flashplugin;
fi

# Installer plugins, java, drivers og diverse codecs
#
#
#

sudo apt-get install -y icedtea-plugin adobe-flashplugin non-free-codecs ubuntu-restricted-extras libdvdcss2 vlc-plugin-pulse mozilla-plugin-vlc totem-plugins-extra

# Installer diverse programmer
#
# Heruder indsættes andre programmer der skal installeres fra start, og som ikke kræver ekstra ppa'er
#
# Skype - samtale/cam client
# vlc - video afspiller
# audacity - audio editor/recorder
# gparted - partitionmanager
# sysinfo - System informationer
# rar, p7zip - vigtige pakkeprogrammer
# Gnome-system-tools -
   # Users and groups
   # Date and time
   # Network configuration
   # Runlevels
   # Shared Folders through Samba or NFS
# geany - teksteditor
# inkscape - SVG editor


sudo apt-get install -y skype vlc audacity gparted sysinfo rar p7zip gnome-system-tools geany inkscape

#Installer diverse programmer i nyeste versioner - eller som ikke er med i grund repo's endnu

#gimp 2.8
sudo add-apt-repository -y ppa:otto-kesselgulasch/gimp &&

#Ubuntu-tweak
sudo add-apt-repository -y ppa:tualatrix/ppa &&

#Clip-grab
sudo add-apt-repository -y ppa:clipgrab-team/ppa &&

#Jupiter - strømstyringsprogram
sudo add-apt-repository -y ppa:webupd8team/jupiter &&

#system load indicator
sudo add-apt-repository -y ppa:indicator-multiload/stable-daily &&

#minetest - minecraft-clon
sudo add-apt-repository -y ppa:minetestdevs/daily-builds &&

#classicmenu-indicator
sudo apt-add-repository -y ppa:diesch/testing &&

#Nyeste pidgin
sudo apt-add-repository -y ppa:pidgin-developers/ppa

sudo apt-get update &&

sudo apt-get install -y gimp ubuntu-tweak clipgrab jupiter indicator-multiload minetestc55 classicmenu-indicator pidgin



#diverse programmer der kun kan hentes fra udbyder
#
#Herunder indsættes kommende ekstra programmer der kræver leverandør ppa'er
#

#VirtualBox
wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | sudo apt-key add - &&
sudo sh -c 'echo "deb http://download.virtualbox.org/virtualbox/debian precise contrib" >> /etc/apt/sources.list' &&

#Dropbox - bør måske fjernes til fordel for gdrive og UbuntuOne
sudo apt-key adv --keyserver pgp.mit.edu --recv-keys 5044912E &&
sudo sh -c 'echo "deb http://linux.dropbox.com/ubuntu/ precise main" >> /etc/apt/sources.list.d/dropbox.list' &&

#Google Chrome
wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add - &&
sudo sh -c 'echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list' &&

#Spotify client
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4E9CFF4E &&
sudo sh -c 'echo "deb http://repository.spotify.com stable non-free" >> /etc/apt/sources.list' &&

sudo apt-get update &&

sudo apt-get install -y virtualbox-4.1 nautilus-dropbox google-chrome-stable spotify-client


exit0


Men jeg synes det vil være smartest, hvis det kan gøres sådan, at der ikke komme karambolage med GUI senere ved indsættelse af de øverste repositories.
For Murpy's lov er stærkere end fornuften gg
Forfatter til Ubuntuguiden: http://www.vidas.dk/guides/ubuntuguiden.html

Kører LTS udgaverne.

"It's always easy if you know how to do it."
Brugeravatar
NickyThomassen
Admin
Indlæg: 3652
Tilmeldt: 5. mar 2010, 19:58
IRC nickname: nicky
Geografisk sted: 192.168.20.42

Re: et startscript til Ubuntu 12.04

Indlæg af NickyThomassen »

Murpy er en ganske seriøs fyr som aldrig må undervurderes :D

Men koden løser problemet med dubletter, ved først at slette indholdet af filen, og så bygge den op igen linie for linie. Der er lidt detaljer her
http://ss64.com/bash/syntax-redirection.html