this is obsolete doc -- see http://doc.nethence.com/ instead

Redhat package management 

 

http://pbraun.nethence.com/doc/sysutils_linux/redhat.html 

http://pbraun.nethence.com/doc/sysutils_linux/redhat_packages.html 

http://pbraun.nethence.com/doc/sysutils_linux/logwatch.html 

http://pbraun.nethence.com/doc/sysutils/log_rotation.html 

 

 

Red Hat Network 

Note. you need to register some user to log into RHN 

 

On RHEL3,4 

rpm --import /usr/share/rhn/RPM-GPG-KEY
up2date-nox --register

Note. if using a proxy, add, 

  --proxy proxy.example.net:8080 \
  --proxyUser USERNAME \
  --proxyPassword PASSWORD

 

Later, you will then be able to synchronize your package profile by doing, 

up2date-nox -p

 

Update some packages, 

up2date-nox -u openssh httpd samba

 

Update everything (proceeds minor release update), 

up2date-nox -u

 

Other commands, 

up2date --nox --show-channels
up2date --nox --showall | grep ssh

Note. also, 

--show-orphans
--show-available

 

 

On RHEL5 

rhn_register --nox

Note. if using a proxy, add, 

--proxy=proxy.example.net:8080 \
--proxyUser=USERNAME \
--proxyPassword=PASSWORD

 

Later, you will then be able to synchronize your package profile by doing, 

rhn-profile-sync

 

Update some packages, 

yum update openssh httpd samba

 

Update everything (proceeds minor release update), 

yum update

 

 

32 vs 64 bit 

For 32 / 64bit compatibility on x86_64 machines, those packages might help, 

compat-arch-development
compat-arch-support
x86-compat-libs

 

You might want to add this macro to differentiate 32 and 64bit packages, 

echo "%_query_all_fmt %%{name}-%%{version}-%%{release}.%%{arch}" >> ~/.rpmmacros

 

 

RPM usage 

Install some package, 

rpm -ivh package.rpm

 

Delete some package, 

rpm -qa | grep -i package
rpm -e packagename

 

List some installed package's content, 

rpm -qa | grep -i package
rpm -ql packagename

 

Find out what package some files belongs to, 

rpm -qf /etc/passwd

 

Look for non Redhat packages, 

rpm -qa --qf '%{NAME} %{VENDOR}\n' | grep -v 'Red Hat, Inc.'

 

 

YUM usage 

Check, 

yum clean all
yum search screen

 

Look for a precise package, 

yum search PACKAGE | grep base

Note "base" being the repo name. 

 

Look for available package groups, 

cd /mnt/cdrom/repodata
grep '<id>' comps.xml

install a package group, 

yum groupinstall base-x

 

up2date usage 

Download some package, 

up2date --get packagename

 

Delete some package, 

up2date -d packagename

 

 

YUM configuration 

YUM / Exclude kernel 

Exclude kernel from updates, 

cd /etc
vi yum.conf

add, 

exclude=kernel*

 

YUM / Proxy 

cat >> /etc/yum.conf <<EOF9
proxy=http://proxy.example.net:8080
proxy_username=USERNAME
proxy_password=PASSWORD
EOF9

 

YUM against DVD/CDrom 

To easyly deal with dependencies on an isolated network, use your own (nfs,ftp,http) repository or simply your installation DVD (no updates), 

cd /mnt
mkdir -p cdrom
mount /dev/cdrom cdrom

 

Configure your repository, 

cd /etc/yum.repos.d
mv rhel-debuginfo.repo rhel-debuginfo.repo.dist
vi cdrom.repo

like, 

[cdrom]
name=cdrom
baseurl=file:///mnt/cdrom/Server
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5

 

Or, 

cd /etc/yum.repos.d
mv CentOS-Base.repo CentOS-Base.repo.dist
mv CentOS-Media.repo CentOS-Media.repo.dist
cat > rhel55.repo <<EOF9
[rhel55]
name=rhel55
baseurl=ftp://ftp.free.fr/mirrors/ftp.centos.org/5.5/os/i386
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5

 

[updates55]
name=updates55
baseurl=ftp://ftp.free.fr/mirrors/ftp.centos.org/5.5/updates/i386
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
EOF9

 

Self-made Redhat repositories 

Simple copy of the install media or online repository 

To create a repository from the installation CD by HTTP, 

rmdir /var/www/html
mkdir /mnt/cdrom
mount /dev/cdrom /mnt/cdrom
ln -s /mnt/cdrom /var/www/html
service httpd start

or by NFS, 

vi /etc/exports

in example, 

/mnt/cdrom  *(ro,no_root_squash)

then, 

service nfs start

 

