Cosa succede di meno con rpm e come posso ottenere quel testo senza rpm


12

Quando eseguo less package.rpm, less mi mostra tutti i tipi di meta-informazioni sul pacchetto. Che cosa sta facendo di meno esattamente - ha un codice incorporato per essere in grado di estrarre meta info o un rpm è strutturato in modo tale che la prima parte assomigli ad un file di testo?

Suppongo che il primo, dal momento che headnon è così utile qui. Ma per arrivare alla vera domanda: se grepattraverso questi metadati mi piacerebbe mostrarmi meno, come posso farlo?

Risposte:


23

Se navighi nella lesspagina man, noterai che lessha una funzione INPUT PREPROCESSOR.

echo $LESSOPENper visualizzare la posizione di questo preprocessore e utilizzare less/ vim/ catper visualizzarne il contenuto.

Sul mio computer questo preprocessore è /usr/bin/lesspipe.she include quanto segue per rpms:

*.rpm) rpm -qpivl --changelog -- "$1"; handle_exit_status $?

In effetti, lesstieni le mani aperte aprendo il file rpme ti mostra l'impaginazione del suo output.

Ovviamente, per visualizzare queste informazioni, basta semplicemente visualizzare direttamente l'output di rpm:

grep "foo" < <(rpm -qpivl --changelog -- bar.rpm)

O in generale (grazie OrangeDog)

grep "foo" < <(lesspipe.sh bar.rpm)

Nota: $LESSOPEN non mantiene semplicemente la posizione di lesspipe.sh- inizia con una |e termina con una %scosì invocazione diretta comporterebbe errori.


1
Perché no grep "foo" < <($LESSOPEN bar.rpm)? O forse anche solo $LESSOPEN bar.rpm | grep "foo".
jpmc26,

4

Se mi piacerebbe passare in rassegna questi metadati meno mostrandomi, come posso farlo?

molto semplicemente; se vuoi grep su "Versione" per esempio:

less your.rpm | grep "Version"

Nota che meno sta usando il rpmcomando; quindi meglio saltare usando meno; e usa i rpmcomandi; piace:

rpm -qip /path/to/uninstalled/rpm
rpm -qi installed.rpm
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.