I found that there's several ways to install packages in fedora, using pip,  yum or dnf. is there more? what is the difference between them? 
difference between yum, dnf and pip
fedora;package management
pip is a python package manager.  It will only install python modules/packages.yum is the old Fedora/RedHat installation tool that installs RPMs and does dependency resolution for you.dnf is a new replacement for yumAs for others, if you're counting pip then sure, there's also perl's CPAN stuff, gems for ruby, npm for JavaScript.  Surely many many others.