|
Warning: this is an htmlized version!
The original is here, and the conversion rules are here. |
#######
#
# E-scripts on cabal and ghcup.
#
# Note 1: use the eev command (defined in eev.el) and the
# ee alias (in my .zshrc) to execute parts of this file.
# Executing this file as a whole makes no sense.
# An introduction to eev can be found here:
#
# (find-eev-quick-intro)
# http://angg.twu.net/eev-intros/find-eev-quick-intro.html
#
# Note 2: be VERY careful and make sure you understand what
# you're doing.
#
# Note 3: If you use a shell other than zsh things like |&
# and the for loops may not work.
#
# Note 4: I always run as root.
#
# Note 5: some parts are too old and don't work anymore. Some
# never worked.
#
# Note 6: the definitions for the find-xxxfile commands are on my
# .emacs.
#
# Note 7: if you see a strange command check my .zshrc -- it may
# be defined there as a function or an alias.
#
# Note 8: the sections without dates are always older than the
# sections with dates.
#
# This file is at <http://angg.twu.net/e/cabal.e>
# or at <http://angg.twu.net/e/cabal.e.html>.
# See also <http://angg.twu.net/emacs.html>,
# <http://angg.twu.net/.emacs[.html]>,
# <http://angg.twu.net/.zshrc[.html]>,
# <http://angg.twu.net/escripts.html>,
# and <http://angg.twu.net/>.
#
#######
# «.disambiguation» (to "disambiguation")
# «.cabal-install-2022» (to "cabal-install-2022")
# «.cabal-PATH» (to "cabal-PATH")
# «.stack-cabal-hell» (to "stack-cabal-hell")
# «.cabal-from-git» (to "cabal-from-git")
# «.min-version-base» (to "min-version-base")
# «.deleting-cabal-dirs» (to "deleting-cabal-dirs")
# «.installing-agda» (to "installing-agda")
# «.installing-ghc» (to "installing-ghc")
# «.installing-idris» (to "installing-idris")
# «.ghcup» (to "ghcup")
# «.cabal-update» (to "cabal-update")
# «.installdir» (to "installdir")
# «.list» (to "list")
# «.cabal-init» (to "cabal-init")
# (find-es "haskell" "cabal")
# (find-es "haskell" "cabal-PATH")
https://www.haskell.org/cabal/
#####
#
# disambiguation
# 2022oct08
#
#####
# «disambiguation» (to ".disambiguation")
# The Cabal/Stack Disambiguation Guide:
# https://gist.github.com/merijn/8152d561fb8b011f9313c48d876ceb07
#
# https://packages.debian.org/bullseye/cabal-install
#####
#
# cabal-install-2022
# 2022oct08
#
#####
# «cabal-install-2022» (to ".cabal-install-2022")
# (find-zsh "installeddebs | sort | grep cabal")
# (find-zsh "availabledebs | sort | grep cabal")
# (find-status "cabal-install")
# (find-vldifile "cabal-install.list")
# (find-udfile "cabal-install/")
# (find-man "1 cabal")
# (find-fline "~/.cabal/")
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
# To delete a previous installation:
du -ch ~/.cabal/
rm -Rf ~/.cabal/
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
# sudo apt-get install cabal-install
apti cabal-install
cabal update
cabal install Cabal cabal-install
cabal install hoogle
# (find-esgrep "grep --color=auto -nH --null -e cabal-install *.e")
#####
#
# Adding ~/.cabal/bin/ to my $PATH
# 2022oct08
#
#####
# «cabal-PATH» (to ".cabal-PATH")
# (find-angg ".zshrc" "cabal")
# (find-es "haskell" "cabal-PATH")
# (find-fline "~/.cabal/bin/")
# (find-fline "~/.ghcup/bin/")
#####
#
# Stack vs Cabal and Cabal Hell
# 2021apr24
#
#####
# «stack-cabal-hell» (to ".stack-cabal-hell")
# Build Haskell projects with either cabal or stack:
# https://medium.com/@fommil/why-not-both-8adadb71a5ed
# https://github.com/symbiont-io/jaeger-flamegraph/blob/master/jaeger-flamegraph.cabal
# https://hackage.haskell.org/package/jaeger-flamegraph
# https://www.well-typed.com/blog/2014/09/how-we-might-abolish-cabal-hell-part-1/
# https://www.well-typed.com/blog/2015/01/how-we-might-abolish-cabal-hell-part-2/
#####
#
# Cabal from git
# 2019jun06
#
#####
# «cabal-from-git» (to ".cabal-from-git")
# https://github.com/haskell/cabal/
# https://github.com/haskell/cabal/issues
# (find-git-links "https://github.com/haskell/cabal" "cabal")
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
# rm -Rfv ~/usrc/cabal/
cd ~/usrc/
git clone https://github.com/haskell/cabal
cd ~/usrc/cabal/
git pull
# (find-fline "~/usrc/")
# (find-fline "~/usrc/cabal/")
# (code-c-d "cabal" "~/usrc/cabal/")
# (find-gitk "~/usrc/cabal/")
# (find-cabalfile "")
# (find-cabalfile "README.md")
# (find-cabalfile "bootstrap/")
# (find-cabalfile "oC")
# (find-cabalfile "oc")
# (find-cabalfile "Cabal/Distribution/Parsec.hs")
# (find-cabalfile "Cabal/Distribution/Parsec.hs" "#if !(MIN_VERSION_base(4,13,0))")
apti cabal-install
cd ~/usrc/cabal/
(cd Cabal; cabal install) |& tee oC
(cd cabal-install; cabal install) |& tee oc
aptrm cabal-install
w cabal
laf $(w cabal)
cabal
cabal-install
cd /tmp/
cabal update
cabal install ghc
cabal install --lib ghc
cabal install --lib ghci
w ghci
aptrm ghc
# (find-fline "~/.cabal/config")
# (find-sh "ghc --help")
# (find-sh "ghc --version")
#####
#
# MIN_VERSION_base
# 2019jun06
#
#####
# «min-version-base» (to ".min-version-base")
# http://www.edsko.net/2014/09/13/haskell-cpp-macros/
#if MIN_VERSION_base(4,7,0)
#####
#
# deleting-cabal-dirs
# 2019aug15
#
#####
# «deleting-cabal-dirs» (to ".deleting-cabal-dirs")
# (find-es "agda" "plfa-install")
# (find-fline "~/.ghc/")
# (find-fline "~/.ghc/x86_64-linux-8.0.1/package.conf.d/")
# (find-fline "~/.cabal/")
# (find-fline "~/.cabal/logs/")
# (find-fline "~/.cabal/packages/")
# (find-fline "~/.cabal/packages/hackage.haskell.org/")
# (find-fline "~/.cabal/share/doc/")
# (find-fline "~/.cabal/share/doc/x86_64-linux-ghc-8.0.1/")
# (find-sh "cd ~/.cabal/share/doc/ && find * | sort")
# (find-fline "~/LOGS/2019aug15.hackage")
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
rm -Rfv ~/.cabal/
rm -Rfv ~/.ghc/
#####
#
# Installing Agda
# 2019aug15
#
#####
# «installing-agda» (to ".installing-agda")
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cabal update
cabal install Agda
cabal install alex
cabal install happy
cabal install Agda
#####
#
# installing-ghc
# 2021jan10
#
#####
# «installing-ghc» (to ".installing-ghc")
# https://www.haskell.org/cabal/
# https://www.schoolofhaskell.com/user/simonmichael/how-to-cabal-install
# https://www.schoolofhaskell.com/user/simonmichael/how-to-cabal-install#could-not-resolve-dependencies--cabal-hell
# (find-sh "cabal --version")
# (find-sh "cabal --help")
# (find-sh "cabal list --installed")
* (eepitch-bash)
* (eepitch-kill)
* (eepitch-bash)
function ghc-pkg-reset() {
read -p 'erasing all your user ghc and cabal packages - are you sure (y/n) ? ' ans
test x$ans == xy && ( \
echo 'erasing directories under ~/.ghc'; rm -rf `find ~/.ghc -maxdepth 1 -type d`; \
echo 'erasing ~/.cabal/lib'; rm -rf ~/.cabal/lib; \
# echo 'erasing ~/.cabal/packages'; rm -rf ~/.cabal/packages; \
# echo 'erasing ~/.cabal/share'; rm -rf ~/.cabal/share; \
)
}
ghc-pkg-reset
# Or:
rm -rf ~/.ghc ~/.cabal
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cabal update
cabal install ghc
cabal install ghc --reinstall
cabal install ghci
cabal install ghci --reinstall
cabal install ghci-8.10.2
# (find-sh "cabal help")
# (find-sh "cabal list ghc")
# (find-sh "cabal list ghci")
http://ix.io/2LBD
aptrm ghc
#####
#
# installing-idris
# 2019oct19
#
#####
# «installing-idris» (to ".installing-idris")
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cabal update
cabal install idris
cabal install --force-reinstalls Idris
# cabal install Idris-ct
# cabal install idris-ct
# cabal update
#####
#
# ghcup
# 2021jan25
#
#####
# «ghcup» (to ".ghcup")
# (find-es "ghcup" "2021-jan")
#####
#
# cabal-update
# 2021apr24
#
#####
# «cabal-update» (to ".cabal-update")
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cabal
cabal --help
# (find-sh "cabal --help")
# (find-sh "cabal help update")
cd /tmp/
cabal --verbose=3 update |& tee ocu
# (find-fline "~/.cabal/")
# (find-fline "~/.cabal/packages/")
# (find-fline "~/.cabal/packages/hackage.haskell.org/")
#####
#
# installdir
# 2021jul02
#
#####
# «installdir» (to ".installdir")
/home/edrx/AGDA(edrx:sc)# cabal install Agda
Resolving dependencies...
Build profile: -w ghc-8.8.4 -O1
In order, the following will be built (use -v for more details):
- Agda-2.6.2 (lib:Agda, exe:agda, exe:agda-mode) (requires build)
Starting Agda-2.6.2 (all, legacy fallback)
Building Agda-2.6.2 (all, legacy fallback)
Installing Agda-2.6.2 (all, legacy fallback)
Completed Agda-2.6.2 (all, legacy fallback)
Warning: installdir is not defined. Set it in your cabal config file or use
--installdir=<path>. Using default installdir: "/home/edrx/.cabal/bin"
Symlinking 'agda' to '/home/edrx/.cabal/bin/agda'
Symlinking 'agda-mode' to '/home/edrx/.cabal/bin/agda-mode'
/home/edrx/AGDA(edrx:sc)#
#####
#
# cabal list
# 2022sep19
#
#####
# «list» (to ".list")
# (find-fline "~/LOGS/2022sep19.haskell" "cabal list --installed --package-db=")
# (find-sh "cabal --help")
ghc-pkg --help
#####
#
# cabal-init
# 2022sep20
#
#####
# «cabal-init» (to ".cabal-init")
# https://cabal.readthedocs.io/en/stable/
# https://cabal.readthedocs.io/en/stable/developing-packages.html
# https://cabal.readthedocs.io/en/stable/developing-packages.html#using-cabal-init
# https://cabal.readthedocs.io/en/stable/cabal-commands.html#cabal-repl
# (find-hooglefile "hoogle.cabal" "build-depends:")
# (find-fline "~/LOGS/2022sep20.haskell")
# (find-fline "~/LOGS/2022sep20.haskell" "cabal init")
# (find-fline "~/LOGS/2022sep20.haskell" "<sm> cabal repl does that for you")
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
# (find-fline "/tmp/foo2/")
rm -Rv /tmp/foo2/
mkdir /tmp/foo2/
cd /tmp/foo2/
# cabal init
cabal init --interactive
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
# (find-sh "cabal --help")
# (find-sh "cabal --help" "repl")
cd /tmp/foo2/
cabal repl
# Local Variables:
# coding: utf-8-unix
# ee-anchor-format: "«%s»"
# End: