auto edit av sources.list?
- simonw
- AVREGISTRERAD
- Inlägg: 128
- Blev medlem: 09 jul 2008, 09:20
- OS: Ubuntu
- Utgåva: 14.04 Trusty Tahr LTS
auto edit av sources.list?
tjipp!
Går det på något enkelt vis att redigera sources.list utan att behöva göra det med "Mjukvarukällor" eller redigera den för hand med typ gedit?
Ha det!
Går det på något enkelt vis att redigera sources.list utan att behöva göra det med "Mjukvarukällor" eller redigera den för hand med typ gedit?
Ha det!
"Then there was the man who drowned crossing a stream with an average depth of six inches."
W. I. E. Gates
W. I. E. Gates
- Konservburk
- Inlägg: 5919
- Blev medlem: 07 apr 2007, 22:28
Re: auto edit av sources.list?
Ja, enklast möliga redigering är att lägga till nya rader i slutet av filen...
Om du inte bryr dig om hur enkelt det är så kan du göra precis vilka ändringar du vill.
Kod: Markera allt
echo "ny rad" >>filen
- simonw
- AVREGISTRERAD
- Inlägg: 128
- Blev medlem: 09 jul 2008, 09:20
- OS: Ubuntu
- Utgåva: 14.04 Trusty Tahr LTS
Re: auto edit av sources.list?
Att trycka in nya rader i slutet på filen är inga problem, det jag vill är att avmarkera lite poster för tex backports mm. Jag ska ha det till ett skript, så det får gärna vara lite klurigt. 

"Then there was the man who drowned crossing a stream with an average depth of six inches."
W. I. E. Gates
W. I. E. Gates
-
- Inlägg: 6191
- Blev medlem: 14 jan 2007, 19:31
- OS: Ubuntu
- Utgåva: 22.10 Kinetic Kudu
- Ort: Stockholm
Re: auto edit av sources.list?
En del ligger ju i /etc/apt/sources.list.d också, filer som slutar på .list är aktiverade
-
- Inlägg: 1269
- Blev medlem: 15 dec 2007, 03:20
- OS: Xubuntu
Re: auto edit av sources.list?
Jag tror perl är rätt motorsåg för det här jobbet:simonw skrev:Att trycka in nya rader i slutet på filen är inga problem, det jag vill är att avmarkera lite poster för tex backports mm. Jag ska ha det till ett skript, så det får gärna vara lite klurigt.
Kod: Markera allt
# kommentera bort deb- och deb-src-rader som innehåller "hardy-backports"
perl -i~ -pe 's/^(?=deb.*hardy-backports)/#/' /etc/apt/sources.list
Kod: Markera allt
# ta bort kommentartecken framför deb- och deb-src-rader med "hardy-backports"
perl -i~ -pe 's/^# ?(?=deb.*hardy-backports)//' /etc/apt/sources.list
Tips: I ett shell-script, definiera funktionerna activate-deb och inactivate-deb. Anropa från innifrån shell-scriptet med t.ex activade-deb hardy-backports
Kod: Markera allt
activate-deb () {
perl -i~ -pe "s/^# ?(?=deb.*$1)//" /etc/apt/sources.list
}
inactivate-deb () {
perl -i~ -pe "s/^(?=deb.*$1)/#/" /etc/apt/sources.list
}
- simonw
- AVREGISTRERAD
- Inlägg: 128
- Blev medlem: 09 jul 2008, 09:20
- OS: Ubuntu
- Utgåva: 14.04 Trusty Tahr LTS
Re: auto edit av sources.list?
Glömde väl säga att jag är ny på det här och inte förstår perl än, har just kommit igång med lite bash så ursäkta om jag svarar med en (/många) fråga(/-or).
På det hela taget är det detta jag vill ha gjort: aktivera restricted, multiverse, partner och alla uppdateringar utom de försläppta. Jag antar att kodstycket
Kan du kanske lite snabbt peka ut vad de olika delarna gör? Fattar givetvis helheten, "hitta en rad med #, deb, och invariabeln, och ta bort #". Men vad gör de olika argumenten?
Oj, vad många frågor det blev! Perl är ett senare projekt, så skriv inte ihjäl dig om det nu
Tack en massa för hjälpen! Med detta löst snart kan jag publicera min lilla grej...
På det hela taget är det detta jag vill ha gjort: aktivera restricted, multiverse, partner och alla uppdateringar utom de försläppta. Jag antar att kodstycket
passar bäst då. Men det är vad jag fattar det som inte bash utan just perlkod(?). Ska jag lägga detta i en egen fil med något speciellt tillägg och namn för senare användning?David Andersson skrev:Kod: Markera allt
activate-deb () { perl -i~ -pe "s/^# ?(?=deb.*$1)//" /etc/apt/sources.list } inactivate-deb () { perl -i~ -pe "s/^(?=deb.*$1)/#/" /etc/apt/sources.list }
Kan du kanske lite snabbt peka ut vad de olika delarna gör? Fattar givetvis helheten, "hitta en rad med #, deb, och invariabeln, och ta bort #". Men vad gör de olika argumenten?
Oj, vad många frågor det blev! Perl är ett senare projekt, så skriv inte ihjäl dig om det nu

