[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Cannot upgrade circular udev dependency



On Wed, Feb 16, 2022 at 07:19:34AM -0800, David Liontooth wrote:
> 
> Hi -- I have a machine, Linux ancient 2.6.36.2 #1 SMP Sun Dec 26 06:19:57
> PST 2010 x86_64 GNU/Linux.

This is not a Debian kernel.  You either built it yourself, or you got
it from some foreign Linux distribution.

> I can install a new kernel, but it won't boot into any of the new kernels:
> 
> root@ancient:~# update-grub
> Generating grub.cfg ...
> Found linux image: /boot/vmlinuz-4.9.0-16-amd64
> Found initrd image: /boot/initrd.img-4.9.0-16-amd64
> Found linux image: /boot/vmlinuz-3.16.0-6-amd64
> Found initrd image: /boot/initrd.img-3.16.0-6-amd64
> Found linux image: /boot/vmlinuz-2.6.36.2
> Found linux image: /boot/vmlinuz-2.6.36.1

Why not?  What happens when you try to boot one of them?  Are they missing
whatever features you needed to build a custom kernel to support?

> I also cannot upgrade udev:
> 
> root@ancient:~# apt --fix-broken install
> Reading package lists... Done
> Building dependency tree
> Reading state information... Done
> Correcting dependencies... Done
> ...
> The following additional packages will be installed:
>   udev
> The following packages will be upgraded:
>   udev
> 1 upgraded, 0 newly installed, 0 to remove and 476 not upgraded.
> Need to get 0 B/1,112 kB of archives.
> After this operation, 6,381 kB of additional disk space will be used.
> Do you want to continue? [Y/n]
> Reading database ... 64907 files and directories currently installed.)
> Preparing to unpack .../udev_232-25+deb9u13_amd64.deb ...
> Since release 198, udev requires support for the following features in
> the running kernel:
> 
> - inotify(2)            (CONFIG_INOTIFY_USER)
> - signalfd(2)           (CONFIG_SIGNALFD)
> - accept4(2)
> - open_by_handle_at(2)  (CONFIG_FHANDLE)
> - timerfd_create(2)     (CONFIG_TIMERFD)
> - epoll_create(2)       (CONFIG_EPOLL)

You could rebuild your custom kernel to include those features.  Assuming
they existed in 2.6.36.

But... that says deb9.  That's a *whole* lot newer than your running
system.  Did you honestly expect a Debian 9 package to work on your
Debian 6 (or whatever it is) system?

> I'm not finding udev packages in pool. Where are they located in the
> repository tree? Is there an intermediate udev package that would allow me
> for instance to boot linux 3.16.0-6-amd64?

You're running a version that's so old that I wouldn't expect to find
its packages in the normal locations.  You'd be better off using
snapshot.debian.org and downloading the obsolete versions that you require
by hand.

> Finally. I tried using another machine to download udev 215-17+deb8u7 -- it
> lets me download libudev 215-17+deb8u7, but even just downloading the udev
> package is blocked by the dependency check.
> 
>     apt-get install --download-only udev=215-17+deb8u7 <== fails
>     apt-get install --nodeps --download-only udev=215-17+deb8u7
> E: Command line option --nodeps is not understood in combination with the
> other options

And this one says deb8.

Use dpkg -i to install individual Debian package files in these old
versions.  "apt-get install ./filename" didn't exist back then.  The
old way was to use dpkg -i, which led you to an incomplete state,
and then use "apt-get -f install" with no package names to let apt-get
try to fix the incomplete state.

Or... you could install a newer version of Debian from scratch.  It might
be simpler than trying to salvage this Frankendebian installation.  (You've
got mixed up versions all over the place.  I don't think this is fixable
in any sane way.)

I'm still curious why you needed a custom kernel, though.  You'll want to
solve that mystery.  If there's something *unique* about this machine,
which would prevent a clean installation of Debian 11, you'll need to
address it, whatever it may be.


Reply to: