I downloaded a Rocky 9 minimal ISO. I want to add some additional packages to the ISO in order that when I install the new ISO, after the installation, I get that also the additional packages are installed.
Related
I am trying to build QT4 (porting from Redhat 5 to 7 with an upgraded gcc compiler) in RedHat 7 and I was getting an error saying X11/Xlib.h can't be found. Anyways, after doing some research most people said to install libX11-devel to get those x11 libraries. Since I am using an offline machine I can't do "apt-get" type commands and have to manually install RPMs. So, I went to my RH-7 installation DVD and got "libX11-devel-1.6.3-3.el7.x86-64" (I have 64 bit OS) and tried to install using "yum install libX11-devel-1.6.3-3.el7.x86_64" and I am getting dependencies errors. It's saying
...Requires: pkgconfig(kbproto)
...Required: pkgconfig(xcb)
...Requires: pkgconfig(xproto)
...Requires: pkgconfig(xcb) >= 1.1.92
So, here are my questions.
1) when it says "pkgconfig(kbproto)", is it saying find the "kbproto....RPM" and do a "yum install". In my dvd I only have "xorg-x11-proto-devel-7.7.13.el7.noarch.rpm". Do I have to somehow find "xorg-x11-proto......x86_64.rpm" since it's a 64 bit machine?
2) Is there a difference between "yum install" and pkgconfig "install"? Are there any other installation variants in Linux?
3)For an offline machine, Is there anyway I can get all the dependencies and install everything at once ?
4) Why is it saying "xcb" requires twice. If I just get a xcb...rpm version above 1.1.92 can I just install it once?
Before actually answering the questions, I am going to suggest to see if you can get the latest version of the packages. The packages on the installation DVD may be really out of date and contain known vulernabilities, and other bugs. Can you use yumdownloader - in an online environment - to download the latest version onto a separate DVD and use that as the installation source? See https://access.redhat.com/solutions/10154 for more information.
To answer the questions themselves:
Requires: foo can refer to a package foo or a "feature" foo. pkgconfig(kbproto) is a "feature" (or virtual requires). You can use yum/rpm to see what provides this. On my Fedora box, for example, rpm -q --provides xorg-x11-proto-devel shows that this package indeed provides pkgconfig(kbproto).
As for x86_64 vs noarch, it doesn't matter. noarch packages work everywhere. Other packages are restricted to the platform. So x86_64 only works on intel/amd x86 64-bit machines. Installing noarch should be fine in your case. If you only had a i686 package, though, that wouldn't be sufficient. You would have to find a x86_64 or noarch package.
Yes, there's a big difference between yum and pkg-config. They do completely different things. One is a system tool for installing RPM packages. The other is a tool for developers for using the right headers and compiler flags. If your concern is finding/installing RPMs, do not use pkg-config directly.
Do you have access to an online machine that can access the RHEL 7 yum repositories? On that machine, do something like this:
mkdir rhel7-packages
cd rhel7-packages
yum provides '*/X11/Xlib.h' # make a note of the package that provides this file. it's libX11-devel on Fedora here
yumdownloader --resolve libX11-devel # download libX11-devel and all dependencies not installed on the system
Then copy/install the RPMs on the machine without internet access.
It's probably printing out xcb twice because it's two different requirements. The unversioned requirement will be satisfied if you install any verison of xcb. The versioned requirement will only be satisfied if you install 1.1.92. If you install 1.1.92, it will satisified both the requirements.
1.
You have to resolve the dependency on the system where you are building your package. This means you need to have those dependencies installed, inclusing libX11-devel. To do that, download the RPMs manually from EL7 repos to local disk and run this:
$ mkdir -p /tmp/libX11_dep_rpms && cd /tmp/libX11_dep_rpms
# Download all dependencies from here. All your packages should be available here:
# http://mirror.centos.org/centos-7/7/os/x86_64/Packages/
# Then install
$ yum localinstall *.rpm
# After this you should be able to build your qt4 package, provided all dependencies are resolved. Otherwise, repeat the procedure for all dependencies
# If you can't download packages, then you need to create a FULL DVD ISO that will contain all packages.
2.
pkgconfig ensures that a requirement is coming from a particular build that provides a particular version of the library. Here are some detail.
3.
Get the Everything ISO from EL7.
4.
This has to do with the pkgconfig and library versions.
I am new to Debian 8, and still very much a Linux beginner. I am currently running Debian 8 Oracle VM Virtualbox in Windows 10, for reference.
For a project I am working on, my task is installing Debian 8 packages from the source package to a specified rootfs folder. After getting the source files (.tar.gz, .diff.gz, .dsc) and extracting them, I run:
dpkg-source -x <package>.dsc
Which extracts the source to the working directory.
The issue I'm having is generating the .deb files from the extracted. The standard way to do it is to let apt handle the installation of the dependencies from the online repository via:
apt-get build-dep <package>
then generate the .deb files via:
dpkg-buildpackage -b
But this will install the dependencies to my rootfs. In addition, since I downloaded the majority of the packages to my local machine, I'd like to be able to manually install each dependency from my local source packages rather than online.
From my understanding, I was tasked this to avoid polluting the specified fs with documentation and non-essential files, since the number of Debian 8 packages that will be added to this fs is >700.
If there are any mistakes / misunderstandings with my knowledge of Linux & Debian 8, please let me know.
You can create a docker container and install your dependencies in there and do all your work in there. You can configure docker to put the docker containers on any filesystem you like.
Any approach that does not use containers is unlikely to work because AFAIK most Linux distributions, including Debian, do not support dependency relocation. Nix is an exception. So containers are a way around that.
so when a program is being installed and 2 out of 4 libraries are installed and a error shows up and the system aborts the installation. Will package manager automatically remove those 2 libraries?
I am working on Cent OS
if rpm takes care of the unwanted data and clear it, No issues
if it wont is there a command to roll back to the initial state( i.e uninstalling the aborted installing packages).
The installation of your target RPM package will not even start unless all the prerequisites required by the package are available or installable. The steps are similar to:
Create new to-do list using RPM package names from command line.
Check prerequisite RPM packages. If any are missing add them to the to-do list.
Repeat step #2 until all missing packages are identified and are accessible.
Download all prerequisite RPM packages.
If all prerequisite RPM packages have been cached do next step. Otherwise error out.
Install prerequisite RPM packages in reverse order.
Install the original target RPM package.
Note that all missing RPM packages are downloaded into a cache before any RPM packages begin to be installed.
So, if step #6 is interrupted, some packages may be installed and others not. No problem, rerun the RPM install and the set of already-installed packages will be larger, the number of outstanding packages will be smaller.
One my linux instance, I am trying to install JDK 7 using the rpm. There is already JRE 6 installed, and I want to install JDK 7 along that. When I try to install JDK 7, getting the following error:
# rpm -ivh jdk-7u3-linux-x64.rpm
Preparing... ########################################### [100%]
file /etc/init.d/jexec from install of jdk-2000:1.7.0_03-fcs.x86_64 conflicts with file from package jre-1.6.0_20-fcs.x86_64
I also tried installing using yum using:
# yum install jdk-7u3-linux-x64.rpm
This resulted in Transaction check error:
Transaction Check Error:
file /etc/init.d/jexec from install of jdk-2000:1.7.0_03-fcs.x86_64 conflicts with file from package jre-1.6.0_20-fcs.x86_64
Can someone help me to get this installed. I HAVE to retain already installed JRE 6, so removing that is not the solution for me.
Any help will be appreciated!
Thanks
Noman A.
I just had the same problem when using YUM.
The key is to use rpm followed by the --force flag, i.e. you first install the JRE 1.6 (which you have already) and then issue an rpm command like this
rpm -ivh jdk-7u3-linux-x64.rpm --force
It then installs the newer JDK not minding any error.
The file /etc/init.d/jexec is exactly the same between both java versions.
Did not find any solution to this, so I went ahead and installed JDK using the tar file available for the respective JDK version.
-Noman A.
So basically I'm trying to install APC, but I can't get pecl to work on Centos 5.8 i686
I have the latest stable releases of php-fpm, mysql, and nginx. Everything is working at 100%, everything is smooth. I'm running a live website with no problems. I just can't pecl to work.
yum install php-pear:
Most of the packages I'm trying to instal have dependency issues with php-common (whatever that is).
php-common = 5.1.6-32.el5 is needed
Much help is appreciated!
/usr/bin/pecl is available from php-pear package.
The dependency failures you got are stange. Probably because you have mixed installation of php-* 5.1 RPMs and php53-* 5.3 RPMs and get conflicts on devel files. You should do some clean up to keep only one set of RPMs for your target version, either 5.1 or 5.3.
You also have to install gcc, httpd-devel, php(53)-devel and finally php-pear to get phpize working.
Then you should be able to run pecl install apc
First of all assure you have your distro updated, you can do it with
yum update
Then check if you are not using any third-party repo, that contains this packages.
If you can, remove all the php packages with
yum remove php*
and try to install them again.
If you can't solve it, try the Fedora EPEL repositories which provides some updated packages.
All the commands needs be run by root.