Get the repo by rsync using a [local mirror](https://www.centos.org/download/mirrors/), 

cd /var/ftp/
rsync -avz rsync://centos.mirrors.ovh.net/ftp.centos.org/6.7/os/x86_64 CentOS6.7

 

No need to use 'createrepo', the repo is already recorded into the copied folder (repodata/). 

 

Customized repository 

To create your own repository, 

yum install createrepo
createrepo <repodir>

 

Replicating a Redhat repository with updates 

Quoting redhat, 

NOTE: Please change the --repoid=<REPO_ID> according to what repo id the system is currently using.

So you will need several boxes and send the files to one NFS share if you want several releases (or buy RH Sattelite)... 

 

For RHEL7, 

yum install yum-utils createrepo
yum repolist all | grep enabled
#subscription-manager repos --list
(copy/paste the repo id)

reposync --gpgcheck -l --repoid=rhel-7-server-rpms --download_path=/var/www 

ls -l rhel-7-server-rpms/

Ref. How to create a local mirror of the latest update for Red Hat Enterprise Linux 5, 6, 7 without using Satellite server?: https://access.redhat.com/solutions/23016 

 

RPM Repositories 

- CentOS RPMS : http://ftp.free.fr/mirrors/ftp.centos.org/ 

- RHEL SRPMS : ftp://ftp.redhat.com/ 

- EPEL RPMs : http://fedoraproject.org/wiki/EPEL 

- DAG RPMs : http://dag.wieers.com/rpm/packages/ 

- Pbone RPMs : http://rpm.pbone.net/ 

- Karanbir RPMs : http://centos.karan.org/ 

- Macromedia Flash Tips : http://macromedia.mplug.org/ 

 

 

RPM advanced maintainance 

Rebuild the RPM database, 

cd /var/lib/rpm
rm -f __db*
db_verify Packages
rpm -vv --rebuilddb
#up2date -p

Note. db_verify on rhel4 

 

 

Redhat upgrades 

Major release upgrade 

From e.g. RHEL4.4 to RHEL5, 

 

Configure the new GPG key, 

wget http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
rpm --import RPM-GPG-KEY-CentOS-5

 

Install the release RPMs, 

wget http://mirror.centos.org/centos/5/os/i386/CentOS/centos-release-5-0.0.el5.centos.2.i386.rpm
wget http://mirror.centos.org/centos/5/os/i386/CentOS/centos-release-notes-5.0.0-2.i386.rpm
rpm -Uvh centos-release-5-0.0.el5.centos.2.i386.rpm centos-release-notes-5.0.0-2.i386.rpm

 

Install the new kernel, 

wget http://mirror.centos.org/centos/5/os/i386/CentOS/initscripts-8.45.14.EL-1.el5.centos.1.i386.rpm
wget http://mirror.centos.org/centos/5/os/i386/CentOS/kernel-2.6.18-8.el5.i686.rpm
wget http://mirror.centos.org/centos/5/os/i386/CentOS/SysVinit-2.86-14.i386.rpm
rpm -Uvh --nodeps SysVinit-2.86-14.i386.rpm initscripts-8.45.14.EL-1.el5.centos.1.i386.rpm kernel-2.6.18-8.el5.i686.rpm

 

Configure /etc/yum.repos.d/* and upgrade, 

yum clean all
yum upgrade

 

Minor release upgrade 

From e.g. 5.1 to 5.2 just configure /etc/yum.repos.d/* and upgrade, 

yum cleanall
yum update

note. if you have SAN and are using third-parity tool which changed initrd, you might want to avoid changing the kernel, 

#yum --exclude=kernel update

check, 

cat /etc/redhat-release

 

 

YUM on RHEL3 

We will be using an old version of YUM, using headers (yum-arch) instead of repodata (createrepo). 

 

Install YUM, 

cd ~/
wget http://dag.wieers.com/rpm/packages/yum/yum-2.0.8-0.1.el3.rf.noarch.rpm
rpm -ivh yum-2.0.8-0.1.el3.rf.noarch.rpm

 

Prepare YUM, 

mkdir -p /var/cache/yum/base/packages  
cd /mnt/nfs
yum-arch -q RedHat
cd RedHat
cp headers/header.info /var/cache/yum/base
cp -R headers /var/cache/yum/base

 

Configure YUM, 

cd /etc
cp yum.conf yum.conf.dist
vi yum.conf

remove all repos and configure this one, 

[base]
name=base
baseurl=file:///mnt/nfs/RedHat
gpgcheck=0

 

Ready to go, 

yum clean all
yum search screen
yum install screen

 

 

References 

http://www.centos.org/docs/5/html/yum/sn-yum-maintenance.html 

http://wiki.centos.org/AdditionalResources/Repositories?action=show&redirect=Repositories 

http://kbase.redhat.com/faq/docs/DOC-9733 

YUM: Setup and Usage : http://sial.org/howto/yum/ 

yum RPM packages for Red Hat, CentOS and Fedora : http://dag.wieers.com/rpm/packages/yum/ 

http://kbase.redhat.com/faq/docs/DOC-6904