Unless you employ options such as --nodeps, rpm normally won't allow you to
install or remove packages that break dependencies. For example, you can't
install Xsnow without first having the X libraries on your system. Once you
have Xsnow installed, you can't remove the X libraries without removing Xsnow
first (and probably half of your installed packages).
This is a strength of rpm, even if it's frustrating sometimes. It means that
when you install an rpm, it should just work. You shouldn't need to
do much extra work, since rpm has already verified that the dependencies exist
on the system.
Sometimes when you're working on resolving dependencies, it can be useful to
query a package with the -R option to learn about everything it expects to be
on the system. For example, the Xsnow package depends on the C library, the
math library, the X libraries, and specific versions of rpm:
# rpm -qpR xsnow-1.41-1.i386.rpm
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
ld-linux.so.2
libX11.so.6
libXext.so.6
libXpm.so.4
libc.so.6
libm.so.6
libc.so.6(GLIBC_2.0)
libc.so.6(GLIBC_2.1.3)
rpmlib(CompressedFileNames) <= 3.0.4-1
You can also query the installed database for the same information by omitting
the -p:
# rpm -qR xsnow