How to differentiate between manually installed packages and dependencies on linux - linux

I am a noob in linux and right now I am using a raspberry pi with raspbian to learn about it. I am trying the commands to install and uninstall packages (apt) but i have the following doubt.
Is there a way to differentiate between packages that I have installed and packages that were automatically installed because they are dependencies?
Thanks

Is there a way to differentiate between packages that I have installed and packages that were automatically installed because they are dependencies?
Probably not, and that should not matter. Suppose you have some package foo that has been installed as a dependency for bar. A few days latter, you might want to install foo (and since it is already installed, nothing will happen).

Related

Linux Installation libX11-devel

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.

How do I restore my Haskell setup to the bare Homebrew configuration?

I have a system setup of Haskell that I've maintained with Homebrew and subsequent cabal install invocations for various packages. I would like to take this back to the bare installation created with brew install haskell-stack.
How do I do this? Right now I seem to have a bunch of stuff lying around (e.g. old docsets, executables like ghc-mod etc.) at the system level, even after deleting all installed packages with rm -r ~/.ghc. Is there a reliable way to get back to the basic configuration that brew install haskell-stack creates?

centOS Security Center yum install dependencies failing

I am running a centOS 7 virtual machine and trying to install an RPM package for Security Center 4.7.1. The yum installer fails to find the install packages for the dependencies libexpat and libreadline, however I do have expat and readline installed. I don't understand this because it seems that the Security Center RPM is looking for packages of the wrong names. This link is a screen shot showing the yum install abort, the lack of installed packages required and the packages I do have installed relevant to the problem...
centOS VM screenshot
Any suggestions on how to remedy this without forcing the install and risking non functionality of Security Center?
The package you are trying to install needs
libexpat.so.0
libreadline.so.5
but your installation has probably (from what I can see)
libexpat.so.2
libreadline.so.6
It will be difficult to install this package; I would recommend you to search for a newer SecurityCenter package.
for experts:
there is probably a way to work around this; if you can manage to install an older libreadline and libexpat rpm side by side with the new ones; but that might be risky because there are probably some conflicts and updates might not run too well...

libsdl2 package not installing on Ubuntu

Tried installing the package libsdl-image-2.0-0 from a .deb, which was a missing dependency for another package. It itself also had a bunch of dependencies I had to install, but anyway, NOW when I try to install it, I get this error: http://pastebin.com/YSnuxTNB
Running Ubuntu Precise, x86_64. No idea what the problem might be. Does anyone know how to resolve this?

error when trying to install libtmcg "configure: error: libgmp >= 4.1 is needed"

I've tried installing different libgmp's from ubuntu app center and I tried installing it manually from http://gmplib.org/#DOWNLOAD but I can't get this to configure it's an old library and I'm trying to run it on the latest version of ubuntu but I didn't think I'd have problems but I'm new to trying to use libraries like this any help would be greatly appreciated.
I've had these kind of errors installing dependencies before, and I realized that you must to force the installation of such pack having it... you didn't mention the version of your Ubuntu, so I'm assuming you're working with 12.10. But if not you always can look up for the version you are running on.
Just download the pack from here, of course, depending on your architecture, and after that run sudo apt-get -f install in order to force the installation of broken packs.

Resources