sed?

Du suchst ein Programm für einen bestimmten Zweck?
Antworten
Benutzeravatar
minimike
Beiträge: 5616
Registriert: 26.03.2003 02:21:19
Lizenz eigener Beiträge: neue BSD Lizenz
Wohnort: Köln
Kontaktdaten:

sed?

Beitrag von minimike » 19.07.2008 00:49:37

Hi

Ich führe gerade unter Gentoo SELINUX ein und habe derzeit ein Problem mit fehlerhaft gelabelten Paketen. Nun "rlpkg -ra" tut es nicht so wie gewünscht allerdings z.B. "rlpkg sys-auth/pambase sys-auth/pam sys-apps/shadow" danach konnte ich mich nach dem "setenforce 1" generrel wieder Einloggen. Generell tut SELINUX es mittlerweile nach dem ich noch eine locale Policy erzeugt und einige Binarys mit chcon von Hand nachbearbeitet hatte. Allerdings will ich jetzt alles korrigieren. Ich dachte ich übergebe in einem Bashskript dem Programm rlpkg eine Liste. Die Liste habe ich schon, nur sind am Ende noch Versionsnummern die ich gerne irgendwie entfernen muß weil sonst die Syntax fehlerhaft ist

Also ist jetzt sys-apps/portage-2.1.4.4 soll sein sys-apps/portage.

Mit welchem Programm bzw generell überhaupt wie mache ich das? Evtl sed? Ich kompeliere die 1500 Pakete jedenfalls nicht nochmal und alles mit chcon.... No Way! Sollte eigendlich so gehen denke ich mal. Anbei ein Teil der Liste

http://nopaste.debianforum.de/9689

Liebe Grüsse euer Darko
"Lennart Poettering is one of those typical IT leaders..." "like Linus Torvalds and Theo de Raadt?" "more like Bozo the Clown" After all, now a good employee of Microsoft

fuzzy
Beiträge: 1021
Registriert: 04.10.2003 12:15:52

Re: sed?

Beitrag von fuzzy » 19.07.2008 03:41:12

Hallo minimike,

Code: Alles auswählen

fuzzy@etch:~$ echo "sys-apps/portage-2.1.4.4" | sed 's/-[0-9].*//'
sys-apps/portage
hilft dir das erstmal weiter, oder wird damit für die anderen Programme zuviel "weggeschnitten"?

Gruß fuzzy

Benutzeravatar
Meillo
Moderator
Beiträge: 9279
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: sed?

Beitrag von Meillo » 21.07.2008 14:36:13

dies ist vermutlich allgemein gültiger:

Code: Alles auswählen

echo "sys-apps/portage-2.1.4.4" | sed 's/\([-.]*[0-9]\)*$//'
Use ed once in a while!

fuzzy
Beiträge: 1021
Registriert: 04.10.2003 12:15:52

Re: sed?

Beitrag von fuzzy » 21.07.2008 20:41:11

...eigentlich müsste minimike jetzt etwas dazu sagen...

@Meilo
sys-libs/zlib-1.2.3-r1 wird bei deiner Variante zu -> sys-libs/zlib-1.2.3-r
Ich vermute das ist so nicht gewünscht, aber ohne einen Kommentar von minimike
ist es eh etwas Blindflug :wink: (Stichwort Glaskugel)

Gruß fuzzy

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Re: sed?

Beitrag von gms » 21.07.2008 22:38:44

Klarerweise soll das jetzt keine Kritik an den gut gemeinten Vorschlägen sein! Warum sollten sich auch Debianer mit den Gentoo Paketbezeichnungen auseinander setzen ?
Leider sind diese jedoch etwas komplizierter aufgebaut, da gibt es auch noch solche "Sonderfälle":

Code: Alles auswählen

gms1 # echo "media-fonts/font-adobe-100dpi-1.0.0-r1" | sed 's/-[0-9\.]*\(-r[0-9]*\)\?$//'
media-fonts/font-adobe-100dpi
@minimike
"qatom" wäre eigentlich dafür gedacht, kann aber leider nicht von Stdin lesen

Code: Alles auswählen

gms1 # qatom media-fonts/font-adobe-100dpi-1.0.0-r1 | awk '{print $1 "/" $2}'
media-fonts/font-adobe-100dpi
Gruß
gms

Benutzeravatar
Meillo
Moderator
Beiträge: 9279
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: sed?

Beitrag von Meillo » 21.07.2008 22:57:10

fuzzy hat geschrieben:@Meillo
sys-libs/zlib-1.2.3-r1 wird bei deiner Variante zu -> sys-libs/zlib-1.2.3-r
Ich vermute das ist so nicht gewünscht
stimmt
.... es ist wohl noch komplizierter :-(
Use ed once in a while!

fuzzy
Beiträge: 1021
Registriert: 04.10.2003 12:15:52

Re: sed?

Beitrag von fuzzy » 22.07.2008 00:10:14

@gms
Klasse Vorschläge!
... für den *100dpi-1.0.0-r1-Fall hätte ich zu lange knobeln müssen :wink:

Gruß fuzzy

Benutzeravatar
minimike
Beiträge: 5616
Registriert: 26.03.2003 02:21:19
Lizenz eigener Beiträge: neue BSD Lizenz
Wohnort: Köln
Kontaktdaten:

Re: sed?

Beitrag von minimike » 22.07.2008 01:12:22

Irgendwie nicht das was ich brauche ich will ja alle 1500 Pakete in einem Durchgang umschreiben. Das ist mittlerweile allerdings nicht mehr wichtig, trotzdem Interessant. Nach Studium (also ich bin dabei) der umfassenden Doku habe ich ein Tool gefunden das den Job zufriedenstellend löst. Also mit "restorerecon -rRv /path" geht einiges, sogar ein reload der Policy ohne gleich aus dem System geworfen zu werden. Gentoo ist ein tolles System weil sehr flexiebel. Für mich auf dem Desktop ideal. Allerdings habe ich für den produktiven Serverbetrieb einige Schwächen festgestellt und dort werde ich es niemals einsetzen. Mit einer Ausnahme meiner NSLU2 evtl weil ich dort mit angepasster Software die Resourcen besser nutzen kann.
"Lennart Poettering is one of those typical IT leaders..." "like Linus Torvalds and Theo de Raadt?" "more like Bozo the Clown" After all, now a good employee of Microsoft

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Re: sed?

Beitrag von gms » 22.07.2008 08:16:49

minimike hat geschrieben:Irgendwie nicht das was ich brauche ich will ja alle 1500 Pakete in einem Durchgang umschreiben.
und wo liegt da das Problem ?
gut, mit qatom ist es nicht ganz so einfach:

Code: Alles auswählen

gms2 ~ # while read pkg; do A=( $(qatom "$pkg") ); echo ${A[0]}/${A[1]}; done <pkgin.lst >pkgout.lst
aber mit sed ist das ja wirklich keine Hexerei mehr:

Code: Alles auswählen

gms2 ~ # sed 's/-[0-9\.]*\(-r[0-9]*\)\?$//' pkgin.lst >pkgout.lst

Antworten