
On 13-07-25 03:14 PM, harry wrote:
How can I change the location that ghc and ghc-pkg use for the user's package directory? I'm running GHC in a very restricted environment where I don't have access to $HOME, but I can use specific subdirectories.
Cannot. But you have another option. GHC and cabal-install support further package databases than global and user. To initialize: mkdir /joy (or other ways to make /joy exist and be empty) ghc-pkg --package-db=/joy recache Note: two hyphens, -- not - To cabal-install: cabal --package-db=/joy --prefix=/delight install acme-dont Note: you must provide a custom --prefix. The default is $HOME/.cabal which is exactly what you can't use. To ghc-pkg: ghc-pkg --global --package-db=/joy list ghc-pkg --package-db=/joy unregister acme-dont However, beware of http://ghc.haskell.org/trac/ghc/ticket/5442 To ghc or ghci: ghc -package-db=/joy Note: one hyphen: - not -- (Don't you love to memorize random conventions.) (In older versions of GHC, it was even better: cabal --package-db=/joy ghc-pkg --package-conf=/joy ghc -package-conf=/joy Don't you love to memorize random conventions.) Read the full story in GHC User's Guide section 4.9 "Packages". It comes with GHC on your hard disk.