Hello, On Mon, 22 Jul 2019, jdd@dodin.org wrote:
is there a way to recover from the 15.0 a list of *main applications* (without libraries and dependencies) I could apply to the new 15.1?
A chould be this: $ LC_ALL=C rpm -qf /usr/bin/* --qf '%{name}\t%{distribution}\n' | \ grep -v 'is not owned by any package' | sort -u > t.lst You might need to rework that list to replace the "distribution" by the name you locally use in your repos.d/*.conf (see zypper lr) and of course replace the repo-versions... Should be rather straightforward though, e.g.: $ awk -F'\t' -vOFS="\t" 'gsub("15.0","15.1",$2);' t.lst | tee t2.lst to replace specific reponames, just add them to the awk: $ awk -F'\t' -vOFS="\t" ' { gsub("15.0","15.1",$2); } $2 ~ /foo/ { $2 = "bar 15.1"; } $2 == "foo / openSUSE_15.1" { # note[1] $2 = "bar 15.1"; } ' t.lst | tee t2.lst [1] the 15.0 has been replaced before by the "gsub" on every line... You could even write a file for each repo to use[2] and then feed those files to # zypper --from $repo $(< ${repo}.lst ) [2] either directly from awk or filtering its output file as in awk -F'\t' '$2 == "foo" { print; }' t2.lst > foo.lst etc. Actually, that might be all you need: filter the rpm output t.lst in that way and write only the package-names to the $repo.lst: $ awk -F'\t' '$2 == "foo" { print $1; }' t.lst > foo.lst $ awk -F'\t' '$2 == "bar" { print $1; }' t.lst > bar.lst [.. work over the list and prune unwanted stuff ..] # zypper --from foo $(< foo.lst ) # zypper --from baz $(< bar.lst ) HTH, -dnh -- "You're one hundred percent positive that the ship which is crashed on the bottom of this ocean is the ship which you said you were one hundred percent positive could one hundred percent positively never crash? " -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse+owner@opensuse.org