======Package Management====== Is controlling software (Packages) in a Linux environment. ---- **RPM / YUM / DNF** present on: *Redhat *CentOS *Fedora *Suse **apt-get / dpkg** present on: *Debian *Ubuntu *Mint ===== RPM Package Management===== Redhat Package Manager -- now recursive -- RPM Package Manager -- after being adopted by multiple distros. Package file naming conventions (NOT A REQUIREMENT): * //packagename-a.b.c-x.arch.rpm// * **Package Name** - name of package, like.. samba * **Version Number** - (a.b.c) this is the package version number like 3.6.5 -- the programmer assigns this number. * **Build Number** - number following version number (x) represents minor changes (patches, tweaks) made by package container. * **Architecture** - Defines the architecture the package was made to run on. i386 is common. there are further archs like: i586, i686, x86_64, PPC, noarch(scripts) Operators: * **-i** -- Install * **-U** -- Upgrade if already installed * **-q** -- Query, get info about packages =====DEB Based Package Management===== ---- uses apt-get / dpkg ====apt==== Config file located in ///etc/apt///sources.list important. sources.list.d folder contains official repos. *apt-get update -- updates repo list. DOES NOT UPGRADE. ===apt-cache=== ***search** //thing// -- searches packages on local package cache for //thing// to download from server. ***stats** -- shows stats based on the metadata downloaded about our repos. ***depends** apache2 -- shows dependencies for the apache2 package. ***unmet** -- shows pkgs that have unmet depends. *apt-get install //apache2// - install apache2 + deps from repos. *apt-get upgrade -- upgrades out of date packages. *apt-get clean -- cleans up local pkg files, temp files, etc. *apt-get autoclean -- only cleans out packages that are no longer avail in our source repo. These can no longer be downloaded and are largely useless files. *apt-get install -s php5 -- -s says simulate install php5. useful! *apt-get install -y php5 -- will auto input YES on prompts. *apt-get install -y -q php5 -- -q omits some terminal output. *apt-get source php5 -- this will download the source files php5 and not the PACKAGE php5. * **apt-get dist-upgrade** -- RTFM, performs upgrade but also handles changing of dependencies of new versions of a package. As a result, some packages may be removed. ===== DEB ===== ====apt-get==== You can edit sources in /etc/apt/sources.list deb http://http.debian.net/debian wheezy main deb-src http://http.debian.net/debian wheezy main deb http://security.debian.org/ wheezy/updates main deb-src http://security.debian.org/ wheezy/updates main deb entries specify debian PACKAGES where as deb-src specifies SOURCE PACKAGES, upon which to compile a package/program. Useful commands: *apt-get update =====CENTOS===== *Uses yum/rpm. *Repos listed in **/etc/yum.repos.d/** ====rpm==== *-ivh //packagefile// - Installs //packagefile// with a series of hashes as indicators. *-uvh - Same as -ive but upgrades a a package if already installed? *-q //pkgname// - Queries to see if //packagename// is installed. *-e //pkgname// - remove //pkgname// from system. ====yum==== *yum makecache fast - updates local cache of repo contents. Similar to Pacman -Syy *yum search //name// - searches repos for pkgs named //name// *yum install //httpd// - installs //httpd// and deps from repos. *yum update -- updates all packages on system.