Instalación de sistemas para I1M 2018-19
Índice
1 Instalación de Lubuntu
1.1 Copiar la imagen
- Copiar la imagen iso de Lubuntu en el ordenador.
cd /tmp wget http://cdimage.ubuntu.com/lubuntu/releases/18.04/release/lubuntu-18.04-alternate-amd64.iso
- Formatear la memoria USB:
- Insertar la memoria USB.
- En "Lugares -> Equipo" hacer click derecho sobre la memoria Usb y seleccionar "Formatear".
- En Tipo -> seleccionar "compatible con todos los sitemas (FAT).
- Abrimos el "Creador de discos de Inicio USB
- En "cd o imagen (.iso) de origen", pulsar en "Otro" y seleccionar la .iso
- En "Disco a usar" detecta la memoria USB.
- Pulsar "Crear Disco de Inicio
1.2 Instalación desde el lápiz
- Arrancar pulsando F2 para poner en el boot de la BIOS que empiece con la USB (poniendo como primera opción UEFI).
1.3 Actualizaciones
- Actualizar soporte de idiomas.
- Ejecutar el administrador de actualizaciones:
sudo apt-get update sudo apt-get upgrade
2 Instalación de Emacs
2.1 Instalar con Synaptic
- emacs: GNU Emacs editor (metapackage)
- emacs25: GNU Emacs editor (with GTK+ GUI support)
2.2 Configurar Emacs
- En inicio,
- seleccionar "Programación/GNU emacs 25 (GUI)"
- pulsar botón derecho
- seleccionar "Propiedades"
- seleccionar la pestaña "Entrada de escritorio"
En "Orden", escribir
/usr/bin/emacs -fn "Liberation Mono" --maximized %F
- En ~/.emacs escribir
;;; Uso de paquetes
(require 'package)
(setq package-archives
'(("gnu" . "http://elpa.gnu.org/packages/")
("marmalade" . "http://marmalade-repo.org/packages/")
("melpa-stable" . "https://stable.melpa.org/packages/")
))
(package-initialize)
;;; Permite buscar en la historia
(setq comint-history-isearch t)
;;; Suprime el mensaje inicial:
(setq inhibit-startup-message t)
;;; No hace sangrado con tabuladores:
(setq-default indent-tabs-mode nil)
;;; Permite la evaluación de expresiones en el mini-buffer:
(put 'eval-expression 'disabled nil) ; M-:
;;; Escribe 79 caracteres por línea:
(setq-default fill-column 79)
;;; No hace copias de seguridad:
(setq backup-inhibited t)
;;; Envía los fichero borrados a la papelera:
(setq delete-by-moving-to-trash t)
;;; Añade una nueva línea al final del fichero
(setq require-final-newline t)
;;; Muestra en la línea del modo la fila y columna del cursor.
(column-number-mode 1) ; en prueba
;;; Completaciones
(dynamic-completion-mode)
;;; Por defecto, en dired no escribe el grupo:
(setq dired-listing-switches "-alGv")
;;; Para poner acentos
(require 'iso-transl)
;;; Para mostrar paréntesis
(show-paren-mode)
;;; Elimina los ecos en la shell
(setq comint-process-echoes t)
;;; Portapapeles
;;; ------------
(menu-bar-enable-clipboard)
(setq x-select-enable-clipboard t)
;;; Pone una región en minúscula
(put 'downcase-region 'disabled nil)
;;; Haskell
;;; =======
(eval-after-load "haskell-mode"
'(progn
(define-key haskell-mode-map (kbd "C-x C-d") nil)
(define-key haskell-mode-map (kbd "C-c C-z") 'haskell-interactive-switch)
(define-key haskell-mode-map (kbd "C-c C-l") 'haskell-process-load-file)
(define-key haskell-mode-map (kbd "C-c C-b") 'haskell-interactive-switch)
(define-key haskell-mode-map (kbd "C-c C-t") 'haskell-process-do-type)
(define-key haskell-mode-map (kbd "C-c C-i") 'haskell-process-do-info)
(define-key haskell-mode-map (kbd "C-c M-.") nil)
(define-key haskell-mode-map (kbd "C-c C-d") nil)))
(add-hook 'haskell-mode-hook
'(lambda ()
(turn-on-auto-fill)
(setq fill-column 79
haskell-process-show-debug-tips nil
haskell-ask-also-kill-buffer nil
haskell-process-suggest-language-pragmas nil
haskell-process-suggest-no-warn-orphans nil
haskell-process-suggest-overloaded-strings nil
)
))
;;; Maxima
;;; ======
(autoload 'maxima-mode "maxima" "Maxima mode" t)
(autoload 'imaxima "imaxima" "Frontend for maxima with Image support" t)
(autoload 'maxima "maxima" "Maxima interaction" t)
(autoload 'imath-mode "imath" "Imath mode for math formula input" t)
(setq imaxima-use-maxima-mode-flag t)
(add-to-list 'auto-mode-alist '("\\.ma[cx]" . maxima-mode))
(add-hook 'maxima-mode-hook
'(lambda ()
(turn-on-auto-fill)
(setq fill-column 79)
))
;;; Variables de configuración
;;; ==========================
(custom-set-variables
;; custom-set-variables was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
)
(custom-set-faces
;; custom-set-faces was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
'(default ((t (:family "Liberation Mono"
:foundry "1ASC"
:slant normal
:weight normal
:height 180
:width normal)))))
3 Instalación de Gnuplot
- Instalar con Synaptic
- gnuplot: Command-line driven interactive plotting program
4 Instalación de Haskell
4.1 Desinstalar versiones anteriores
- Buscar los paquetes instalados de Haskell
dpkg --list | grep Haskell
- Desinstalar los paquetes instalados de Haskell
sudo apt-get --purge remove alex cabal-install doctest ghc happy haskell-platform haskell-stack hlint hscolour sudo apt autoremove
- Comprobar que todos los paquetes de Haskell se han borrado
dpkg --list | grep Haskell
4.2 Instalar ghc
sudo apt-get install ghc sudo apt-get remove ghc
4.3 Instalar la plataforma Haskell
cd /tmp wget https://haskell.org/platform/download/8.4.3/haskell-platform-8.4.3-unknown-posix--core-x86_64.tar.gz tar xf haskell-platform-8.4.3-unknown-posix--core-x86_64.tar.gz sudo ./install-haskell-platform.sh
- Instalar el modo Haskell de Emacs
sudo apt-get install haskell-mode
5 Instalación de las librerías usadas en I1M
- Borrar las librerías de Haskell
rm -rf ~/.cabal ~/.ghc
- Actualizar cabal
cabal update
Crea el directorio ~/.cabal
- Instalar las librerías usadas en I1M
cabal install gnuplot matrix primes QuickCheck vector
Las librerías se instalan en ~/.cabal/lib/x86_64-linux-ghc-8.4.3 y en
~/.ghc/x86_64-linux-ghc-8.4.3
6 Instalación de la librería de I1M
- Instalar la librería de I1M
cd /tmp wget http://github.com/jaalonso/I1M/archive/master.zip . unzip master.zip cd I1M-master cabal install I1M.cabal
Se instala I1M-17.9.10.0 en ~/.cabal/lib/x86_64-linux-ghc-8.4.3
7 Instalación de Maxima
- Instalar con Synaptic
- maxima: Computer algebra system
- maxima-emacs: Computer algebra system – emacs interface
- maxima-src: Computer algebra system – source code
- maxima-test: Computer algebra system – test suite
- wxmaxima: GUI for the computer algebra system Maxima
8 Instalación de Isabelle
- Cambiar al directorio lib:
cd /usr/local/lib
- Importar y descomprimir Isabelle2017
sudo su wget -nd http://www.cl.cam.ac.uk/research/hvg/Isabelle/dist/Isabelle2017_app.tar.gz tar xfz Isabelle2017_app.tar.gz rm Isabelle2017_app.tar.gz
Crea el directorio Isabelle2017
- Enlazar el directorio Isabelle2017 a Isabelle
ln -s Isabelle2017 Isabelle
- Enlazar los ficheros de
Isabelle/bina/usr/local/bin
ln -s /usr/local/lib/Isabelle/bin/* /usr/local/bin
- Probar Isabelle:
exit cd isabelle jedit
Genera las teorías
Crear un lanzador:
- Crear el fichero
isabelle.desktopejecutando en una terminal
sudo emacs /usr/share/applications/isabelle.desktop
- En el fichero
isabelle.desktopescribir
[Desktop Entry] Name=Isabelle Comment=Isabelle Exec=/usr/local/bin/isabelle jedit Icon=/usr/local/lib/Isabelle/lib/logo/isabelle_hol.gif Terminal=false Type=Application Categories=Utility;Development;
Aparece en el botón de inicio en la sección "Programación"
- Crear el fichero
9 Lanzadores
- Se puede añadir al escritorio lanzadores de las aplicaciones del botón de inicio seleccionándolas y pulsando el botón derecho y elegir "Añadir al escritorio".