[WBEL-users] How to uninstall an rpm package which has dependencies?
Jean Lee
jean.lee@free.fr
Wed, 10 Nov 2004 15:44:44 +0100
Hi bishop,
OK I tried your rpms. The installation is OK and I succeed to create a
jail which works for ssh.
I follow the manual which is available here :
http://www.netadmintools.com/art294.html
The problem is that it doesn't work with sftp-server.
During the creation of the chroot environnement, I made a copy of
/usr/libexec/openssh/sftp-server to
"path-to-chroot"/./usr/libexec/openssh/sftp-server
then :
cd "path-to-chroot"/./usr/libexec/openssh/
ldd sftp-server
The output gives some libraries which I copied into the correct folders.
When I tried : sftp jean@ServeurLinux
I am asked for a password and then I have an error saying me that a
library related to kerberos is not found.
I verified and this library is at the place which is telled by ldd (+the
"path-to-chroot")......
It is related to this kerberos library because I tried to supress
libz.so.1 (which is also needed by sftp-server) and the error message
was then that it didn't find libz.so.1. I suppose so than when this
library is well placed, sftp-server can find it.
Do you have any idea why sftp-server doesn't find this kerberos library ?
Thank you for your support.
Jean
bishop wrote:
>
> Hey Jean,
>
> The SRPM (Source RPM) contains the necessary code to build RPMs. It's
> really just a cpio of the tar.gz, some diffs and a build script (.spec).
>
> Building the RPMs is done with
> rpm -i openssh.src.rpm
> rpmbuild -ba openssh.spec
>
> Here's the current patch for the spec file to integrate the chroot diff:
>
>> --- /home/bishop/RPM/SPECS/openssh.spec~ 2004-11-09
>> 03:35:49.000000000 -0800
>> +++ /home/bishop/RPM/SPECS/openssh.spec 2004-11-09 10:15:59.000000000
>> -0800
>> @@ -86,7 +86,7 @@
>> %if %{rescue}
>> Release: %{rel}rescue
>> %else
>> -Release: %{rel}
>> +Release: %{rel}%{?_with_chroot:chroot}
>> %endif
>> URL: http://www.openssh.com/portable.html
>> Source0:
>> ftp://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-%{version}.tar.gz
>>
>> @@ -98,6 +98,7 @@
>> Patch4: openssh-3.9p1-skip-initial.patch
>> Patch11:
>> http://www.sxw.org.uk/computing/patches/openssh-3.6.1p2-gssapi-20030430.diff
>>
>> Patch12: openssh-selinux.patch
>> +Patch15:
>> http://chrootssh.sourceforge.net/download/osshChroot-3.6.1.diff
>> License: BSD
>> Group: Applications/Internet
>> BuildRoot: %{_tmppath}/%{name}-%{version}-buildroot
>> @@ -150,6 +150,7 @@
>> %if ! %{build6x}
>> Requires: /etc/pam.d/system-auth
>> %endif
>> +%{?_with_chroot:Provides: ssh-server-chroot}
>>
>> %package askpass
>> Summary: A passphrase dialog for OpenSSH and X.
>> @@ -226,6 +227,10 @@
>> %patch12 -p1 -b .selinux
>> %endif
>>
>> +%if %{?_with_chroot:1}%{?!_with_chroot:0}%{?commentish:These
>> constructs suck}
>> +%patch15 -p1 -b .chroot
>> +%endif
>> +
>> %build
>> CFLAGS="$RPM_OPT_FLAGS"; export CFLAGS
>> %if %{rescue}
>
>
> (yes, I hate line 89 too)
>
> Okay, I'm in my meeting now, so I can't test/examine the RPMs at all,
> but if you want to test something, grab these:
>
>> Wrote:
>> /home/bishop/public_html/apt/i386/wb30/SRPMS.extras/openssh-3.9p1-1chroot.src.rpm
>>
>> Wrote:
>> /home/bishop/public_html/apt/i386/wb30/RPMS.extras/openssh-3.9p1-1chroot.i386.rpm
>>
>> Wrote:
>> /home/bishop/public_html/apt/i386/wb30/RPMS.extras/openssh-clients-3.9p1-1chroot.i386.rpm
>>
>> Wrote:
>> /home/bishop/public_html/apt/i386/wb30/RPMS.extras/openssh-server-3.9p1-1chroot.i386.rpm
>>
>> Wrote:
>> /home/bishop/public_html/apt/i386/wb30/RPMS.extras/openssh-askpass-3.9p1-1chroot.i386.rpm
>>
>> Wrote:
>> /home/bishop/public_html/apt/i386/wb30/RPMS.extras/openssh-askpass-gnome-3.9p1-1chroot.i386.rpm
>>
>
>
> They may work. I have them here (but get the right ones!) :
>
> http://apt.platypus.bc.ca/~bis hop/apt/i386/wb30/RPMS.extras/
> http://apt.platypus.bc.ca/~bis hop/apt/i386/wb30/SRPMS.extras/
>
> I'll examine the RPM later today, as I mentioned.
>
> To examine all the changes I've made to the SRPMS:
> install one SRPM
> move the dirname away (`mv RPM{,1}`)
> install the other SRPM
> compare them:
> diff -uNr --exclude-from=openssh3.*gz RPM{1,}
>
> I can send these diffs to you if you are interested.
>
> - bish
>
> Jean Lee wrote:
>
>> Well, I really made something wrong.
>>
>> I was on the openssh website and didn't find the tar.gz files for
>> openssh-client, openssh-server, openssh-askpass and
>> openssh-askpass-gnome. :) sorry, I'm a newbie.
>> Bishop, how did you do to produce these files ? Is it something with
>> this srpms file?
>> If the rpm files are produced by the srpms one. How can I apply a
>> patch to the tar.gz file and then create the srpms file from this
>> patched tar.gz file and then finally obtain my rpm files?
>>
>> What do I have installed (Installation explained in my previous mail)?
>>
>> Thank you for your answers because I think that I'm a bit lost.
>>
>> Jean
>>
>> Jean Lee wrote:
>>
>>> Thank to all of you for your great help.
>>> This mail is just to give a back and keep a trace,
>>>
>>> I have created an rpm of the patched openssh
>>> (openssh-3.9p1-chroot.tar.gz) with the checkinstall binary. I called
>>> it openssh-3.9p1-1.i386.rpm and checkinstall automatically installed
>>> it.
>>> I didn't do a 'yum remove openssh-3.6.1p2' because I didn't want to
>>> brake some dependencies.
>>>
>>> When I type 'rpm -q openssh', I have a good return : openssh-3.9p1-1
>>> but if I try to erase it 'rpm -e openssh', I have the following
>>> return :
>>>
>>> error: Failed dependencies :
>>> openssh = 3.6.1p2-33.30.1 is needed by (installed)
>>> openssh-askpass-3.6.1p2-33.30.1
>>> openssh = 3.6.1p2-33.30.1 is needed by (installed)
>>> openssh-askpass-gnome-3.6.1p2-33.30.1
>>> openssh = 3.6.1p2-33.30.1 is needed by (installed)
>>> openssh-client-3.6.1p2-33.30.1
>>> openssh = 3.6.1p2-33.30.1 is needed by (installed)
>>> openssh-server-3.6.1p2-33.30.1
>>>
>>> Another thing : If I type 'whereis sshd', the return is :
>>> /usr/sbin/sshd and /usr/local/sbin/sshd .
>>> It doesn't seem to be very good..
>>>
>>> I will try now to upgrade these 4 tools with standard openssh-3.9p1
>>> and see what will come.....
>>>
>>> Jean
>>>
>>> Randy Kelsoe wrote:
>>>
>>>> Jean Lee wrote:
>>>>
>>>>> Hello all,
>>>>>
>>>>> I think that what I want is not so hard but I really don't know
>>>>> how to do it.
>>>>>
>>>>> My problem is that I want to unintsall openssh-3.6.1p2 which is
>>>>> installed as an rpm package and then install openssh-3.9p1-chroot
>>>>> which is a tarball (it is a patched version of Openssh-3.9p1 with
>>>>> added chroot functionnality).
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> As I suggested in a previous thread of yours, get the checkinstall
>>>> package and install it. Then you can untar the openssh-3.9p1-chroot
>>>> package, do your './configure', then 'make' and then instead of
>>>> doing your normal 'make install', run 'checkinstall' which will
>>>> create and install an RPM package for you. That way, if you have
>>>> problems with the new package, you can remove it with the 'rpm -e'
>>>> command. When you need to upgrade the package, it will be a lot
>>>> easier to let rpm do the upgrade and keep track of the files.
>>>>
>>>>>
>>>>> Well, I tried first to uninstall openssh-3.6.1p2 with :
>>>>> rpm -e openssh
>>>>> and this command failed due to dependencies to other packages :
>>>>> openssh-server, openssh-client, netdump and a few others related
>>>>> to openssh...
>>>>>
>>>>> I'm sure that I am doing something wrong. Perhaps that I can
>>>>> firstly uninstall the packages related to openssh but the one with
>>>>> netdump is probably not recommended.. Moreover, I tried to
>>>>> uninstall openssh-server and it failed due to a dependency to
>>>>> netdump-server.
>>>>>
>>>>> What is the right way? Do I have really to uninstall every package
>>>>> which has a dependency before uninstalling openssh or is there
>>>>> another way which ensure that nothing will be broken?
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> In your case, I would recommend trying the checkinstall method
>>>> above first. If you really want to get rid of the dependencies, you
>>>> can rpm -e more than one package at a time:
>>>>
>>>> rpm -e openssh openssh-server openssh-client netdump
>>>>
>>>> yum is also handy for this:
>>>>
>>>> yum remove packagename
>>>>
>>>>
>>>>>
>>>>> Thanks for any help,
>>>>>
>>>>> Jean
>>>>
>
>