RHEL packetmanager - redhat

I am working for some years with debian on engineering/administration level and using apt as packetmanager.
Now I have to work with a RHEL and I need some quick overview of how to handle packetmanagement there. I know the rpm-tool but not very well.
I am looking especially for this:
- how can I link my local PM to a paket-repository in the internet or on CD
- is rpm just for single files (like dpkg) or also for managin (like apt-get: searching etc)
so apt on debian is very cool. is there something comparable in RHEL too??
cheers, chris

is rpm just for single files (like dpkg) or also for managin (like apt-get: searching etc)
Not quite. Rpm is for Redhat what dpkg is for Debian. The Redhat equivalent of apt-tools/aptitute is yum.
I am looking especially for this: - how can I link my local PM to a paket-repository in the internet or on CD
Redhat puts repositories in files, rather then a single sources.list file. You find those repo-definitions in /etc/yum.repos.d/. So see what repositories are available, you use the command yum repolist. For instance, this Scientific Linux system of mine it gives the following output:
# yum repolist
repo id repo name status
epel Extra Packages for Enterprise Linux 6 - x86_64 6.416
sl Scientific Linux 6.1 - x86_64 6.251
sl-security Scientific Linux 6.1 - x86_64 - security updates 336
repolist: 13.003
If you want to add a repository, you either try getting a predefined file (hint: almost any 3rd party repository gives you an rpm which does everything automatically) or write your own repository defintion. Put it in a file called reponame.repo in /etc/yum.repos.d/. This is an example from the EPEL project:
[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
$basearch resolves to uname -m, so to x86_64 or i686. If you set everything up correctly (mandatory settings are name, baseurl and enabled=1), run yum update and check with yum repolist if your repository was correctly included.
Usually you'll only use yum; rpm alone is rarely used. If you're used to aptitude, yum won't be much of a challenge for you for the commands like update/upgrade/clean/erase are pretty much the same.
The yum documentation can be found on Fedora's webpage: http://docs.fedoraproject.org/en-US/Fedora/14/html/Software_Management_Guide/index.html
Good luck!
Alex.

Ubuntu "dkpg" -> RHEL -> "rpm"
Ubuntu "apt-get install **" RHEL -> "yum install **"
There are various unofficial available for RHEL and if you are subscribed to RHN then you get the packages directly from Red Hat Network.
Configuration files in /etc/yum.repos.d/

Related

Can't install powertools on RHEL 8.5

I'm new to Linux and I'm trying to setup my RHEL 8.5 VM machine.
NAME="Red Hat Enterprise Linux
VERSION="8.5 (Ootpa)
I'm trying to install some scripts for course, and it is giving an error that PowerTools can't be found
No matching repo to modify: powertools.
I have tried several solution in other posts as follows:
# dnf -y install dnf-plugins-core
# dnf upgrade
# dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
# dnf config-manager --set-enabled powertools
The first three commands execute and my system is updated but the last command is still having same error:
Updating Subscription Management repositories.
Error: No matching repo to modify: powertools.
When I try to get repolist, it is not showing powertools
# dnf repolist
Updating Subscription Management repositories.
repo id repo name
BaseOS BaseOS
appstream appstream
codeready-builder-for-rhel-8-x86_64-rpms Red Hat CodeReady Linux Builder for RHEL 8 x86_64 (RPMs)
epel Extra Packages for Enterprise Linux 8 - x86_64
epel-modular Extra Packages for Enterprise Linux Modular 8 - x86_64
rhel-8-for-x86_64-appstream-rpms Red Hat Enterprise Linux 8 for x86_64 - AppStream (RPMs)
rhel-8-for-x86_64-baseos-rpms Red Hat Enterprise Linux 8 for x86_64 - BaseOS (RPMs)
I hope someone can help.
Thanks.
There are no exactly "powertools" in RHEL. That's a CentOS alternative name to the trademarked "CodeReady Builder" repo from RHEL.
In RHEL, you enable it like so:
sudo subscription-manager repos --enable codeready-builder-for-rhel-8-x86_64-rpms
If codeready-builder-for-rhel-8-x86_64-rpms already shows up in "yum repolist", consider that you have "powertools" already enabled, no action is needed.

Limit Yum Repo to Specific package names

I am familiar with creating my own hosted yum repository on a Linux host as well as mirroring public yum repositories. What I am looking for is a solution (paid or free) that will allow me to essentially proxy the Vendor Repo (so packages can remain current) but I would only like to allow specific packages and their dependencies. For example, the repo will allow httpd but also allow users to pull bash, mailcap, shadow-utils, httpd-tools, apr, apr-util, glibc, libdb, expat, lua, pcre, libselinux, systemd-libs, zlib, systems.
Any information would be very useful. I tried limiting via the "/etc/yum.conf" file however it still has the limitation that I know all of the dependencies.
You can exclude specific packages from yum install, example:
# yum install gcc
Dependencies resolved.
===============================================================================================================
Package Architecture Version Repository Size
===============================================================================================================
Installing:
gcc x86_64 8.4.1-1.el8 appstream 23 M
Installing dependencies:
glibc-devel x86_64 2.28-151.el8
if your /etc/yum.conf forbids installation:
[main]
...
exclude=glibc-devel <--- forbid installation
installation fails (proving that glibc-devel was not installed)
$ sudo yum install gcc | grep error
Problem: package gcc-8.4.1-1.el8.x86_64 requires glibc-devel >= 2.2.90-12, but none of the providers can be installed

Couldn't open file /packages/repodata/repomd.xml

I am using Redhat Linux server and trying to install the MongoDB on it.
I am following steps given in the link: https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat/
Step 1: Create a /etc/yum.repos.d/mongodb-org-4.0.repo file so that you can install MongoDB directly, using yum.
sudo nano /etc/yum.repos.d/mongodb-org-4.0.repo
Step 2: Copy and paste below code in the newly created file.
[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
Step 3: To install a specific release of MongoDB, specify each component package individually and append the version number to the package name, as in the following example:
sudo yum install -y mongodb-org
After all this I am getting an error given below:
Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
file:///packages/repodata/repomd.xml: [Errno 14] curl#37 - "Couldn't open file /packages/repodata/repomd.xml"
Trying other mirror.`
One of the configured repositories failed (local),
and yum doesn't have enough cached data to continue. At this point the only
safe thing yum can do is fail. There are a few ways to work "fix" this:`
1. Contact the upstream for the repository and get them to fix the problem.
2. Reconfigure the baseurl/etc. for the repository, to point to a working
upstream. This is most often useful if you are using a newer
distribution release than is supported by the repository (and the
packages for the previous distribution release still work).
3. Run the command with the repository temporarily disabled
yum --disablerepo=localrepo ...
4. Disable the repository permanently, so yum won't use it by default. Yum
will then just ignore the repository until you permanently enable it
again or use --enablerepo for temporary usage:
yum-config-manager --disable localrepo
or
subscription-manager repos --disable=localrepo
5. Configure the failing repository to be skipped, if it is unavailable.
Note that yum will try to contact the repo. when it runs most commands,
so will have to try and fail each time (and thus. yum will be be much
slower). If it is a very temporary problem though, this is often a nice
compromise:
yum-config-manager --save --setopt=localrepo.skip_if_unavailable=true
failure: repodata/repomd.xml from localrepo: [Errno 256] No more mirrors to try.
file:///packages/repodata/repomd.xml: [Errno 14] curl#37 - "Couldn't open file /packages/repodata/repomd.xml"
Server OS
NAME="Red Hat Enterprise Linux Server"
VERSION="7.3 (Maipo)"
ID="rhel"
ID_LIKE="fedora"
VERSION_ID="7.3"
PRETTY_NAME="Red Hat Enterprise Linux"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:redhat:enterprise_linux:7.3:GA:server"
HOME_URL="https://www.redhat.com/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"
REDHAT_BUGZILLA_PRODUCT="Red Hat Enterprise Linux 7"
REDHAT_BUGZILLA_PRODUCT_VERSION=7.3
REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux"
REDHAT_SUPPORT_PRODUCT_VERSION="7.3"
I already followed steps below but these are not working in my case:
sudo rm -rf /etc/yum.repos.d/mongodb-org-4.0.repo
sudo yum clean all
How could i resolve this error?
Based on your error message it looks like you had a nameserver problem, which can involve a variety of solutions as this answer from redhat.com describes. My mongodb-org-4.0.repo file looks just like yours except with version 4.4 and everything worked fine. Well not at first that's how I found this post, but my problem was a blank space I accidentally inserted at the end of the mongodb-org-4.4.repo file.
I found this Unix & Linux Stack Exchange post with some possible fixes, one of which is updating to the latest CentOS. This ServerFault post also had an Errno 14 error message like you're seeing, but this solution was to disable SELinux.
you should check with baseurl in /etc/yum.repos.d/mongodb-org-4.0.repo file. we can also change the releaseserver version in baseurl.
Here is my /etc/yum.repos.d/mongodb-org-4.0.repo file
[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/7/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
It works for me.

CentOS 6.8 install rabbitmq 3.7.4

I'm trying to install RabbitMQ 3.7.4 on CentOS 6.8. Currently I have installed Erlang 20 following instruction from https://github.com/erlang/otp/blob/maint/HOWTO/INSTALL.md , but when I tried :
sudo yum install https://dl.bintray.com/rabbitmq/all/rabbitmq-server/3.7.4/rabbitmq-server-3.7.4-1.el6.noarch.rpm
it doesn't detect the Erlang 20. Instead it searched for the available Erlang package from my EPEL, which is the R14B, and wont install since it is lower than the minimum Erlang version requirements. How do I fix this and install RabbitMQ?
From the Installation instructions at https://packages.erlang-solutions.com/erlang/
Installation using repository
1. Adding repository entry
To add Erlang Solutions repository (including our public key for verifying signed package) to your system, call the following commands:
wget https://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm
rpm -Uvh erlang-solutions-1.0-1.noarch.rpm
Alternatively: adding the repository entry manually
RPM packages are signed. To add Erlang Solutions key, execute command:
rpm --import https://packages.erlang-solutions.com/rpm/erlang_solutions.asc
Add the following lines to some file in "/etc/yum.repos.d/":
[erlang-solutions]
name=CentOS $releasever - $basearch - Erlang Solutions
baseurl=https://packages.erlang-solutions.com/rpm/centos/$releasever/$basearch
gpgcheck=1
gpgkey=https://packages.erlang-solutions.com/rpm/erlang_solutions.asc
enabled=1
2. Adding repository with dependencies
Packages requires some packages that are not present in standard repository. Please ensure that EPEL respository is enabled.
3. Installing Erlang
Call the following command to install the "erlang" package:
sudo yum install erlang
or this command to install the "esl-erlang" package:
sudo yum install esl-erlang
Please refer to the FAQ for the difference between those versions. Your erlang will be kept up to date either way.

CPP-REST-SDK in Centos 7

I have a CentOS 7 (EPEL-Repo is registered) but I do not find the package for CPP-REST (libcpprest-dev in Debian) in the repos.
Do I need to install it from vanilla or is there a package in CentOS?
Thanks!
Short answer...
There is not an "official" CentOS 7 package at this time (2018-10-03) for cpprestsdk (libcpprest-dev in Debian).
Long answer (sharing this in case it helps anyone)...
You could build cpprestsdk from source, but the instructions "How to build for Linux" (https://github.com/Microsoft/cpprestsdk/wiki/How-to-build-for-Linux) do not include CentOS or RHEL (at the time of this writing, 2018-10-03).
Before building cpprestsdk on CentOS 7, you'll need to update boost (at time of this writing CentOS 7 repos have boost 1.53, but 1.54 is required, and 1.68 is latest). You can do this to update (using boost 1.68 as example):
cd && wget https://dl.bintray.com/boostorg/release/1.68.0/source/boost_1_68_0.tar.gz
tar -xzvf boost_1_68_0.tar.gz
cd ~/boost_1_68_0
./bootstrap.sh --prefix=/opt/boost
sudo ./b2 install --prefix=/opt/boost --with=all
After updating boost, I was able to build cpprestsdk on CentOS 7 like this...
Install some needed tools/libraries:
sudo yum -y install git cmake3 openssl-devel gcc-c++ make
Download the cpprestsdk project:
git clone https://github.com/Microsoft/cpprestsdk.git casablanca
cpprestsdk wants to treat warnings as errors. I had to turn this off by commenting out this line in ~/casablanca/Release/CMakeLists.txt:
#set(WERROR ON CACHE BOOL "Treat Warnings as Errors.")
Prepare/build cpprestsdk project:
cd casablanca/Release
mkdir build.release && cd build.release
cmake3 .. -DCMAKE_BUILD_TYPE=Release -DBOOST_ROOT=/opt/boost
make
Install header files and library
sudo make install
Notice that I am calling cmake3 (not cmake) and I am specifying the boost root; which differs from the official instructions that appear to be written and tested for Ubuntu (not CentOS or RHEL). To build my projects using cpprestsdk, I had to use ldconfig to find the library paths.