View previous topic :: View next topic |
Author |
Message |
honeymak Guru
Joined: 30 Dec 2002 Posts: 571
|
Posted: Mon Aug 05, 2024 12:53 am Post subject: [solved] emerge world -Du <= how to return pkg atom only |
|
|
Code: |
These are the packages that would be merged, in order:
Calculating dependencies .. .... ... done!
Dependency resolution took 54.66 s (backtrack: 0/20).
[ebuild U ] dev-python/ensurepip-setuptools-71.0.4::gentoo [70.3.0::gentoo] 2287 KiB
[ebuild U ] dev-lang/rust-bin-1.79.0:stable::gentoo [1.77.1:stable::gentoo] USE="rustfmt (-big-endian) -clippy -doc (-prefix) -profiler -rust-analyzer -rust-src -verify-sig" ABI_X86="(64) -32 (-x32)" CPU_FLAGS_X86="sse2" 161148 KiB
[ebuild U ] virtual/rust-1.79.0:0/llvm-18::gentoo [1.77.1:0/llvm-17::gentoo] USE="rustfmt -profiler" ABI_X86="(64) -32 (-x32)" 0 KiB
[ebuild U ] dev-lang/yasm-1.3.0-r2::gentoo [1.3.0-r1::gentoo] USE="nls" 0 KiB
[ebuild U ] dev-python/jaraco-text-3.14.0::gentoo [3.12.1::gentoo] USE="-test" PYTHON_TARGETS="python3_12 (-pypy3) -python3_10 -python3_11 (-python3_13)" 17 KiB
[ebuild U ] dev-lang/nasm-2.16.03::gentoo [2.16.01-r1::gentoo] USE="-doc" 1009 KiB
[ebuild U ] dev-libs/libinput-1.26.1:0/10::gentoo [1.25.0:0/10::gentoo] USE="-doc -test" INPUT_DEVICES="-wacom" 805 KiB
[ebuild U ] dev-python/setuptools-71.0.4::gentoo [70.3.0::gentoo] USE="-test" PYTHON_TARGETS="python3_12 (-pypy3) -python3_10 -python3_11 (-python3_13)" 2366 KiB
[ebuild U ] dev-lang/spidermonkey-115.13.0:115::gentoo [115.10.0:115::gentoo] USE="jit -clang -debug -lto -test" 498605 KiB
[ebuild U ] dev-libs/elfutils-0.191-r1::gentoo [0.190::gentoo] USE="bzip2 nls utils -debuginfod -lzma -static-libs -test -verify-sig -zstd" ABI_X86="(64) -32 (-x32)" 9092 KiB
[ebuild U ] media-libs/raptor-2.0.16:2::gentoo [2.0.15-r8:2::gentoo] USE="-debug -json -static-libs (-curl%*)" ABI_X86="(64) -32 (-x32)" 1710 KiB
[ebuild U ] x11-libs/libdrm-2.4.122::gentoo [2.4.121::gentoo] USE="udev -test -tools -valgrind" ABI_X86="(64) -32 (-x32)" VIDEO_CARDS="amdgpu intel nouveau radeon vmware (-exynos) (-freedreno) (-omap) (-tegra) (-vc4) (-vivante)" 470 KiB
[ebuild U ] net-wireless/bluez-5.77:0/3::gentoo [5.76-r1:0/3::gentoo] USE="cups mesh obex readline udev -btpclient -debug -deprecated -doc -experimental -extra-tools -midi (-selinux) -systemd -test -test-programs" ABI_X86="(64) -32 (-x32)" PYTHON_SINGLE_TARGET="python3_12 -python3_10 -python3_11 (-python3_13)" 2376 KiB
[ebuild U ] app-editors/vscode-1.92.0::gentoo [1.91.1::gentoo] USE="egl wayland -kerberos" 141328 KiB
Total: 14 packages (14 upgrades), Size of downloads: 821207 KiB
|
normal emerge world -Du return this output
how to get the pkg atom only in the output?
or any other equivalent portage cmd can output updates with pkg atom or some sort of format text only?
_________________ hackers - make sth real
academics - read sth said to be real
Last edited by honeymak on Wed Aug 07, 2024 7:52 am; edited 2 times in total |
|
Back to top |
|
|
bstaletic Guru
Joined: 05 Apr 2014 Posts: 363
|
Posted: Mon Aug 05, 2024 1:55 am Post subject: |
|
|
Maybe something like this Code: | emerge -puDq @world | awk '{print $NF}' |
|
|
Back to top |
|
|
honeymak Guru
Joined: 30 Dec 2002 Posts: 571
|
Posted: Mon Aug 05, 2024 2:00 am Post subject: |
|
|
that's not pkg atom
_________________ hackers - make sth real
academics - read sth said to be real |
|
Back to top |
|
|
bstaletic Guru
Joined: 05 Apr 2014 Posts: 363
|
Posted: Mon Aug 05, 2024 2:12 am Post subject: |
|
|
You're right. Does this work for you? Code: | emerge -puDq @world | sed 's/.*\] //;s/ \[.*\]$//' |
|
|
Back to top |
|
|
honeymak Guru
Joined: 30 Dec 2002 Posts: 571
|
Posted: Mon Aug 05, 2024 2:16 am Post subject: |
|
|
that's not pkg atom either
_________________ hackers - make sth real
academics - read sth said to be real |
|
Back to top |
|
|
spikyatlinux n00b
Joined: 18 Sep 2010 Posts: 38
|
Posted: Mon Aug 05, 2024 7:24 am Post subject: |
|
|
Perhaps try
Code: | emerge -Du @world | grep '\[ebuild' | awk '{print $4}' | should output cat/pkg-version, or Code: | emerge -Du @world | grep '\[ebuild' | awk '{print $4}' | sed 's/-[0-9].*//' | same without version
Regards |
|
Back to top |
|
|
honeymak Guru
Joined: 30 Dec 2002 Posts: 571
|
Posted: Mon Aug 05, 2024 8:04 am Post subject: |
|
|
pls read what pkg atom is
and sometimes it's alphanumeric
so your answer is simply wrong
_________________ hackers - make sth real
academics - read sth said to be real |
|
Back to top |
|
|
pjp Administrator
Joined: 16 Apr 2002 Posts: 20484
|
Posted: Mon Aug 05, 2024 3:39 pm Post subject: |
|
|
For simplicity, this includes version, slot, and repo. Code: | $ awk '/ebuild/ {print $4}' data.tmp
dev-python/ensurepip-setuptools-71.0.4::gentoo
dev-lang/rust-bin-1.79.0:stable::gentoo
virtual/rust-1.79.0:0/llvm-18::gentoo
dev-lang/yasm-1.3.0-r2::gentoo
dev-python/jaraco-text-3.14.0::gentoo
dev-lang/nasm-2.16.03::gentoo
dev-libs/libinput-1.26.1:0/10::gentoo
dev-python/setuptools-71.0.4::gentoo
dev-lang/spidermonkey-115.13.0:115::gentoo
dev-libs/elfutils-0.191-r1::gentoo
media-libs/raptor-2.0.16:2::gentoo
x11-libs/libdrm-2.4.122::gentoo
net-wireless/bluez-5.77:0/3::gentoo
app-editors/vscode-1.92.0::gentoo | I'm not sure why that works because there are certainly more than 4 spaces before the atom begins. I'd also expect it to change depending on the number of "flags" within the [ebuild ...] sections. I guess it sees each group of spaces as 1. But that isn't reliable given the potential output from emerge.
This seems likely to be more reliable: Code: | $ awk '/ebuild/ { s=substr($0, 18); e=match(s, " "); print substr(s, 0, e) }' data.tmp
dev-python/ensurepip-setuptools-71.0.4::gentoo
dev-lang/rust-bin-1.79.0:stable::gentoo
virtual/rust-1.79.0:0/llvm-18::gentoo
dev-lang/yasm-1.3.0-r2::gentoo
dev-python/jaraco-text-3.14.0::gentoo
dev-lang/nasm-2.16.03::gentoo
dev-libs/libinput-1.26.1:0/10::gentoo
dev-python/setuptools-71.0.4::gentoo
dev-lang/spidermonkey-115.13.0:115::gentoo
dev-libs/elfutils-0.191-r1::gentoo
media-libs/raptor-2.0.16:2::gentoo
x11-libs/libdrm-2.4.122::gentoo
net-wireless/bluez-5.77:0/3::gentoo
app-editors/vscode-1.92.0::gentoo |
EDIT: This drops the slot and repo from the output. Code: | awk '/ebuild/ { s=substr($0, 18); e=match(s, ":")-1; print substr(s, 0, e) }' |
_________________ Quis separabit? Quo animo? |
|
Back to top |
|
|
Genone Retired Dev
Joined: 14 Mar 2003 Posts: 9608 Location: beyond the rim
|
Posted: Mon Aug 05, 2024 5:30 pm Post subject: |
|
|
honeymak wrote: | pls read what pkg atom is |
Well, you can create many very different atoms for any given CPV entry (which is what emerge output contains). Maybe be a bit more specific what you're looking for (generic like cat/pkg, or very specific like =cat/pkg-ver:slot/subslot::repo[conditions] ). |
|
Back to top |
|
|
spikyatlinux n00b
Joined: 18 Sep 2010 Posts: 38
|
Posted: Mon Aug 05, 2024 6:07 pm Post subject: |
|
|
honeymak wrote: | pls read what pkg atom is
and sometimes it's alphanumeric
so your answer is simply wrong
|
manpage says Code: | Atom Bases
The base atom is just a full category/packagename. Another name for a full category/packagename is a "catpkg". You will find this shorthand-name used frequently in Gentoo. Here are some base atoms, a.k.a "catpkgs":
net-misc/dhcp
sys-apps/sed
sys-libs/zlib
Atom Versions
It is nice to be more specific and say that only certain versions of atoms are acceptable. Note that versions must be combined with a prefix (see below). Hence you may add a version number as a postfix to the base.
Examples:
sys-apps/sed-4.0.5
sys-libs/zlib-1.1.4-r1
net-misc/dhcp-3.0_p2
Versions are normally made up of two or three numbers separated by periods, such as 1.2 or 4.5.2. This string may be followed by a character such as 1.2a or 4.5.2z. Note that this letter is not meant to indicate alpha,
beta, etc... status. For that, use the optional suffix; either _alpha, _beta, _pre (pre-release), _rc (release candidate), or _p (patch). This means for the 3rd pre-release of a package, you would use something like
1.2_pre3. The suffixes here can be arbitrarily chained without limitation.
Atom Prefix Operators [> >= = <= <]
Sometimes you want to be able to depend on general versions rather than specifying exact versions all the time. Hence we provide standard boolean operators:
Examples:
>media-libs/libgd-1.6
>=media-libs/libgd-1.6
=media-libs/libgd-1.6
<=media-libs/libgd-1.6
<media-libs/libgd-1.6
Extended Atom Prefixes [!~] and Postfixes [*]
Now to get even fancier, we provide the ability to define blocking packages and version range matching. Also note that these extended prefixes/postfixes may be combined in any way with the atom classes defined above.
~ means match any revision of the base version specified. So in the example below, we would match versions ’1.0.2a’, ’1.0.2a-r1’, ’1.0.2a-r2’, etc...
Example:
~net-libs/libnet-1.0.2a
! means block packages from being installed at the same time.
Example:
!app-text/dos2unix
!! means block packages from being installed at the same time and explicitly disallow them from being temporarily installed simultaneously during a series of upgrades. This syntax is supported beginning with EAPI 2.
Example:
!!<sys-apps/portage-2.1.4_rc1
* means match any version of the package so long as the specified base is matched. So with a version of ’2*’, we can match ’2.1’, ’2.2’, ’2.2.1’, etc... and not match version ’1.0’, ’3.0’, ’4.1’, etc... The version part that comes before the ’*’ must be a valid version in the absence of the ’*’. For example, ’2’ is a valid version and ’2.’ is not. Therefore, ’2*’ is allowed and ’2.*’ is not.
Examples:
=dev-libs/glib-2*
!=net-fs/samba-2*
Atom Slots
Beginning with EAPI 1, any atom can be constrained to match a specific SLOT. This is accomplished by appending a colon followed by a SLOT:
Examples:
x11-libs/qt:3
~x11-libs/qt-3.3.8:3
>=x11-libs/qt-3.3.8:3
=x11-libs/qt-3.3*:3 | and so on so please describe what you need exactly, perhaps with an example |
|
Back to top |
|
|
Zucca Moderator
Joined: 14 Jun 2007 Posts: 3688 Location: Rasi, Finland
|
Posted: Mon Aug 05, 2024 9:17 pm Post subject: |
|
|
Code: | awk -v 'FS=[\\]\\[]' '($3 != "") {print $3}' |
_________________ ..: Zucca :..
My gentoo installs: | init=/sbin/openrc-init
-systemd -logind -elogind seatd |
Quote: | I am NaN! I am a man! |
|
|
Back to top |
|
|
honeymak Guru
Joined: 30 Dec 2002 Posts: 571
|
Posted: Mon Aug 05, 2024 10:53 pm Post subject: |
|
|
anyway
that means emerge does not return pkg atom easily
_________________ hackers - make sth real
academics - read sth said to be real |
|
Back to top |
|
|
kimchi_sg Advocate
Joined: 26 Nov 2004 Posts: 3038
|
Posted: Mon Aug 05, 2024 11:36 pm Post subject: |
|
|
honeymak wrote: | anyway
that means emerge does not return pkg atom easily
|
|
|
Back to top |
|
|
Hu Administrator
Joined: 06 Mar 2007 Posts: 22624
|
Posted: Mon Aug 05, 2024 11:59 pm Post subject: |
|
|
You were asked above what you are trying to achieve. I suggest you answer that. You seem to have a very particular set of requirements for what you think constitutes a valid answer, and explaining why you want this at all may help us satisfy your requirements. |
|
Back to top |
|
|
honeymak Guru
Joined: 30 Dec 2002 Posts: 571
|
Posted: Tue Aug 06, 2024 12:05 am Post subject: |
|
|
nope
this is not what i wanted either
_________________ hackers - make sth real
academics - read sth said to be real |
|
Back to top |
|
|
Hu Administrator
Joined: 06 Mar 2007 Posts: 22624
|
Posted: Tue Aug 06, 2024 12:37 am Post subject: |
|
|
You want us to keep guessing blindly until we find the specific package format you want? |
|
Back to top |
|
|
honeymak Guru
Joined: 30 Dec 2002 Posts: 571
|
Posted: Tue Aug 06, 2024 12:50 am Post subject: |
|
|
ooooops.......that means no solution to me already
so just keep it that way
just close this thread _________________ hackers - make sth real
academics - read sth said to be real |
|
Back to top |
|
|
pjp Administrator
Joined: 16 Apr 2002 Posts: 20484
|
Posted: Tue Aug 06, 2024 3:25 am Post subject: |
|
|
Guess what I want because I won't tell you.
You can edit the topic and add something to the title to indicate that it is closed or whatever you like. _________________ Quis separabit? Quo animo? |
|
Back to top |
|
|
Zucca Moderator
Joined: 14 Jun 2007 Posts: 3688 Location: Rasi, Finland
|
Posted: Tue Aug 06, 2024 5:51 pm Post subject: |
|
|
Darn. Topic kinda ended already. :(
However since I'm in the mood, I improved my earlier awk command - it now prints ==> <newversion> at the end if the package in question is going to be up- or downgraded: Code: | awk -v 'FS=[\\]\\[]' '($3 != "") {printf substr($3,2,length($3)-1); if ($4 != "") print " ==> " $4; else print ""}' | Probably fails if used with --verbose or --quiet. _________________ ..: Zucca :..
My gentoo installs: | init=/sbin/openrc-init
-systemd -logind -elogind seatd |
Quote: | I am NaN! I am a man! |
|
|
Back to top |
|
|
Genone Retired Dev
Joined: 14 Mar 2003 Posts: 9608 Location: beyond the rim
|
Posted: Tue Aug 06, 2024 8:35 pm Post subject: |
|
|
honeymak wrote: | anyway
that means emerge does not return pkg atom easily |
When you don't specify which type of atom you're looking for (or for what purpose), then of course not. |
|
Back to top |
|
|
honeymak Guru
Joined: 30 Dec 2002 Posts: 571
|
Posted: Tue Aug 06, 2024 11:47 pm Post subject: |
|
|
for example,
this is a pkg atom
but when you check this atom, most of the time it has 2 pkgs installed/returned as a result to you
while other pkg atom cases return with some alphanumeric pattern and some return more than one version installed (maybe slot or maybe not)
_________________ hackers - make sth real
academics - read sth said to be real |
|
Back to top |
|
|
CaptainBlood Advocate
Joined: 24 Jan 2010 Posts: 3848
|
Posted: Wed Aug 07, 2024 6:04 am Post subject: |
|
|
Imho, processing output with qatom command from app-portage/portage-utils should do the trick. Code: | The following fields are supported, which are inline with the
variables from ebuild(5).
CATEGORY
The category of the package.
P The package name and version without the ebuild revision.
PN The package name.
PV The package version without the ebuild revision.
PVR The package version including ebuild revision, which is
also printed when zero, unlike for PF.
PF The package name, version and revision when not zero.
Thus, a zero revision -r0 is not printed.
PR The ebuild revision, when force printed, outputs -r0 when
unset.
SLOT The package slot, when force printed, outputs - when un‐
set.
REPO The package repository.
pfx The package prefixes, that is version specifiers.
sfx The package suffices, currently that is just the asterisk. | Thks 4 ur attention, interest & support. _________________ USE="-* ..." in /etc/portage/make.conf here, i.e. a countermeasure to portage implicit braces, belt & diaper paradigm
LT: "I've been doing a passable imitation of the Fontana di Trevi, except my medium is mucus. Sooo much mucus. " |
|
Back to top |
|
|
honeymak Guru
Joined: 30 Dec 2002 Posts: 571
|
Posted: Wed Aug 07, 2024 6:11 am Post subject: |
|
|
then how to use qatom with the output of emerge world -Dupv?
_________________ hackers - make sth real
academics - read sth said to be real |
|
Back to top |
|
|
CaptainBlood Advocate
Joined: 24 Jan 2010 Posts: 3848
|
Posted: Wed Aug 07, 2024 6:48 am Post subject: |
|
|
Template to get on the right track: Code: | emerge -Dup @world 2>/dev/null|grep '\[ebuild'|awk '{print $4}'|while read line;do qatom -F '%{CATEGORY} %{PN}' $line;done | EDIT: one pipe less; Code: | emerge -Dup @world 2>/dev/null|awk '/\[ebuild/{print $4}'|while read line;do qatom -F '%{CATEGORY} %{PN}' $line;done | EDIT2: even simpler; Code: | emerge -Dup @world 2>/dev/null|awk '/\[ebuild/{print $4}'|xargs qatom -F '%{CATEGORY} %{PN}' | Can't say more with what seems specified as a requirement.
Thks 4 ur attention, interest & support. _________________ USE="-* ..." in /etc/portage/make.conf here, i.e. a countermeasure to portage implicit braces, belt & diaper paradigm
LT: "I've been doing a passable imitation of the Fontana di Trevi, except my medium is mucus. Sooo much mucus. " |
|
Back to top |
|
|
Zucca Moderator
Joined: 14 Jun 2007 Posts: 3688 Location: Rasi, Finland
|
Posted: Wed Aug 07, 2024 7:43 am Post subject: |
|
|
honeymak wrote: | for example,
|
Code: | emerge -pDu | awk -v 'FS=[\\]\\[]' '($3 != "") {print $3}' | xargs qatom --format '%{CATEGORY}/%{PN}' | Does this work for you? _________________ ..: Zucca :..
My gentoo installs: | init=/sbin/openrc-init
-systemd -logind -elogind seatd |
Quote: | I am NaN! I am a man! |
|
|
Back to top |
|
|
|