How to get details of Deleted rpms - linux

I had some rpms which was build locally using rpm-build.I installed it on CentOS machine and later i removed and installed latest build ones. Now i am in a situation to get the previous installed rpm version. Is there any way to get the list of removed rpms??. I removed the previous rpms using "rpm -e" command.

Older versions stored a snapshot of the installed RPMs in /var/log/rpmpkgs - I don't remember what interval, but it's not built-in; it was a cron job. Newer distributions don't seem to do that any more, because yum logs everything natively, and the cron job was kind of a hack.
You don't say what version of CentOS, but if you don't have that log file, I think you're out of luck. You might get lucky and have it in somebody's shell history (root or a user who ran sudo).

Related

Is it possible to run a newer version of cloc (or any package) onto an older version of ubuntu?

I have to work with ubuntu 14.04, but I need to use cloc 1.92. The highest cloc version via package update for Ubuntu is 1.6.
https://packages.ubuntu.com/search?keywords=cloc
I did a wget https://github.com/AlDanial/cloc/releases/download/v1.92/cloc-1.92.tar.gz to download this package to my machine, but it's not showing up in the package list when I do dpkg --list. I'm not sure how to make the cloc 1.92 folder run the same way that 1.6 does on my VM, or if it's even possible to do so.
The git page for cloc explains all related aspects, and skimming over it, in the Why use cloc? section says that the "program is self-contained, only download and run it". This program is developed in Perl 5, present in all Ubuntu distros. You can check that with the command perl --version.
Simply extract the file cloc from the tar.gz and copy it in an appropiate directory, for example /usr/local/bin, and confirm it has the proper executable rights with the command chmod a+rx /usr/local/bin/cloc.
Caveat: cloc claims to use only standard Perl modules. If your installed Perl doesn't have all needed, you will have to install them using CPAN.
Edit: See the comments by Knud Larsen for manual installing as Ubuntu mantainers do.
In this case, as the program is run by an interpreter, it wasn't needed to compile it, but in general programs/libraries in source form could to be compiled and installed independently from the apt/dkpg package management, but could need other libraries/programs to operate. The mantainer of the distro ensures this dependencies are installed together with the desired package. If we want to compile/install manually, then also we have to compile/install all requirements of the program if they aren't there already.
In other cases, the additional required software for the package could be already installed in some older versions, but it is used by other installed programs that could fail if we install new versions. That is the main problem when updating software in older distros: We need to investigate and resolve any conflicts manually.
So, the second answer is: Yes, we can update software in older versions of Ubuntu, but could be impractical to do so.

Apache version upgrade issue

At present we are on Apache/2.2.15 (UNIX) version. To fix the vulnerabilities we are suggested to upgrade to new version. I got new version from online using "wget" command and followed steps mentioned on this link http://httpd.apache.org/docs/2.2/install.html#download.
Once I am done, checked version using httpd -v. It gives me old version Apache/2.2.15 (UNIX). If I check using /usr/local/apache2/bin/httpd - v. It gives me new version. Did I successfully upgraded the version or not? If not what should I do?
I tried "yum install httpd" - It says "Nothing to do".
You now have two versions of Apache installed. You have the one installed with the system package manager (yum) in /usr/sbin/httpd. You have one installed manually in /usr/local/apache2/....
Which one you get will be determined entirely by which path you use.
In general, mixing system-managed packages with manually installed packages is a recipe for trouble. If you want to stick with the newer version in /usr/local, you should remove the system version, and realize that you will lose some manageability. For example, you will no longer be able to use yum install ... to install new Apache modules, and you will not be able to verify the installed files using tools like rpmverify.
If your distribution currently has Apache 2.2.x, that suggests your distribution is fairly old. For example, RHEL (and CentOS) 7 (and similar variants) have version 2.4.6 packaged, so you may want to update your host to something newer than whatever you're running now.
Yes, its successfully upgraded as per the screenshot.
httpd 2.2.15 is the version with RHEL 6 repository, here HTTPD_HOME is /etc/httpd (Highest version provided for HTTPD via RPM RHEL 6 is 2.2.15)
httpd 2.4.6 is the version with EPEL-HTTPD24 repository, here HTTPD_HOME is /usr/local/apache2/

