[racket-dev] Updating dependency packages from other sources

From: Asumu Takikawa (asumu at ccs.neu.edu)
Date: Tue Aug 13 23:48:03 EDT 2013

Hi all,

I have a question about updating packages. I'll use an example
development scenario to frame the question.

Suppose I have package `aosd` installed that depends on `x11`:

  Installation-wide:
   Package              Checksum    Source
   x11                  0fc7555f6bc8f09601a75f9d88f44bfa3c4ff632    (catalog x11)
   aosd                 7ab51262a256a324b062d7b407cb5341d1f41f69    (catalog aosd)

Now suppose I want to work on the `x11` package since I need to upgrade
it for some aspect of the `aosd` package. Right now it's installed from
the package server, but I want to switch it to a linked package from the
filesystem for development.

If I try to remove just the `x11` package so I can replace it, I get
this error:

  $ raco pkg remove x11
  raco pkg remove: cannot remove packages that are dependencies of other
  packages
    dependencies:
       x11 (required by: (aosd))

which is reasonable. But I have to remove the package before I can
install it from a different source. The `raco pkg update` command looks
like it might help, but it doesn't let you update from a different
source AFAICT. The `raco pkg install` command won't work because it'd be
a conflicting package.

What are the right steps to install over dependency packages? I don't
think manually uninstalling and re-installing is a good solution.  If n
other packages depended on `x11` too, it seems like I'd have to
re-install all n of them.

Cheers,
Asumu

Posted on the dev mailing list.