List installed, top-level packages in Fedora
You can use the tool package-cleanup which is part of yum-utils. Besides finding packages which are not available from the current yum repositories, finding packages with broken dependencies, pruning old kernels and finding duplicate packages it can also find packages on which no other packages depend. Those are called leaves. Do
yum install yum-utils
to get package-cleanup and
package-cleanup --leaves --all
to get a list of all leaves.
You can use the command repoquery
(part of the package yum-utils
) to get this information:
$ repoquery --installed --qf '%{n} - %{yumdb_info.reason}' --all \
| grep 'user$' | cut -f1 -d' '
It only lists packages you have installed on your own - not those which are part of the base install. Depending on your use case this is what you want or not.