Women in Technology

Hear us Roar

  Is Linux Annoying?
Subject:   Bad idea!
Date:   2003-09-12 09:58:04
From:   anonymous2
Moreover, Alex points out, if you do need a package for which no RPMs are available, try the following:

Take the source RPM for a similar distribution or from a later version of the same distribution.

Adjust any explicit dependencies in the .spec file.

Rebuild the binary for your distribution.

Step 2 is a really stupid thing to do. Whoever packaged the rpm put those dependencies in because the program won't work right without them. The correct sequence of steps is:

1) Take the source RPM for a similar distribution or from a later version of the same distribution.

2) rpm --rebuild <rpm.src>

If this dosen't work upgrade your distribution. You're going to have to do it anyhow sooner or later.

Full Threads Oldest First

Showing messages 1 through 3 of 3.

  • Bad idea!
    2003-10-14 16:56:58  anonymous2 [View]

    Sometimes the dependencies do need to be fulfilled /exactly/ (as you point out) because the package relies on certain functions, or certain bugs being fixed in a library, but sometimes the .spec file is needlessly written assuming it'll be compiled and linked against a newer version of a certain library than you have on your system. In the latter case, adjusting the .spec file is safe and will result in a working-as-expected binary.

  • Bad idea!
    2003-09-16 15:56:39  anonymous2 [View]

    That's exactly what I did to upgrade PHP recently. Took one look at the 6 or so failed depedencies and said nope...time for an upgrade. But one has to ask whether something is seriously wrong when it is easier(and quicker mostly) to upgrade the whole OS than one app of 1 or 2 Mb!
    • Bad idea!
      2003-09-27 00:15:15  anonymous2 [View]

      The debian equivalent of this technique works reliably - often a binary package from the next release up will depend on later versions of core packages like libc than are standard in the current release. Upgrading libc for this one package has the knock-on effect of upgrading a large amount of the distribution. But the source of the package is not incapable of building against the current libc, it's just that the precompiled binary wasn't build against it. Which means that we can do

      # get any programs/headers necessary to compile
      apt-get build-dep foo/testing
      # get source
      apt-get source foo/testing
      # compile source
      cd testing
      debian/rules binary
      # install recompiled custom package
      dpkg -i ../foo.deb

      Missing dependencies during compile are not a problem on debian :P