Tack en massa för hjälpen! Med detta löst snart kan jag publicera min lilla grej...
"Then there was the man who drowned crossing a stream with an average depth of six inches."
W. I. E. Gates
W. I. E. Gates
-
- Inlägg: 1269
- Blev medlem: 15 dec 2007, 03:20
- OS: Xubuntu
Re: auto edit av sources.list?
All kod ovan fungerar i kommandoraden och shell-script och i bash. Det är bara biten "s/^# ?(?=deb.*$1)//" (och motsv) som är perl-kod, därför står det perl framför så att bash startar perl för att utföra den.simonw skrev: På det hela taget är det detta jag vill ha gjort: aktivera restricted, multiverse, partner och alla uppdateringar utom de försläppta. Jag antar att kodstycketpassar bäst då. Men det är vad jag fattar det som inte bash utan just perlkod(?). Ska jag lägga detta i en egen fil med något speciellt tillägg och namn för senare användning?David Andersson skrev:Kod: Markera allt
activate-deb () { perl -i~ -pe "s/^# ?(?=deb.*$1)//" /etc/apt/sources.list } inactivate-deb () { perl -i~ -pe "s/^(?=deb.*$1)/#/" /etc/apt/sources.list }
Så skriv in ovanstående kod i ditt bash-script, för att definiera activate-deb och inactivate-deb. Efter det i samma bash-script kan du t.ex. skriva
Kod: Markera allt
inactivate-deb "restricted"
En tidig julklapp?simonw skrev:Med detta löst snart kan jag publicera min lilla grej...

-
- Inlägg: 1269
- Blev medlem: 15 dec 2007, 03:20
- OS: Xubuntu
Re: auto edit av sources.list?
Efter att scriptet ändrat /etc/apt/sources.list bör du eller scriptet utföra kommandot apt-get update, tror jag det heter.David Andersson skrev:Kod: Markera allt
inactivate-deb "restricted"
- simonw
- AVREGISTRERAD
- Inlägg: 128
- Blev medlem: 09 jul 2008, 09:20
- OS: Ubuntu
- Utgåva: 14.04 Trusty Tahr LTS
Re: auto edit av sources.list?
David Andersson skrev:En tidig julklapp?simonw skrev:Med detta löst snart kan jag publicera min lilla grej...

Då är jag med på hur funktionerna ska skrivas in. Tackar!
"Then there was the man who drowned crossing a stream with an average depth of six inches."
W. I. E. Gates
W. I. E. Gates
- simonw
- AVREGISTRERAD
- Inlägg: 128
- Blev medlem: 09 jul 2008, 09:20
- OS: Ubuntu
- Utgåva: 14.04 Trusty Tahr LTS
Re: auto edit av sources.list?
Nästan färdig att visa upp nu
Vill bara ha e sätt att loopa en case-sats (bash igen förstås
) om svaret som ges inte är något av de sökta alternativen. Kanske någon vet?


"Then there was the man who drowned crossing a stream with an average depth of six inches."
W. I. E. Gates
W. I. E. Gates
- Konservburk
- Inlägg: 5919
- Blev medlem: 07 apr 2007, 22:28
Re: auto edit av sources.list?
Det hjälper inte att bara loopa case-satsen om du inte även uppdaterar själva variabeln i varje varvsimonw skrev:Vill bara ha e sätt att loopa en case-sats (bash igen förstås) om svaret som ges inte är något av de sökta alternativen.

Kod: Markera allt
while
printf 'Skriv något: '
do read REPLY
case "$REPLY" in
a)
echo A
break ;;
b)
echo B
break ;;
esac
done
- simonw
- AVREGISTRERAD
- Inlägg: 128
- Blev medlem: 09 jul 2008, 09:20
- OS: Ubuntu
- Utgåva: 14.04 Trusty Tahr LTS
Re: auto edit av sources.list?
Fint Konservburk! Här kommer resultatet:
Jag har lite fler idéer, men de hinner jag inte ta nu, ville bara få ut det här
återkommer senare med mer tankar. Kommentera gärna! har ni nått förslag på fler program som bör installeras som default??
Kod: Markera allt
#!/bin/bash
# Install script for LXDE on Ubuntu 8.10 Intrepid Ibex.
# Recommended is to instal it the "U-Lite way", from a mini-iso. Boot option "cli".
# Functions for source.list editing.
activate-deb () {
perl -i~ -pe "s/^# ?(?=deb.*$1)//" /etc/apt/sources.list
}
inactivate-deb () {
perl -i~ -pe "s/^(?=deb.*$1)/#/" /etc/apt/sources.list
}
# What repos to use.
echo -n "Activate Backports and Partner repositories? [y/N] "
read REPLY
case $REPLY in
[Yy]*)
activate-deb "backports"
activate-deb "partner"
;;
*)
echo "sources.list is left alone"
;;
esac
# To medi or not to medi?
echo -n "Do you wish to install software from Medibuntu, (options for removing non-free software is provided)? [y/N] "
read REPLY
case $REPLY in
[Yy]*)
sudo wget http://www.medibuntu.org/sources.list.d/intrepid.list --output-document=/etc/apt/sources.list.d/medibuntu.list
sudo apt-get update && sudo apt-get install medibuntu-keyring && sudo apt-get update
echo -n "Remove non-free medibuntu software? [y/N] "
read REPLY
case $REPLY in
[Yy]*)
sudo sed -e 's/ non-free//' -i /etc/apt/sources.list.d/medibuntu.list
;;
*)
;;
esac
;;
*)
echo "Continuing"
;;
esac
# Make install current.
sudo apt-get update
sudo apt-get upgrade
# Finaly!
while
echo -n "Do you want a minimal, medium or extensive install? [M/b/e] "
do read REPLY
case $REPLY in
''|[Mm]*)
sudo apt-get install lxde xterm xpdf dillo
break ;;
[Bb]*)
sudo apt-get install lxde xterm synaptic xpdf abiword gnumeric epiphany lxrandr lxnm
break ;;
[Ee]*)
sudo apt-get install lxde lxterminal synaptic xpdf openoffice.org firefox mplayer libdvdcss2 w32codecs grandr lxnm flashplayer-nonfree
break ;;
*)
echo -n "Please, try again [M/b/e] "
break ;;
esac
done
echo "Installation complete! Please, have fun!!"

"Then there was the man who drowned crossing a stream with an average depth of six inches."
W. I. E. Gates
W. I. E. Gates