Cygwin - Installing a specific package version using the commandline installer

Using the commandline installer, one can easily install Cygwin with a list of wanted packages like so
setup-x86.exe -q -p='tar,sed,<more packages>'
Is it also possible to fix the version of the packages, something like
setup-x86.exe -q -p='tar:1.2.3,sed,<more packages>'
(this obviously doesn't work)?
The short answer to your query is, No. Cygwin's setup -x86.exe does not give you the flexibility to specify version names along with package names. As per the official doc :
The basic reason for not having a more full-featured package manager is that such a program would need full access to all of Cygwin's POSIX functionality. That is, however, difficult to provide in a Cygwin-free environment, such as exists on first installation. Additionally, Windows does not easily allow overwriting of in-use executables so installing a new version of the Cygwin DLL while a package manager is using the DLL is problematic
There are however a couple of workarounds if you want to download a specific package:
Locate a cygwin mirror that hosts the specific version. Google for your version, and if you find a mirror hosting that version, simply use that mirror before running setup -x86.exe. [source]
Maintain a local pacakge repository and use the commandline options -q -L -l x:\cygwin-local\, where your downloaded package tree is in x:\cygwin-local\ [source] . You can learn how to build and maitain packages here
Compile and install the package after you've set up cygwin using make.
This is function that Cygwin's installer now provides. By default, when running from the command line, it will install the latest version of each package, but you can specify a version with =. For example:
setup-x86_64.exe -P git=2.35.0-1,vim
will install the latest version of Vim, and version 2.35.0-1 of Git.

Postgresql 8.3 version needed for OpenSUSE

I have installed OpenSUSE 12.1 installed on machine.
and i have postgresql-contrib-8.3.11-0.1.i586.rpm,postgresql-devel-8.3.11-0.1.i586.rpm, postgresql-docs-8.3.11-0.1.i586.rpm,postgresql-libs-8.3.11-0.1.i586.rpm,postgresql-server-8.3.11-0.1.i586.rpm..
I want to installed postgresql 8.3 version based on above packages..but when i installed with this command .it shows an error.
opnsu121:/ # rpm -Uvh postgresql-server-8.3.11-0.1.i586.rpm
error: Failed dependencies:
postgresql = 8.3 is needed by postgresql-server-8.3.11-0.1.i586
Even i am not able to find postgresql 8.3 base version as i think the above one is update.i have gone throgh the download.openSUSE.orf,ftp.openSUSE.org..
http://download.opensuse.org/update/11.0/rpm/i586/..
but not able to find what i need..so please help on this,
If at all possible, use YaST or whatever package manager SuSE uses to install the current version of PostgreSQL. From the repository it looks like that's 9.1.1.
If you specifically need PostgreSQL 8.3, I'd recommend using the distro-independent installer from EnterpriseDB. That should work fine on SuSE 12.2. If your organisation has particularly restrictive and unsafe version policies that force you to use old versions with known bugs, you can get 8.3.14 for 32-bit Linux here and 8.3.11 for 32-bit Linux here.
If you have issues with using the well-tested and known-to-work EnterpriseDB binary installer versions of PostgreSQL, your other option (and a good one) is to install from source code. Download the PostgreSQL 8.3.18 sources from the FTP site, then:
sudo mkdir -p /opt/postgresql93
sudo chown `id -un` /opt/postgresql93
./configure --prefix=/opt/postgresql93
make
make install
after which you can use /opt/postgresql93/bin/initdb (see initdb manual) to create a database and /opt/postgresql93/bin/pg_ctl (see pg_ctl manual) to start/stop it, as per the PostgreSQL documentation.
Don't try to force packages from an old version of SuSE to install on your new version. It'll probably result in an increasing tree of dependencies and end in pain.
If at all possible, try to convince your company that their policy of requiring a specific minor version (eg 8.4.14 not just "8.4.x") of PostgreSQL is unsafe and counterproductive. They're forcing you to do dirty hacks or hand-compile unique, custom installs just for your setup in order to avoid using well tested builds that contain extra bug fixes. Requiring approval before upgrading from 8.3 to 8.4/9.0/9.1/etc makes sense as there are feature and backward compatibility changes that require careful testing, but requiring approval before upgrading from 8.3.14 to 8.3.18 is counterproductive. Minor version upgrades of PostgreSQL are very conservative; you should stay up to date with the latest minor release.
hurray...I got the answer..
I have got the package below:
postgresql-contrib-8.3.11-0.1.i586.rpm, postgresql-devel-8.3.11-0.1.i586.rpm,postgresql-docs-8.3.11-0.1.i586.rpm,postgresql-libs-8.3.11-0.1.i586.rpm,postgresql-server-8.3.11-0.1.i586.rpm from the below link:
http://download.opensuse.org/update/12.1/i586/
and the one more package which i have struggled to get is:
postgresql-8.3.11-0.1.i586.rpm with the following link:
http://rpm.pbone.net/index.php3/stat/4/idpl/17194424/dir/opensuse_11.x/com/postgresql-8.3.11-0.1.i586.rpm.html
with all above packages i have installed using..
rpm -ivh packagename
if there is a dependency then rpm -ivh --nodeps packagename
great..its done..

Update RHEL 5.1 to 5.4

I have a server currently running RHEL 5.1, and I would like to upgrade it to RHEL 5.4. The server is not connected to the Internet, so I don't think I can use "yum update".
How would I be able to upgrade my server, and is it just a small-scale upgrade, like Windows patches, leaving everything on the server intact, or would it delete everything that was on the server?
Thank you.
Regards,
Rayne
I haven't actually tried this myself, but you should be able to use an installation disc for RHEL 5.4 to upgrade even if you are off-line (although you'll need to get on-line somewhere to download the disk image). Once you have the RHEL 5.4 disc, you should be able to follow the instructions here:
How do I use yum to update or install packages for Red Hat Enterprise Linux 5 from a customized repository?
to update your system. Basically, you create a custom repository on you hard drive with the rpm files from the disk and point yum at it or use the disc directly.
Good luck.
Of course if you can put the server temporarily on-line and just use the on-line repositories, after updating all the packages in your 5.1 distribution, you'll have all the same files as if you installed 5.4. At least that's what I remember happening. I had a 5.0 installation that I kept updated and when I compared them they seemed to be the same as the 5.3 version (current at the time) although during boot, my system said it was still 5.0
Rayne,
I used to work on DOE classified systems that could never touch the public internet. There is a very easy way to do this as mentioned. Just use the ISO as a repo, and for my example to work, it needs to be a DVD image. (The way around that using disk {1,2,3} is to copy the files from each disk onto the local disk or a storage device)
You will need to install createrepo which for me involved two dependencies.
createrepo
deltarpm
python-deltarpm
mkdir -p /mnt/iso/rhel54
mount -o loop /path/to/rhel5.4.iso /mnt/iso/rhel54
cd /mnt/iso
createrepo .
It will look like this:
[root#hostname iso]# createrepo .
44/20586 - rhel54/HighAvailability/Packages/PyQt4-4.6.2-8.el6.x86_64.rpm
Create /etc/yum.repos.d/rayne.repo and add
[Rayne-repo]
baseurl=file:///mnt/iso/
enabled=1
gpgcheck=0
Then run yum update
The update from RHEL 5.1 to RHEL 5.4 is not a small one, not like Windows patches. You can read the release notes, but you will end up with a newer kernel in the end and a ton of updates to the packages. I have not upgraded from 5.X to 5.Y+3 before, it's always been incremental (5.1 to 5.2). At any rate, this should work for you.

Resources