Isto amosa as diferenzas entre a revisión seleccionada e a versión actual da páxina.
Revisión previa | |||
— | gl:guias:debian_jessie_post_instalacion [2021/04/16 20:41] (actual) – edición externa 127.0.0.1 | ||
---|---|---|---|
Liña 1: | Liña 1: | ||
+ | ====== Debian Jessie, post instalación ====== | ||
+ | |||
+ | __TRABALLO EN MARCHA NON ESTÁ REMATADA A VERSIÓN EN GALEGO__ | ||
+ | |||
+ | ===== Introducción ===== | ||
+ | |||
+ | O meu portátil é un ordenador Acer 5755G coas siguientes características: | ||
+ | |||
+ | * Core i5 2430M 2.4GHz | ||
+ | * NVIDIA Geforce GT 540M | ||
+ | * 8Gb RAM | ||
+ | * 750Gb HD | ||
+ | |||
+ | Meu portátil equipa unha tarxeta _Nvidia Geforce GT540M_ que resulta pertencer a unha pola morta na árbore de desenrolo de Nvidia. | ||
+ | |||
+ | A gráfica é unha Nvidia Optimus, unha tarxeta híbrida que traballaba perfectamente en Ubuntu 14.04 usando Bumblebee. | ||
+ | |||
+ | No upgrade a Ubuntu **Xenial Xerus** | ||
+ | |||
+ | Ademais atopei problemas insolubles (para min) na instalación do Virtual Box así que decidín voltar a Debian. | ||
+ | |||
+ | Para facer a actualización do sistema optei por desinstalar o dvd e montar no seu sitio un disco SSD nun Caddie para Acer. A instalación foi moi doada, e ainda que o portátil arranca perfectamente de cualquera dos dous discos, finalmente optei por instalar o SSD na bahía interna do HD orixinal e pasar o HD orixinal ao caddie. | ||
+ | |||
+ | Unha vez instalado o novo sistema operativo, o primeiro foi a instalación do Bumblebee para probar que funcionaba normalmente. | ||
+ | |||
+ | < | ||
+ | sudo apt-get install firmware-linux-nonfree Bumblebee-nvidia primus | ||
+ | </ | ||
+ | |||
+ | ===== Cambiar as opcións do idioma ===== | ||
+ | |||
+ | Executamos: | ||
+ | |||
+ | < | ||
+ | sudo dpkg-reconfigure locales | ||
+ | </ | ||
+ | |||
+ | Despois só teremos que cambiar a selección do idioma na configuración de Gnome. | ||
+ | |||
+ | Tra-la reconfiguración teremos que rearrancar Gnome y renomeará todos-los directorios do sistema. | ||
+ | |||
+ | |||
+ | ===== Xestión de paquetes ===== | ||
+ | |||
+ | Instalamos // | ||
+ | |||
+ | < | ||
+ | sudo apt-get install aptitude | ||
+ | sudo apt-get install synaptic | ||
+ | sudo apt-get install gdebi | ||
+ | </ | ||
+ | |||
+ | Cambiamos as opcións de // | ||
+ | |||
+ | ==== Quitamos o cdrom dos sources.list ==== | ||
+ | |||
+ | Editamos o ficheiro /// | ||
+ | |||
+ | |||
+ | ==== Habilitamos os backports e multimedia ==== | ||
+ | |||
+ | === Backports: === | ||
+ | |||
+ | < | ||
+ | sudo cat> / | ||
+ | # backports | ||
+ | deb http:// | ||
+ | EOF | ||
+ | </ | ||
+ | |||
+ | === Multimedia: === | ||
+ | |||
+ | < | ||
+ | sudo cat>> / | ||
+ | # multimedia | ||
+ | deb http:// | ||
+ | EOF | ||
+ | |||
+ | sudo apt-get -y --allow-unauthenticated install --reinstall deb-multimedia-keyring | ||
+ | </ | ||
+ | |||
+ | E actualizamos: | ||
+ | |||
+ | < | ||
+ | sudo aptitude update | ||
+ | </ | ||
+ | |||
+ | ===== Instalación de varios paquetes útiles ===== | ||
+ | |||
+ | ==== Programas de utilidade e uso frecuente ==== | ||
+ | |||
+ | === Menulibre === | ||
+ | |||
+ | Un editor de menús para Gnome, poderemos xerar os arquivos desktop para cualquera aplicación. Moito mais completo que // | ||
+ | |||
+ | < | ||
+ | sudo apt-get install menulibre | ||
+ | </ | ||
+ | |||
+ | === Terminator === | ||
+ | |||
+ | Terminator é un emulador de terminal moi completo y moi flexible. Instalaremolos dende // | ||
+ | |||
+ | < | ||
+ | sudo aptitude install terminator python-keybinder | ||
+ | </ | ||
+ | |||
+ | === Keepass2 === | ||
+ | |||
+ | Instalado // | ||
+ | |||
+ | < | ||
+ | sudo aptitude install keepass2 | ||
+ | </ | ||
+ | |||
+ | === gksu === | ||
+ | |||
+ | Un //sudo// en modo gráfico: | ||
+ | |||
+ | < | ||
+ | sudo aptitude install gksu | ||
+ | </ | ||
+ | |||
+ | **Moi importante** executar '' | ||
+ | |||
+ | === Diskmanager === | ||
+ | |||
+ | Para xestionar discos portátiles, | ||
+ | |||
+ | < | ||
+ | sudo apt-get install ntfs-3g disk-manager | ||
+ | </ | ||
+ | === Gnucash === | ||
+ | |||
+ | Finanzas en linux | ||
+ | |||
+ | < | ||
+ | sudo apt-get -t jessie-backports install gnucash | ||
+ | </ | ||
+ | |||
+ | === Ferramentas sync === | ||
+ | |||
+ | Facede sempre // | ||
+ | |||
+ | < | ||
+ | sudo apt-get install rsync grsync | ||
+ | </ | ||
+ | |||
+ | === Dropbox === | ||
+ | |||
+ | Baixado o paquete Debian dende a páxina [[https:// | ||
+ | |||
+ | === Compresores et al === | ||
+ | |||
+ | < | ||
+ | sudo apt-get install rar unrar zip unzip unace bzip2 lzop p7zip p7zip-full p7zip-rar | ||
+ | </ | ||
+ | |||
+ | === Freeplane === | ||
+ | |||
+ | Mellor que [[http:// | ||
+ | |||
+ | === Telegram desktop === | ||
+ | |||
+ | O cliente de mensaxería de Telegram. Descarregado dende a web, instalado en //~/apps// | ||
+ | |||
+ | ===== Internet ===== | ||
+ | |||
+ | ==== Chrome y Chromium ==== | ||
+ | |||
+ | Instalado o Chrome engadindo as fontes e executando // | ||
+ | |||
+ | No ficheiro /// | ||
+ | |||
+ | < | ||
+ | ### | ||
+ | ### | ||
+ | ### | ||
+ | ### | ||
+ | ### THIS FILE IS AUTOMATICALLY CONFIGURED ### | ||
+ | # You may comment out this entry, but any other modifications may be lost. | ||
+ | deb [arch=amd64] http:// | ||
+ | </ | ||
+ | |||
+ | |||
+ | Para instalar executamos: | ||
+ | |||
+ | < | ||
+ | sudo aptitude install google-chrome-stable | ||
+ | sudo aptitude install chromium | ||
+ | </ | ||
+ | |||
+ | ==== Tor ==== | ||
+ | |||
+ | Baixado o //zip// dende a [[https:// | ||
+ | |||
+ | O ficheiro desktop, | ||
+ | |||
+ | ==== openvpn ==== | ||
+ | |||
+ | Baseado na web [[https:// | ||
+ | |||
+ | Ainda non rematei a configuración. | ||
+ | |||
+ | |||
+ | ==== Deluge ==== | ||
+ | |||
+ | A miña aplicación preferida para descarregar // | ||
+ | |||
+ | Instalamos dende aptitude | ||
+ | |||
+ | < | ||
+ | sudo aptitude install deluge | ||
+ | xdg-mime default deluge.desktop x-scheme-handler/ | ||
+ | </ | ||
+ | |||
+ | ==== TiddlyDesktop ==== | ||
+ | |||
+ | //Tiddly// é unha wiki auto-contida e moi flexible, ten unha morea de versións, adaptadas para diferentes usos. Usoa dende fai uns anos como caderno de bitácora persoal, pero non estaba a seguir a sua evolución. | ||
+ | |||
+ | Descarreguei: | ||
+ | |||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | |||
+ | Ademáis instalei a aplicación | ||
+ | |||
+ | Como facemos sempre descomprimimos en //~/apps// e creamos un lanzador con // | ||
+ | |||
+ | |||
+ | |||
+ | ===== Gráficos ===== | ||
+ | |||
+ | ==== Inkscape ==== | ||
+ | |||
+ | O programa libre para creación e edición de gráficos vectoriais. | ||
+ | |||
+ | < | ||
+ | apt-cache policy inkscape | ||
+ | apt-get -t jessie-backports install inkscape | ||
+ | aptitude install ink-generator | ||
+ | </ | ||
+ | ==== LibreCAD e FreeCAD ==== | ||
+ | |||
+ | Imprescidibles para a creación e diseño en 2D e 3D. | ||
+ | |||
+ | Instalado dende os repos con aptitude | ||
+ | |||
+ | < | ||
+ | apt-get install librecad | ||
+ | |||
+ | apt-get -t jessie-backports install freecad | ||
+ | </ | ||
+ | ==== Gimp ==== | ||
+ | |||
+ | O programa libre por excelencia de edición e retocado de imáxenes. | ||
+ | |||
+ | Gimp xa estaba instalado por defecto, instalamos ademais o gimp data-extra | ||
+ | |||
+ | < | ||
+ | sudo aptitude install gimp-plugin-registry gimp-texturize gimp-data-extras gimp-gap | ||
+ | |||
+ | </ | ||
+ | ==== Shutter ==== | ||
+ | |||
+ | Un programa de captura de pantallas que permite editalas rápidamente: | ||
+ | |||
+ | < | ||
+ | sudo aptitude install shutter libgoo-canvas-perl | ||
+ | </ | ||
+ | |||
+ | ==== Pencil ==== | ||
+ | |||
+ | É unha aplicación java para facer bocetos de páxinas web, probablemente non a necesitas. | ||
+ | |||
+ | Descarregar a derradeira versión (paquete Debian) dende [[http:// | ||
+ | |||
+ | ==== Fotografía ==== | ||
+ | |||
+ | === Rawtherapee y Darktable: Tratamiento de imágenes fotogŕaficas === | ||
+ | |||
+ | Se gostas da fotografía e/ou tes unha cámara reflex precisas probar estas aplicacións. | ||
+ | |||
+ | < | ||
+ | sudo aptitude install icc-profiles icc-profiles-free | ||
+ | sudo aptitude install rawtherapee darktable | ||
+ | </ | ||
+ | |||
+ | === Stopmotion === | ||
+ | |||
+ | Para facer pelis de // | ||
+ | |||
+ | < | ||
+ | sudo aptitude install stopmotion vgrabbj dvgrab | ||
+ | </ | ||
+ | TODO: Probar qStopmotion | ||
+ | |||
+ | ==== Audio e video ==== | ||
+ | |||
+ | === Codecs === | ||
+ | |||
+ | Instalamos os codecs | ||
+ | |||
+ | < | ||
+ | sudo apt-get install libav-tools | ||
+ | |||
+ | sudo apt-get install faad gstreamer0.10-ffmpeg gstreamer0.10-x \ | ||
+ | gstreamer0.10-fluendo-mp3 gstreamer0.10-plugins-base \ | ||
+ | gstreamer0.10-plugins-good gstreamer0.10-plugins-bad \ | ||
+ | gstreamer0.10-plugins-ugly ffmpeg lame twolame vorbis-tools \ | ||
+ | libquicktime2 libfaac0 libmp3lame0 libxine2-all-plugins libdvdread4 \ | ||
+ | libdvdnav4 libmad0 sox libxvidcore4 libstdc++5 | ||
+ | |||
+ | sudo apt-get install w64codecs | ||
+ | </ | ||
+ | |||
+ | === Reproductores de música === | ||
+ | |||
+ | Instalamos // | ||
+ | |||
+ | < | ||
+ | sudo aptitude install clementine gstreamer0.10-plugins-bad | ||
+ | sudo aptitude install decibel-audio-player audacity soundconverter | ||
+ | </ | ||
+ | |||
+ | === Gpodder === | ||
+ | |||
+ | Instalamos //gpodder// para xestionar os nosos podcast, ainda que non é imprescindible, | ||
+ | |||
+ | < | ||
+ | sudo aptitude install gpodder | ||
+ | </ | ||
+ | |||
+ | === Spotify === | ||
+ | |||
+ | Cliente de // | ||
+ | |||
+ | < | ||
+ | sudo apt-key adv --keyserver hkp:// | ||
+ | echo deb http:// | ||
+ | sudo aptitude update | ||
+ | sudo aptitude install spotify-client | ||
+ | </ | ||
+ | === Video === | ||
+ | |||
+ | Instalamos utilidades de video: | ||
+ | |||
+ | < | ||
+ | sudo aptitude install vlc browser-plugin-vlc | ||
+ | sudo aptitude install recordmydesktop gtk-recordmydesktop | ||
+ | sudo aptitude install vokoscreen | ||
+ | sudo aptitude install handbrake handbrake-cli handbrake-gtk | ||
+ | </ | ||
+ | |||
+ | ===== Seguridade ===== | ||
+ | ==== Lector de DNIe ==== | ||
+ | |||
+ | |||
+ | Para poder traballar co noso DNI electrónico, | ||
+ | |||
+ | < | ||
+ | sudo aptitude libccid install pcscd pcsc-tools | ||
+ | </ | ||
+ | Como root ejecutamos // | ||
+ | )): | ||
+ | |||
+ | < | ||
+ | root@rasalhague: | ||
+ | PC/SC device scanner | ||
+ | V 1.4.23 (c) 2001-2011, Ludovic Rousseau < | ||
+ | Compiled with PC/SC lite version: 1.8.11 | ||
+ | Using reader plug'n play mechanism | ||
+ | Scanning present readers... | ||
+ | Waiting for the first reader... | ||
+ | </ | ||
+ | Se insertamos o lector de DNIe veremos algo coma esto: | ||
+ | |||
+ | < | ||
+ | root@rasalhague: | ||
+ | PC/SC device scanner | ||
+ | V 1.4.23 (c) 2001-2011, Ludovic Rousseau < | ||
+ | Compiled with PC/SC lite version: 1.8.11 | ||
+ | Using reader plug'n play mechanism | ||
+ | Scanning present readers... | ||
+ | Waiting for the first reader...found one | ||
+ | Scanning present readers... | ||
+ | 0: C3PO LTC31 v2 (11061005) 00 00 | ||
+ | |||
+ | Wed Jan 25 01:17:20 2017 | ||
+ | Reader 0: C3PO LTC31 v2 (11061005) 00 00 | ||
+ | Card state: Card removed, | ||
+ | </ | ||
+ | |||
+ | De novo, se insertamos un DNI veremos que se lé a información da tarxeta insertada: | ||
+ | |||
+ | < | ||
+ | Reader 0: C3PO LTC31 v2 (11061005) 00 00 | ||
+ | Card state: Card inserted, | ||
+ | y mas rollo | ||
+ | </ | ||
+ | |||
+ | Instalamos agora: | ||
+ | |||
+ | < | ||
+ | aptitude install pinentry-gtk2 opensc | ||
+ | </ | ||
+ | |||
+ | ==== Wire ==== | ||
+ | |||
+ | Un cliente seguro de mensaxeria. | ||
+ | |||
+ | < | ||
+ | sudo aptitude install apt-transport-https | ||
+ | wget -q https:// | ||
+ | echo "deb https:// | ||
+ | sudo aptitude update | ||
+ | sudo aptitude install wire-desktop | ||
+ | </ | ||
+ | ===== Documentos ===== | ||
+ | |||
+ | ==== Calibre ==== | ||
+ | |||
+ | O mellor programa para xestionar libros electrónicos. | ||
+ | |||
+ | Executamos os comandos suxeridos na páxina web: | ||
+ | |||
+ | < | ||
+ | sudo -v && wget -nv -O- https:// | ||
+ | | sudo python -c " | ||
+ | </ | ||
+ | |||
+ | Para usar o Calibre co Kobo Glo: | ||
+ | |||
+ | * Desactivamos todo-los plugin de Kobo excepto o //Kobo Touch Extended// | ||
+ | * Creamos unha columna // | ||
+ | * Nas opcións do plugin: | ||
+ | * Na opción // | ||
+ | * Marcamos as opcións //Create collections// | ||
+ | * //Update metadata on device// e //Set series information// | ||
+ | |||
+ | Alguns enlaces útiles: | ||
+ | |||
+ | * https:// | ||
+ | * http:// | ||
+ | * http:// | ||
+ | * https:// | ||
+ | |||
+ | ==== Pandoc ==== | ||
+ | |||
+ | Pandoc é un traductor entre formatos de documento. Está escrito en Python e é incriblemente útil. De feito, este documento está escrito usando o //Pandoc//. | ||
+ | |||
+ | Instalado o Pandoc descarregando o paquete //deb// dende a páxina web do proxecto Pandoc. | ||
+ | |||
+ | Descargamos las plantillas desde [[https:// | ||
+ | |||
+ | < | ||
+ | cd ~/.pandoc | ||
+ | git clone https:// | ||
+ | </ | ||
+ | ==== Zotero ==== | ||
+ | |||
+ | Zotero é un programa que permite manter unha ou varias bibliografías con referencias a libros, páxinas web ou documentos electrónicos. | ||
+ | |||
+ | Instalado o Zotero Standalone dende a [[https:// | ||
+ | |||
+ | ==== Vanilla LaTeX ==== | ||
+ | |||
+ | O LaTeX do Debian está un pouquiño anticuado, se queres usar unha versión actualizada terás que aplicar [[http:// | ||
+ | |||
+ | < | ||
+ | cd ~ | ||
+ | mkdir tmp | ||
+ | cd tmp | ||
+ | wget http:// | ||
+ | tar xzf install-tl-unx.tar.gz | ||
+ | cd install-tl-xxxxxx | ||
+ | </ | ||
+ | A parte xxxxxx varía en función do estado da derradeira versión do LaTeX dispoñible. | ||
+ | |||
+ | < | ||
+ | sudo ./ | ||
+ | </ | ||
+ | Unha vez lanzada a instalación poderemos desmarcar as opcións que instalan a documentación e as fontes. Teremos que consultar a documentación //on line// pero aforraranos prácticamente o 50% do espacio necesario. No meu caso sen //doc// nin //src// ocupa 2,3Gb | ||
+ | |||
+ | < | ||
+ | mkdir -p /opt | ||
+ | sudo ln -s / | ||
+ | </ | ||
+ | |||
+ | Para rematar a instalación engadimos **/ | ||
+ | |||
+ | === Falsificando paquetes === | ||
+ | |||
+ | Xa temos o **texlive** instalado, agora precisamos que o xestor de paquetes o rexistre como instalado. | ||
+ | |||
+ | < | ||
+ | sudo apt-get install equivs --no-install-recommends | ||
+ | mkdir -p / | ||
+ | equivs-control texlive-local | ||
+ | </ | ||
+ | Para facelo mais doado podemos descarregar un ficheiro xa preparado, executando: | ||
+ | |||
+ | < | ||
+ | wget http:// | ||
+ | /bin/cp -f debian-equivs-2015-ex.txt texlive-local | ||
+ | </ | ||
+ | Editamos a versión e | ||
+ | |||
+ | < | ||
+ | equivs-build texlive-local | ||
+ | sudo dpkg -i texlive-local_2015-1_all.deb | ||
+ | </ | ||
+ | Todo listo, agora podemos instalar cualquer paquete que dependa de //texlive// | ||
+ | |||
+ | === Fontes === | ||
+ | |||
+ | Para deixar dispoñibles as fuentes opentype y truetype que veñen con //texlive// para o resto de aplicacións: | ||
+ | |||
+ | < | ||
+ | sudo cp $(kpsewhich -var-value TEXMFSYSVAR)/ | ||
+ | gksudo gedit / | ||
+ | </ | ||
+ | Borramos a línea: | ||
+ | |||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | E executamos: | ||
+ | |||
+ | < | ||
+ | sudo fc-cache -fsv | ||
+ | </ | ||
+ | === Actualizacións === | ||
+ | |||
+ | Para actualizar o noso latex á derradeira versión de todo-los paquetes: | ||
+ | |||
+ | < | ||
+ | sudo / | ||
+ | sudo / | ||
+ | </ | ||
+ | Tamén podemos lanzar o instalador gráfico con: | ||
+ | |||
+ | < | ||
+ | sudo / | ||
+ | </ | ||
+ | Para usar o instalador gráfico hai que instalar previamente: | ||
+ | |||
+ | < | ||
+ | sudo apt-get install perl-tk --no-install-recommends | ||
+ | </ | ||
+ | === Lanzador para o actualizador de texlive === | ||
+ | |||
+ | < | ||
+ | mkdir -p ~/ | ||
+ | /bin/rm ~/ | ||
+ | cat > ~/ | ||
+ | [Desktop Entry] | ||
+ | Version=1.0 | ||
+ | Name=TeX Live Manager | ||
+ | Comment=Manage TeX Live packages | ||
+ | GenericName=Package Manager | ||
+ | Exec=gksu -d -S -D "TeX Live Manager" | ||
+ | Terminal=false | ||
+ | Type=Application | ||
+ | Icon=system-software-update | ||
+ | EOF | ||
+ | </ | ||
+ | Ollo! Hai que deixar instalado o gksu (ainda que debería estar de antes se sigues este doc) | ||
+ | |||
+ | < | ||
+ | sudo aptitude install gksu | ||
+ | </ | ||
+ | ==== Emacs ==== | ||
+ | |||
+ | Emacs: o mellor editor. | ||
+ | |||
+ | Instalado emacs dende os repos: | ||
+ | |||
+ | < | ||
+ | sudo aptitude install emacs | ||
+ | </ | ||
+ | Instalamos los paquetes // | ||
+ | |||
+ | Como estou a aprender a linguaxe de programación D, instalamos tamén //d-mode// y // | ||
+ | |||
+ | Despois de probar //flymake// e // | ||
+ | |||
+ | Configuramos o ficheiro //.emacs// definindo algunhas preferencias, | ||
+ | |||
+ | < | ||
+ | (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. | ||
+ | ) | ||
+ | |||
+ | ;; | ||
+ | ;; Some settings | ||
+ | (setq inhibit-startup-message t) ; Eliminate FSF startup msg | ||
+ | (setq frame-title-format " | ||
+ | ;(setq visible-bell t) ; Flash instead of beep | ||
+ | (set-scroll-bar-mode ' | ||
+ | (show-paren-mode t) ; Blinking cursor shows matching parentheses | ||
+ | (setq column-number-mode t) ; Show column number of current cursor location | ||
+ | (mouse-wheel-mode t) ; wheel-mouse support | ||
+ | |||
+ | (setq fill-column 78) | ||
+ | (setq auto-fill-mode t) ; Set line width to 78 columns... | ||
+ | |||
+ | (setq-default indent-tabs-mode nil) ; Insert spaces instead of tabs | ||
+ | (global-set-key " | ||
+ | ; | ||
+ | ;(require ' | ||
+ | |||
+ | |||
+ | ;; | ||
+ | ;; Some useful key definitions | ||
+ | (define-key global-map [M-S-down-mouse-3] ' | ||
+ | (global-set-key [C-tab] ' | ||
+ | (global-set-key [C-kp-subtract] ' | ||
+ | (global-set-key [C-kp-multiply] ' | ||
+ | (global-set-key [C-kp-add] ' | ||
+ | (global-set-key [C-kp-divide] ' | ||
+ | (global-set-key [C-kp-decimal] ' | ||
+ | (global-set-key [C-M-prior] ' | ||
+ | (global-set-key [C-M-next] ' | ||
+ | |||
+ | ;; | ||
+ | ;; Set encoding | ||
+ | (prefer-coding-system ' | ||
+ | (setq coding-system-for-read ' | ||
+ | (setq coding-system-for-write ' | ||
+ | |||
+ | ;; | ||
+ | ;; Maximum colors | ||
+ | (cond ((fboundp ' | ||
+ | | ||
+ | (setq font-lock-maximum-decoration t))) ; Maximum colors | ||
+ | |||
+ | ;; | ||
+ | ;; Use % to match various kinds of brackets... | ||
+ | ;; See: http:// | ||
+ | |||
+ | (global-set-key " | ||
+ | (defun match-paren (arg) | ||
+ | "Go to the matching paren if on a paren; otherwise insert %." | ||
+ | (interactive " | ||
+ | (let ((prev-char (char-to-string (preceding-char))) | ||
+ | (next-char (char-to-string (following-char)))) | ||
+ | (cond ((string-match " | ||
+ | ((string-match " | ||
+ | (t (self-insert-command (or arg 1)))))) | ||
+ | |||
+ | ;; | ||
+ | ;; The wonderful bubble-buffer | ||
+ | (defvar LIMIT 1) | ||
+ | (defvar time 0) | ||
+ | (defvar mylist nil) | ||
+ | |||
+ | (defun time-now () | ||
+ | (car (cdr (current-time)))) | ||
+ | |||
+ | (defun bubble-buffer () | ||
+ | | ||
+ | (if (or (> (- (time-now) time) LIMIT) (null mylist)) | ||
+ | | ||
+ | (delq (get-buffer " *Minibuf-0*" | ||
+ | (delq (get-buffer " *Minibuf-1*" | ||
+ | | ||
+ | (setq mylist (cdr mylist)) | ||
+ | (setq newtop (car mylist)) | ||
+ | | ||
+ | (setq rest (cdr (copy-alist mylist))) | ||
+ | | ||
+ | | ||
+ | (setq rest (cdr rest))) | ||
+ | (setq time (time-now))) | ||
+ | |||
+ | (global-set-key [f8] ' | ||
+ | |||
+ | (defun geosoft-kill-buffer () | ||
+ | ;; Kill default buffer without the extra emacs questions | ||
+ | | ||
+ | | ||
+ | | ||
+ | (global-set-key [C-delete] ' | ||
+ | |||
+ | ;; | ||
+ | ;; MELPA and others | ||
+ | (when (>= emacs-major-version 24) | ||
+ | (require ' | ||
+ | (package-initialize) | ||
+ | (add-to-list ' | ||
+ | (add-to-list ' | ||
+ | (add-to-list ' | ||
+ | ) | ||
+ | |||
+ | ; (add-to-list ' | ||
+ | |||
+ | ;; | ||
+ | ;; Packages installed via package | ||
+ | ;; | ||
+ | |||
+ | ;; | ||
+ | ;; flymake and flycheck installed from package | ||
+ | ;; I think you have to choose only one | ||
+ | |||
+ | ;; (require ' | ||
+ | ;; ;; | ||
+ | ;; (global-set-key (kbd "C-c d") ' | ||
+ | ;; (global-set-key (kbd "C-c n") ' | ||
+ | ;; (global-set-key (kbd "C-c p") ' | ||
+ | |||
+ | (add-hook ' | ||
+ | (global-set-key | ||
+ | (global-set-key | ||
+ | |||
+ | ;; Define d-mode addons | ||
+ | ;; Activate flymake or flycheck for D | ||
+ | ;; Activate auto-complete-mode | ||
+ | ;; Activate yasnippet minor mode if available | ||
+ | ;; Activate dcd-server | ||
+ | (require ' | ||
+ | (add-hook ' | ||
+ | (lambda() | ||
+ | ;; | ||
+ | (flycheck-dmd-dub-set-variables) | ||
+ | (require ' | ||
+ | (setup-flycheck-d-unittest) | ||
+ | (auto-complete-mode t) | ||
+ | (when (featurep ' | ||
+ | (yas-minor-mode-on)) | ||
+ | (ac-dcd-maybe-start-server) | ||
+ | (ac-dcd-add-imports) | ||
+ | (add-to-list ' | ||
+ | (define-key d-mode-map (kbd "C-c ?") ' | ||
+ | (define-key d-mode-map (kbd "C-c .") ' | ||
+ | (define-key d-mode-map (kbd "C-c ,") ' | ||
+ | (define-key d-mode-map (kbd "C-c s") ' | ||
+ | (when (featurep ' | ||
+ | (add-to-list ' | ||
+ | | ||
+ | (add-to-list ' | ||
+ | | ||
+ | (add-to-list ' | ||
+ | | ||
+ | |||
+ | ;; Define diet template mode (this is not installed from package) | ||
+ | (add-to-list ' | ||
+ | (add-hook ' | ||
+ | (lambda() | ||
+ | (setq tab-width 2) | ||
+ | (setq whitespace-line-column 250) | ||
+ | (setq indent-tabs-mode nil) | ||
+ | (setq indent-line-function ' | ||
+ | |||
+ | ;; | ||
+ | ;; elpy | ||
+ | (elpy-enable) | ||
+ | </ | ||
+ | |||
+ | ==== Textadept ==== | ||
+ | Un potente editor de desenrolo, multiplataforma. | ||
+ | |||
+ | Ven incluido no pack D-apt, por que é moi potente como IDE para o D. | ||
+ | |||
+ | Ata agora só configurei a fonte, para facelo editamos o ficheiro ~/ | ||
+ | |||
+ | < | ||
+ | ui.set_theme(' | ||
+ | </ | ||
+ | ==== Scribus ==== | ||
+ | |||
+ | Scribus e un programa libre de composición de documentos. con Scribus podes elaborar dende os folletos dunha exposición ata unha revista ou un poster. | ||
+ | |||
+ | Instalado con aptitude | ||
+ | |||
+ | < | ||
+ | sudo aptitude install scribus | ||
+ | </ | ||
+ | ==== Comix ==== | ||
+ | |||
+ | O meu preferido para leer comics. | ||
+ | |||
+ | Instalado con aptitude | ||
+ | |||
+ | < | ||
+ | sudo aptitude install comix | ||
+ | </ | ||
+ | ===== Desenrolo Software ===== | ||
+ | |||
+ | ==== Paquetes esenciais ==== | ||
+ | |||
+ | Estos son os paquetes imprescindibles para desenrolo software en linux | ||
+ | |||
+ | < | ||
+ | sudo apt-get install build-essential checkinstall make automake cmake autoconf git git-core dpkg wget | ||
+ | </ | ||
+ | ==== Git ==== | ||
+ | |||
+ | Imprescindible. | ||
+ | |||
+ | Instalado git dende aptitude | ||
+ | |||
+ | < | ||
+ | sudo aptitude install git | ||
+ | </ | ||
+ | |||
+ | Configuración básica de **git**, evidentemente tes que cambiar o correo e o nome de usuario | ||
+ | |||
+ | < | ||
+ | git config --global user.name " | ||
+ | git config --global user.email " | ||
+ | git config --global core.editor emacs | ||
+ | git config --global color.ui true | ||
+ | git config --global credential.helper cache | ||
+ | git config --global credential.helper 'cache --timeout=7200' | ||
+ | git config --global push.default simple | ||
+ | git config --global alias.sla 'log --oneline --decorate --graph --all' | ||
+ | git config --global alias.car ' | ||
+ | git config --global alias.unstage reset | ||
+ | git config --global alias.st status | ||
+ | git config --global alias.last | ||
+ | git config --global alias.ca ' | ||
+ | </ | ||
+ | |||
+ | ==== Open Java ==== | ||
+ | |||
+ | Teremos que usar Java para executar varios programas, preferimos a versión aberta. | ||
+ | |||
+ | < | ||
+ | apt-get install openjdk-7-jre icedtea-7-plugin | ||
+ | </ | ||
+ | |||
+ | ==== Linguaxe de programación D (D programming language) ==== | ||
+ | |||
+ | |||
+ | [[https:// | ||
+ | |||
+ | === D-apt e instalación de programas === | ||
+ | |||
+ | Configurado [[http:// | ||
+ | |||
+ | < | ||
+ | sudo wget http:// | ||
+ | sudo apt-get update && sudo apt-get -y --allow-unauthenticated install --reinstall d-apt-keyring && sudo apt-get update | ||
+ | </ | ||
+ | Instalamos todo-los programas asociados. | ||
+ | |||
+ | < | ||
+ | sudo aptitude install dmd dub dcd dfix dfmt dscanner textadept | ||
+ | </ | ||
+ | === DCD === | ||
+ | |||
+ | Unha vez instalado o DCD temos que configuralo creando el ficheiro // | ||
+ | |||
+ | < | ||
+ | / | ||
+ | / | ||
+ | </ | ||
+ | Podemolo probar con: | ||
+ | |||
+ | < | ||
+ | dcd-server & | ||
+ | echo | dcd-client --search toImpl | ||
+ | </ | ||
+ | === gdc === | ||
+ | |||
+ | Instalado con | ||
+ | |||
+ | < | ||
+ | sudo aptitude install gdc | ||
+ | </ | ||
+ | === ldc === | ||
+ | |||
+ | Instalado con: | ||
+ | |||
+ | < | ||
+ | sudo aptitude install ldc | ||
+ | </ | ||
+ | Para poder executar aplicacións baseadas en [[http:// | ||
+ | |||
+ | < | ||
+ | sudo apt-get install -y libssl-dev libevent-dev | ||
+ | </ | ||
+ | === Emacs para editar D === | ||
+ | |||
+ | Instalados os seguintes paquetes dende // | ||
+ | |||
+ | * //d-mode// | ||
+ | * // | ||
+ | * // | ||
+ | * // | ||
+ | * // | ||
+ | * // | ||
+ | * //ac-dcd// | ||
+ | |||
+ | Configuranse no ficheiro **~/ | ||
+ | |||
+ | < | ||
+ | ;; (require ' | ||
+ | ;; ;; | ||
+ | ;; (global-set-key (kbd "C-c d") ' | ||
+ | ;; (global-set-key (kbd "C-c n") ' | ||
+ | ;; (global-set-key (kbd "C-c p") ' | ||
+ | |||
+ | (add-hook ' | ||
+ | (global-set-key | ||
+ | (global-set-key | ||
+ | |||
+ | ;; Define d-mode addons | ||
+ | ;; Activate flymake or flycheck for D | ||
+ | ;; Activate auto-complete-mode | ||
+ | ;; Activate yasnippet minor mode if available | ||
+ | ;; Activate dcd-server | ||
+ | (require ' | ||
+ | (add-hook ' | ||
+ | (lambda() | ||
+ | ;; | ||
+ | (flycheck-dmd-dub-set-variables) | ||
+ | (require ' | ||
+ | (setup-flycheck-d-unittest) | ||
+ | (auto-complete-mode t) | ||
+ | (when (featurep ' | ||
+ | (yas-minor-mode-on)) | ||
+ | (ac-dcd-maybe-start-server) | ||
+ | (ac-dcd-add-imports) | ||
+ | (add-to-list ' | ||
+ | (define-key d-mode-map (kbd "C-c ?") ' | ||
+ | (define-key d-mode-map (kbd "C-c .") ' | ||
+ | (define-key d-mode-map (kbd "C-c ,") ' | ||
+ | (define-key d-mode-map (kbd "C-c s") ' | ||
+ | (when (featurep ' | ||
+ | (add-to-list ' | ||
+ | | ||
+ | (add-to-list ' | ||
+ | | ||
+ | (add-to-list ' | ||
+ | | ||
+ | |||
+ | ;; Define diet template mode (this is not installed from package) | ||
+ | (add-to-list ' | ||
+ | (add-hook ' | ||
+ | (lambda() | ||
+ | (setq tab-width 2) | ||
+ | (setq whitespace-line-column 250) | ||
+ | (setq indent-tabs-mode nil) | ||
+ | (setq indent-line-function ' | ||
+ | </ | ||
+ | === Referencias === | ||
+ | |||
+ | * https:// | ||
+ | * https:// | ||
+ | |||
+ | ==== Processing ==== | ||
+ | |||
+ | Un entorno de programación baseado en java e ideal para aprender a programar dende cero. | ||
+ | |||
+ | Baixamos os paquetes das respectivas páxinas web, descomprimimimos en //~/apps/// y creamos os desktop file con **Menulibre** | ||
+ | |||
+ | ==== Openframeworks ==== | ||
+ | |||
+ | Cunha filosofía moi parecida á de Processing pero baseado en C. | ||
+ | |||
+ | Baixamos o paquete comprimido da páxina web do proxecto. | ||
+ | |||
+ | Descomprimimos en //~/apps// | ||
+ | |||
+ | Baixamos ao directorio da aplicación e executamos: | ||
+ | |||
+ | < | ||
+ | sudo scripts/ | ||
+ | sudo scripts/ | ||
+ | |||
+ | cd scripts/ | ||
+ | ./ | ||
+ | |||
+ | cd OF/ | ||
+ | make | ||
+ | make Run | ||
+ | |||
+ | cd OF/ | ||
+ | ./ | ||
+ | </ | ||
+ | Vai instalar unha morea de dependencias, | ||
+ | |||
+ | Ao final tamén vai engadir unha linea no ficheiro // | ||
+ | |||
+ | < | ||
+ | export PG_OF_PATH=/ | ||
+ | </ | ||
+ | ==== Python ==== | ||
+ | |||
+ | De partida temos instaladas duas versións: //python// e //python3// | ||
+ | |||
+ | < | ||
+ | python -V | ||
+ | Python 2.7.9 | ||
+ | |||
+ | python3 -V | ||
+ | Python 3.4.2 | ||
+ | </ | ||
+ | |||
+ | === pip, virtualenv, virtualenvwrapper, | ||
+ | |||
+ | //pip// é un xestor de paquetes para **Python** que facilita a instalación de librerías e utilidades. | ||
+ | |||
+ | Para poder usar os entornos virtuais instalaremos tamén // | ||
+ | |||
+ | Instalamos os dous dende aptitude: | ||
+ | |||
+ | < | ||
+ | sudo aptitude install python-pip python-virtualenv virtualenv | ||
+ | |||
+ | sudo pip install --upgrade pip | ||
+ | sudo pip install --upgrade virtualenv | ||
+ | </ | ||
+ | // | ||
+ | |||
+ | Instalamos o // | ||
+ | |||
+ | < | ||
+ | sudo apt-get install virtualenvwrapper -y | ||
+ | </ | ||
+ | Para usar o // | ||
+ | |||
+ | < | ||
+ | source / | ||
+ | </ | ||
+ | |||
+ | Ou engadir esa linea aos nosos ficheiros //.bashrc// e/ou //.zshrc// | ||
+ | |||
+ | Eu deixei a variable de entorno // | ||
+ | |||
+ | [[http:// | ||
+ | |||
+ | Para rematar, se queremos ter utilidades semellantes no noso //fish shell// instalamos // | ||
+ | |||
+ | < | ||
+ | sudo pip install virtualfish | ||
+ | </ | ||
+ | [[http:// | ||
+ | |||
+ | |||
+ | |||
+ | === iPython notebook === | ||
+ | |||
+ | [[https:// | ||
+ | |||
+ | == Instalar Jupyter en el Python del sistema == | ||
+ | |||
+ | Seguimos las instrucciones [[https:// | ||
+ | |||
+ | Si usamos el script descargado del github se instalará el **Jupyter** con el python3 del sistema. %%__%%Conviene asegurarse de que estamos apuntando al python del S.O. y no a cualquier otro Python que hayamos instalado: | ||
+ | |||
+ | < | ||
+ | which python | ||
+ | </ | ||
+ | == Instalar Anaconda Python == | ||
+ | |||
+ | Teóricamente [[https:// | ||
+ | |||
+ | < | ||
+ | bash Anaconda3-4.2.0-Linux-x86_64.sh | ||
+ | bash Anaconda2-4.2.0-Linux-x86_64.sh | ||
+ | </ | ||
+ | Los he dejado instalados en // | ||
+ | |||
+ | Cada una de estas instalaciones incorpora su propia versión de Python. Para usarlas tenemos que cambiar nuestro PATH para que el Python deseado sea el primero que se selecciona. | ||
+ | |||
+ | Por ejemplo para activar anaconda3 en bash: | ||
+ | |||
+ | < | ||
+ | export PATH=" | ||
+ | </ | ||
+ | Para hacer lo mismo en fish: | ||
+ | |||
+ | < | ||
+ | set -x PATH ~/ | ||
+ | </ | ||
+ | === iPython y GraphLab === | ||
+ | |||
+ | La instalación de iPython y GraphLab (que es una librería comercial) la hice para realizar un curso. | ||
+ | |||
+ | Creamos un entorno conda con Python 2.7.x | ||
+ | |||
+ | < | ||
+ | export PATH=" | ||
+ | conda create -n gl-env python=2.7 anaconda | ||
+ | </ | ||
+ | Activamos el nuevo entorno (todo esto lo hice en bash, en fish hay un problemilla con el entorno conda [[https:// | ||
+ | |||
+ | < | ||
+ | bash | ||
+ | source activate gl-env | ||
+ | </ | ||
+ | En el futuro esto es todo lo que tendremos que hacer activar el entorno conda donde estamos instalando el iPython. | ||
+ | |||
+ | Nos aseguramos de tener //pip// al dia: | ||
+ | |||
+ | < | ||
+ | conda update pip | ||
+ | </ | ||
+ | Instalamos la biblioteca [[https:// | ||
+ | )) | ||
+ | |||
+ | Una vez registrado en la página web te pasan un número de registro que tienes que usar para instalar la biblioteca. | ||
+ | |||
+ | < | ||
+ | pip install --upgrade --no-cache-dir https:// | ||
+ | </ | ||
+ | Y para terminar instalamos iPython ((TODO: conda install jupyter | ||
+ | )): | ||
+ | |||
+ | < | ||
+ | conda install ipython-notebook | ||
+ | </ | ||
+ | Desde ahora basta con activar el entorno que hemos creado para tener acceso al iPython. | ||
+ | |||
+ | < | ||
+ | source activate gl-env | ||
+ | |||
+ | ipython notebook | ||
+ | |||
+ | source deactivate gl-env | ||
+ | </ | ||
+ | == Instalación alternativa con virtualenv == | ||
+ | |||
+ | < | ||
+ | # Create a virtual environment named e.g. gl-env | ||
+ | virtualenv gl-env | ||
+ | |||
+ | # Activate the virtual environment | ||
+ | source gl-env/ | ||
+ | |||
+ | # Make sure pip is up to date | ||
+ | pip install --upgrade pip | ||
+ | |||
+ | # Install IPython Notebook (optional) | ||
+ | pip install " | ||
+ | |||
+ | # Install Jupyter Notebook (optional) | ||
+ | pip install " | ||
+ | |||
+ | |||
+ | # Install your licensed copy of GraphLab Create | ||
+ | pip install --upgrade --no-cache-dir https:// | ||
+ | </ | ||
+ | |||
+ | === Usar Emacs para editar Python === | ||
+ | |||
+ | Instalamos //elpy// desde el gestor de paquetes de Emacs, concretamente desde el repo // | ||
+ | |||
+ | Hay que habilitar //elpy// en el fichero **~/ | ||
+ | |||
+ | < | ||
+ | (elpy enable) | ||
+ | </ | ||
+ | // | ||
+ | |||
+ | < | ||
+ | sudo pip install pylint | ||
+ | </ | ||
+ | === TODO === | ||
+ | |||
+ | Estudiar esto con calma https:// | ||
+ | |||
+ | === Web2py === | ||
+ | |||
+ | Desde [[http:// | ||
+ | |||
+ | Yo he descomprimido el framework en '' | ||
+ | |||
+ | Para que el framework soporte ssl convine generar los siguientes certificados: | ||
+ | |||
+ | < | ||
+ | openssl genrsa -out server.key 2048 | ||
+ | openssl req -new -key server.key -out server.csr | ||
+ | |||
+ | Country Name (2 letter code) [AU]:ES | ||
+ | State or Province Name (full name) [Some-State]: | ||
+ | Locality Name (eg, city) []:CORUNA | ||
+ | Organization Name (eg, company) [Internet Widgits Pty Ltd]:Mikasa | ||
+ | Organizational Unit Name (eg, section) []:salvari | ||
+ | Common Name (e.g. server FQDN or YOUR name) []:salvari | ||
+ | Email Address []: | ||
+ | |||
+ | Please enter the following ' | ||
+ | to be sent with your certificate request | ||
+ | A challenge password []: | ||
+ | An optional company name []:Mikasa | ||
+ | </ | ||
+ | Ahora ejecutamos: | ||
+ | |||
+ | < | ||
+ | openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt | ||
+ | </ | ||
+ | Ahora deberíamos dejar los ficheros '' | ||
+ | |||
+ | < | ||
+ | python web2py.py -a ' | ||
+ | </ | ||
+ | Y ya podemos acceder nuestro server en la dirección https:// | ||
+ | |||
+ | Tampoco está de más instalar las librerías de graphviz: | ||
+ | |||
+ | < | ||
+ | sudo aptitude install python-pygraphviz | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Desarrollo hardware ===== | ||
+ | |||
+ | ==== Arduino IDE ==== | ||
+ | |||
+ | Bajamos los paquetes de la página [[https:// | ||
+ | |||
+ | Creamos un link al directorio del software que hemos descargado: | ||
+ | |||
+ | < | ||
+ | cd ~/ | ||
+ | ln -s arduino-x.y.z current | ||
+ | </ | ||
+ | La primera ves que instalamos será necesario crear el desktop file con **Menulibre** con las actulizaciones no será necesario, siempre y cuando apunte a // | ||
+ | |||
+ | ==== Pinguino IDE ==== | ||
+ | |||
+ | Tenemos el paquete de instalación disponible en su página [[http:// | ||
+ | |||
+ | Ejecutamos el programa de instalación. El programa descargará los paquetes Debian necesarios para dejar el IDE y los compiladores instalados. | ||
+ | |||
+ | Al acabar la instalación he tenido que crear el directorio // | ||
+ | |||
+ | El programa queda correctamente instalado en ///opt// y arranca correctamente, | ||
+ | |||
+ | ==== KiCAD ==== | ||
+ | |||
+ | Instalamos desde // | ||
+ | |||
+ | < | ||
+ | sudo aptitude install -t jessie-backports kicad | ||
+ | </ | ||
+ | Vamos a instalar a mayores algunas librerias de KiCAD, para poder crear Shields de Arduino. | ||
+ | |||
+ | * [[https:// | ||
+ | * [[http:// | ||
+ | |||
+ | ===== Virtualización ===== | ||
+ | |||
+ | ==== Docker ==== | ||
+ | |||
+ | < | ||
+ | apt-get install apt-transport-https ca-certificates | ||
+ | apt-key adv --keyserver hkp:// | ||
+ | edit docker.list with | ||
+ | deb https:// | ||
+ | |||
+ | apt-cache policy docker-engine | ||
+ | |||
+ | |||
+ | sudo apt-get install docker-engine | ||
+ | |||
+ | |||
+ | sudo service docker start | ||
+ | |||
+ | sudo docker run hello-world | ||
+ | |||
+ | sudo gpasswd -a salvari docker | ||
+ | </ | ||
+ | ==== Virtualbox ==== | ||
+ | |||
+ | Tenemos que: | ||
+ | |||
+ | * Añadir el fichero // | ||
+ | * Bajarnos y añadir a nuestro llavero las claves públicas de Oracle | ||
+ | * Actualizar la lista de paquetes | ||
+ | * Instalar virtualbox | ||
+ | * Añadir nuestro usuario al grupo vboxuser (no tengo claro que esto sea necesario) | ||
+ | |||
+ | < | ||
+ | echo "deb http:// | ||
+ | |sudo tee / | ||
+ | | sudo apt-key add - sudo apt-get update sudo apt-get install virtualbox-5.1 sudo gpasswd -a salvari vboxusers | ||
+ | </ | ||
+ | |||
+ | Una vez instalado el virtualbox tenemos que instalarnos el pack de extensiones, | ||
+ | |||
+ | Sin más que hacer doble click en el fichero descargado lo instalaremos en nuestra instancia de // | ||
+ | |||
+ | ==== Virtualizando un Windows 7 ==== | ||
+ | |||
+ | * 2 Gb de ram | ||
+ | * Create virtual hard disk | ||
+ | * 10Gb dinamically allocated | ||
+ | * Settings -> System-> | ||
+ | * Storage -> Add IDE Controller-> | ||
+ | * Instalamos Windows en Inglés y con teclado en español | ||
+ | |||
+ | Una vez instalado el SO Windows instalamos las Guest Additions. | ||
+ | |||
+ | ===== Shells alternativos: | ||
+ | |||
+ | Los dos son muy interesantes. He usado zsh casi un año, ahora voy a probar **fish**. | ||
+ | |||
+ | ==== fish ==== | ||
+ | |||
+ | Instalamos **fish** desde aptitude con: | ||
+ | |||
+ | < | ||
+ | sudo aptitude install fish | ||
+ | </ | ||
+ | Instalamos oh-my-fish | ||
+ | |||
+ | < | ||
+ | curl -L https:// | ||
+ | fish install | ||
+ | rm install | ||
+ | |||
+ | chsh -s `which fish` | ||
+ | |||
+ | </ | ||
+ | ==== zsh ==== | ||
+ | |||
+ | Igualmente instalamos **zsh**: | ||
+ | |||
+ | < | ||
+ | sudo aptitude install zsh | ||
+ | </ | ||
+ | Vamos a usar antigen así que nos lo clonamos en _~/apps/ | ||
+ | |||
+ | < | ||
+ | cd ~/apps | ||
+ | git clone https:// | ||
+ | </ | ||
+ | Y editamos el fichero // | ||
+ | |||
+ | < | ||
+ | source ~/ | ||
+ | |||
+ | # Load the oh-my-zsh' | ||
+ | antigen use oh-my-zsh | ||
+ | |||
+ | # Bundles from the default repo (robbyrussell' | ||
+ | antigen bundle git | ||
+ | antigen bundle command-not-found | ||
+ | antigen bundle autojump | ||
+ | antigen bundle extract | ||
+ | # antigen bundle heroku | ||
+ | # antigen bundle pip | ||
+ | # antigen bundle lein | ||
+ | |||
+ | |||
+ | # Syntax highlighting bundle. | ||
+ | antigen bundle zsh-users/ | ||
+ | |||
+ | # git | ||
+ | antigen bundle arialdomartini/ | ||
+ | antigen theme arialdomartini/ | ||
+ | |||
+ | # autosuggestions | ||
+ | antigen bundle tarruda/ | ||
+ | |||
+ | #antigen theme agnoster | ||
+ | |||
+ | # Tell antigen that you're done. | ||
+ | antigen apply | ||
+ | |||
+ | # append to path | ||
+ | path+=('/ | ||
+ | # prepend | ||
+ | # path=('/ | ||
+ | # export PATH | ||
+ | </ | ||
+ | Antigen ya se encarga de descargar todo lo que queramos utilizar en zsh. | ||
+ | |||
+ | Nos queda arreglar las fuentes para que funcione correctamente la linea de estado en los repos de git. Necesitamos una fuente //Awesome// | ||
+ | |||
+ | ==== Instalación de fuentes adicionales ==== | ||
+ | |||
+ | Nos bajamos unas cuantas fuentes que soporten los iconos // | ||
+ | |||
+ | < | ||
+ | cd ~/tmp | ||
+ | git clone https:// | ||
+ | git clone https:// | ||
+ | |||
+ | mkdir ~/.fonts | ||
+ | cp someFontFile ~/.fonts/ | ||
+ | fc-cache -vf ~/.fonts/ | ||
+ | </ | ||
+ | ===== Reprap ===== | ||
+ | |||
+ | ==== Sl1c3r ==== | ||
+ | |||
+ | Descargamos el paquete binario desde la página web. | ||
+ | |||
+ | * Cambiar permisos en directorio /// | ||
+ | * Instalado // | ||
+ | * Es necesario instalar // | ||
+ | |||
+ | ==== OpenScad ==== | ||
+ | |||
+ | Instalado desde aptitude. | ||
+ | |||
+ | ==== Printrun ==== | ||
+ | |||
+ | Descargamos desde github | ||
+ | |||
+ | ==== Cura ==== | ||
+ | |||
+ | Descargamos desde la pagina web | ||
+ | |||
+ | < | ||
+ | sudo aptitude install python3-pyqt5 | ||
+ | sudo dpkg -i Cura-2.1.3-Linux.deb | ||
+ | </ | ||
+ | < | ||
+ | sudo apt-get install python-serial python-wxgtk2.8 python-pyglet python-numpy \ | ||
+ | cython python-libxml2 python-gobject python-dbus python-psutil python-cairosvg git | ||
+ | |||
+ | python setup.py build_ext --inplace | ||
+ | </ | ||
+ | ===== Aplicaciones Web ===== | ||
+ | |||
+ | ==== Servidor Web ==== | ||
+ | |||
+ | === Apache === | ||
+ | |||
+ | Instalamos el paquete //apache2// | ||
+ | |||
+ | < | ||
+ | sudo aptitude install apache2 | ||
+ | </ | ||
+ | Si abrimos el navegador y visitamos http:// | ||
+ | |||
+ | El directorio raiz por defecto de Apache en Debian es /// | ||
+ | |||
+ | * / | ||
+ | * / | ||
+ | * / | ||
+ | |||
+ | Además del Apache vamos a dejar instalado el //php5// | ||
+ | |||
+ | < | ||
+ | sudo aptitude install php5 libapache2-mod-php5 | ||
+ | </ | ||
+ | Hay que reiniciar el servicio: '' | ||
+ | |||
+ | Si creamos un fichero /// | ||
+ | |||
+ | < | ||
+ | <?php | ||
+ | phpinfo(); | ||
+ | ?> | ||
+ | </ | ||
+ | Podemos ver en el siguiente enlace http:// | ||
+ | |||
+ | Módulos de php relacionados con mysql: | ||
+ | |||
+ | < | ||
+ | sudo aptitude install php5-mysqlnd php5-curl php5-gd php5-intl php-pear \ | ||
+ | php5-imagick php5-imap php5-mcrypt php5-memcache php5-pspell php5-recode \ | ||
+ | php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl | ||
+ | </ | ||
+ | === nginx === | ||
+ | |||
+ | TODO | ||
+ | |||
+ | ==== Servidores de bases de datos ==== | ||
+ | |||
+ | === MySQL === | ||
+ | |||
+ | Instalamos desde aptitude // | ||
+ | |||
+ | Opcionalmente (y muy recomendable) | ||
+ | |||
+ | < | ||
+ | mysql_secure_instalallation | ||
+ | </ | ||
+ | === Actualización === | ||
+ | |||
+ | Cambiamos el fichero // | ||
+ | |||
+ | < | ||
+ | # max_allowed_packet | ||
+ | max_allowed_packet | ||
+ | </ | ||
+ | Reiniciamos el servicio: | ||
+ | |||
+ | < | ||
+ | / | ||
+ | </ | ||
+ | === Cliente SQL SQuirreL SQL === | ||
+ | |||
+ | Descargamos el paquete desde la página [[http:// | ||
+ | |||
+ | Una vez instalado, creamos el desktop-file con // | ||
+ | |||
+ | === MariaDB === | ||
+ | |||
+ | **PENDIENTE** | ||
+ | |||
+ | ===== Recetas varias ===== | ||
+ | |||
+ | ==== Orange Pi Zero ==== | ||
+ | |||
+ | Para usar la Orange Pi Zero tendremos que crear imágenes arrancables en tarjetas micro SD. | ||
+ | |||
+ | === Crear una SD arrancable === | ||
+ | |||
+ | Dependiendo de donde conectemos la tarjeta tendremos que usar diferentes rutas. En el procedimiento descrito a continuación '' | ||
+ | |||
+ | Si la tarjeta se conecta via adaptador USB, linux la va a asociar a un dispositivo /dev/sdx, por ejemplo en mi portátil el disco duro es '' | ||
+ | |||
+ | Si conectamos una memoria con un adaptador USB linux la podría mapear en '' | ||
+ | |||
+ | Si la memoria se conecta mediante una ranura SD, linux la asociará a un dispositivo '' | ||
+ | |||
+ | Los datos se pueden almacenar directamente en la memoria SD o en una partición creada en la memoria. | ||
+ | |||
+ | Resumiendo: | ||
+ | |||
+ | * '' | ||
+ | * ${card}${p} será '' | ||
+ | |||
+ | Antes de seguir adelante hay que estar completamente seguro del dispositivo asociado a nuestra memoria SD para no armar ningún estropicio. | ||
+ | |||
+ | Hay varias comprobaciones que se pueden hacer: | ||
+ | |||
+ | '' | ||
+ | |||
+ | '' | ||
+ | |||
+ | < | ||
+ | Disk / | ||
+ | Units: sectors of 1 * 512 = 512 bytes | ||
+ | Sector size (logical/ | ||
+ | I/O size (minimum/ | ||
+ | Disklabel type: dos | ||
+ | Disk identifier: 0x00000000 | ||
+ | </ | ||
+ | '' | ||
+ | |||
+ | < | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | Descargamos la imagen de Jessie adaptada a la //Orange Pi Zero// desde la página https:// | ||
+ | |||
+ | Descomprimimos la imagen y la grabamos en la tarjeta SD con el comando: | ||
+ | |||
+ | < | ||
+ | sudo dd if=./ | ||
+ | </ | ||
+ | Insertamos la tarjeta en la //Orange Pi// y le damos alimentación. El primer arranque llevará alrededor de tres minutos, y tras ese tiempo aun hará falta un minuto más para poder hacer login. Este retardo es debido a que el sistema intentará actualizar la lista de paquetes y creará un area de swap de emergencia en la SD, y además cambiará el tamaño de la partición que hemos creado para ocupar todo el espacio libre en la SD. | ||
+ | |||
+ | De momento solo la he arrancado y efectivamente las particiones han cambiado tras el arranque así que tiene buena pinta. | ||
+ | |||
+ | Volvemos a insertar la SD en la //Orange Pi// y la conectamos con un cable ethernet al router de casa. El Armbian viene configurado por defecto para obtener su IP desde un servidor DHCP. | ||
+ | |||
+ | Como mi cutre-router no me da información de las IP asignadas usamos //nmap//: | ||
+ | |||
+ | < | ||
+ | nmap -sP 192.168.0.0 /24 | ||
+ | </ | ||
+ | Con eso averiguamos la IP asignada a la //Orange Pi Zero// y ya podemos hacer login con: | ||
+ | |||
+ | < | ||
+ | ssh root@192.168.0.109 | ||
+ | </ | ||
+ | ¡Y ya estamos! | ||
+ | |||
+ | {{OrangePiZero_FirstLogin.png| Primer login en //Orange Pi//}} | ||
+ | |||
+ | Lo primero es poner al dia el sistema: | ||
+ | |||
+ | < | ||
+ | apt-get update | ||
+ | apt-get upgrade | ||
+ | </ | ||
+ | Si quieres puedes reconfigurar el //time zone//: | ||
+ | |||
+ | < | ||
+ | dpgk-reconfigura tzdata | ||
+ | </ | ||
+ | === Conexión WIFI === | ||
+ | |||
+ | Vamos a comprobar que todo va bien: | ||
+ | |||
+ | < | ||
+ | root@orangepizero: | ||
+ | lo no wireless extensions. | ||
+ | |||
+ | tunl0 no wireless extensions. | ||
+ | |||
+ | wlan0 IEEE 802.11bgn | ||
+ | Mode: | ||
+ | Retry long limit: | ||
+ | Encryption key:off | ||
+ | Power Management: | ||
+ | |||
+ | eth0 no wireless extensions. | ||
+ | </ | ||
+ | Todo tiene buena pinta, vamos a ver si detecta WIFIs: | ||
+ | |||
+ | < | ||
+ | root@orangepizero: | ||
+ | ESSID:" | ||
+ | ESSID:" | ||
+ | ESSID:" | ||
+ | ESSID:" | ||
+ | ESSID:" | ||
+ | ESSID:" | ||
+ | ESSID:" | ||
+ | ESSID:" | ||
+ | ESSID:" | ||
+ | ESSID:" | ||
+ | ESSID:"" | ||
+ | ESSID:" | ||
+ | </ | ||
+ | Para configurar el wifi echamos un ojo al fichero '' | ||
+ | |||
+ | < | ||
+ | # Armbian ships with network-manager installed by default. To save you time | ||
+ | # and hassles consider using 'sudo nmtui' instead of configuring Wi-Fi settings | ||
+ | # manually. | ||
+ | </ | ||
+ | Así que basta con ejecutar '' | ||
+ | |||
+ | {{orangepizero_tmtui.png| Configuración WIFI}} | ||
+ | |||
+ | Ejecutamos '' | ||
+ | |||
+ | < | ||
+ | ifconfig | ||
+ | |||
+ | wlan0 Link encap: | ||
+ | inet addr: | ||
+ | inet6 addr: fe80:: | ||
+ | UP BROADCAST RUNNING MULTICAST | ||
+ | RX packets:2 errors:0 dropped:0 overruns:0 frame:0 | ||
+ | TX packets:8 errors:0 dropped:0 overruns:0 carrier:0 | ||
+ | collisions: | ||
+ | RX bytes:328 (328.0 B) TX bytes:852 (852.0 B) | ||
+ | </ | ||
+ | |||
+ | === Referencias === | ||
+ | |||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[https:// | ||
+ | * http:// | ||
+ | * https:// | ||
+ | * https:// | ||
+ | * https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | |||
+ | ==== Raspberry Pi Media Center ==== | ||
+ | |||
+ | Bajamos la imagen con nuestro cliente torrent favorito desde [[https:// | ||
+ | |||
+ | < | ||
+ | sudo dd if=./ | ||
+ | </ | ||
+ | Arrancamos con la toma ethernet conectada al router y nos conectamos tras averigurar la IP con '' | ||
+ | |||
+ | {{RaspiFirstLogin.png| Primer login en Raspberry}} | ||
+ | |||
+ | Una vez instalado los pasos recomendados: | ||
+ | |||
+ | * Cambiar la password de root: '' | ||
+ | * Fijar una IP estática: Editamos el fichero '' | ||
+ | |||
+ | < | ||
+ | interface eth0 | ||
+ | static ip_address=192.168.0.125/ | ||
+ | static routers=192.168.0.1 | ||
+ | static domain_name_servers=8.8.8.8 | ||
+ | |||
+ | interface wlan0 | ||
+ | static ip_address=192.168.0.126/ | ||
+ | static routers=192.168.0.1 | ||
+ | static domain_name_servers=8.8.8.8 | ||
+ | </ | ||
+ | |||
+ | * Una vez cambiado el fichero hay que reiniciar con '' | ||
+ | * Configurar la WIFI, en esta parte damos por supuesto que tenemos la wifi con WPA activado. | ||
+ | * Echamos un ojo a nuestro interfaz radio con '' | ||
+ | |||
+ | < | ||
+ | wlan0 IEEE 802.11bgn | ||
+ | Mode: | ||
+ | Retry short limit: | ||
+ | Encryption key:off | ||
+ | Power Management: | ||
+ | </ | ||
+ | |||
+ | * Tenemos que editar el fichero '' | ||
+ | |||
+ | < | ||
+ | allow-hotplug wlan0 | ||
+ | iface wlan0 inet manual | ||
+ | wpa-conf / | ||
+ | </ | ||
+ | |||
+ | * Ahora vamos a editar el fichero de configuración de '' | ||
+ | |||
+ | < | ||
+ | country=ES | ||
+ | ctrl_interface=DIR=/ | ||
+ | update_config=1 | ||
+ | network={ | ||
+ | ssid=" | ||
+ | psk=" | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | * Un reinicio y listos: '' | ||
+ | |||
+ | ===== TODO ===== | ||
+ | |||
+ | * cinelerra | ||
+ | * playonlinux | ||
+ | * krita | ||
+ | * mypaint | ||
+ | * qStopmotion | ||
+ | * chibios | ||
+ | * [http: | ||
+ | * [http: | ||
+ | * [http: | ||
+ | * ICE Studio | ||
+ | * Inkscape | ||
+ | * https:// | ||
+ | * Instalar tb jessyink | ||
+ | * rclone https:// | ||
+ | * vmware (no creo, virtualbox va genial) | ||
+ | * Astronomía | ||
+ | * STM32 toolchain | ||
+ | |||
+ | ===== Links ===== | ||
+ | |||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * https:// | ||
+ | * http:// | ||
+ | |||
+ | ===== Licencia ===== | ||
+ | |||
+ | Esta guía se publica sujeta a licencia CC-BY-SA 4.0 INTL | ||
+ | |||
+ | < | ||
+ | |||
+ | Attribution-ShareAlike 4.0 International | ||
+ | |||
+ | ====================================================== | ||
+ | |||
+ | Creative Commons Corporation (" | ||
+ | does not provide legal services or legal advice. Distribution of | ||
+ | Creative Commons public licenses does not create a lawyer-client or | ||
+ | other relationship. Creative Commons makes its licenses and related | ||
+ | information available on an " | ||
+ | warranties regarding its licenses, any material licensed under their | ||
+ | terms and conditions, or any related information. Creative Commons | ||
+ | disclaims all liability for damages resulting from their use to the | ||
+ | fullest extent possible. | ||
+ | |||
+ | Using Creative Commons Public Licenses | ||
+ | |||
+ | Creative Commons public licenses provide a standard set of terms and | ||
+ | conditions that creators and other rights holders may use to share | ||
+ | original works of authorship and other material subject to copyright | ||
+ | and certain other rights specified in the public license below. The | ||
+ | following considerations are for informational purposes only, are not | ||
+ | exhaustive, and do not form part of our licenses. | ||
+ | |||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | and conditions of the license they choose before applying it. | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | wiki.creativecommons.org/ | ||
+ | |||
+ | | ||
+ | | ||
+ | | ||
+ | the licensor' | ||
+ | | ||
+ | | ||
+ | | ||
+ | other rights that a licensor has authority to grant. Use of | ||
+ | the licensed material may still be restricted for other | ||
+ | | ||
+ | | ||
+ | such as asking that all changes be marked or described. | ||
+ | | ||
+ | | ||
+ | for the public: | ||
+ | wiki.creativecommons.org/ | ||
+ | |||
+ | ====================================================== | ||
+ | |||
+ | Creative Commons Attribution-ShareAlike 4.0 International Public | ||
+ | License | ||
+ | |||
+ | By exercising the Licensed Rights (defined below), You accept and agree | ||
+ | to be bound by the terms and conditions of this Creative Commons | ||
+ | Attribution-ShareAlike 4.0 International Public License (" | ||
+ | License" | ||
+ | contract, You are granted the Licensed Rights in consideration of Your | ||
+ | acceptance of these terms and conditions, and the Licensor grants You | ||
+ | such rights in consideration of benefits the Licensor receives from | ||
+ | making the Licensed Material available under these terms and | ||
+ | conditions. | ||
+ | |||
+ | |||
+ | Section 1 -- Definitions. | ||
+ | |||
+ | a. Adapted Material means material subject to Copyright and Similar | ||
+ | | ||
+ | and in which the Licensed Material is translated, altered, | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | b. Adapter' | ||
+ | and Similar Rights in Your contributions to Adapted Material in | ||
+ | | ||
+ | |||
+ | c. BY-SA Compatible License means a license listed at | ||
+ | | ||
+ | | ||
+ | |||
+ | d. Copyright and Similar Rights means copyright and/or similar rights | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | e. Effective Technological Measures means those measures that, in the | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | f. Exceptions and Limitations means fair use, fair dealing, and/or | ||
+ | any other exception or limitation to Copyright and Similar Rights | ||
+ | that applies to Your use of the Licensed Material. | ||
+ | |||
+ | g. License Elements means the license attributes listed in the name | ||
+ | of a Creative Commons Public License. The License Elements of this | ||
+ | | ||
+ | |||
+ | h. Licensed Material means the artistic or literary work, database, | ||
+ | or other material to which the Licensor applied this Public | ||
+ | | ||
+ | |||
+ | i. Licensed Rights means the rights granted to You subject to the | ||
+ | terms and conditions of this Public License, which are limited to | ||
+ | all Copyright and Similar Rights that apply to Your use of the | ||
+ | | ||
+ | |||
+ | j. Licensor means the individual(s) or entity(ies) granting rights | ||
+ | under this Public License. | ||
+ | |||
+ | k. Share means to provide material to the public by any means or | ||
+ | | ||
+ | as reproduction, | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | l. Sui Generis Database Rights means rights other than copyright | ||
+ | | ||
+ | the Council of 11 March 1996 on the legal protection of databases, | ||
+ | as amended and/or succeeded, as well as other essentially | ||
+ | | ||
+ | |||
+ | m. You means the individual or entity exercising the Licensed Rights | ||
+ | under this Public License. Your has a corresponding meaning. | ||
+ | |||
+ | |||
+ | Section 2 -- Scope. | ||
+ | |||
+ | a. License grant. | ||
+ | |||
+ | 1. Subject to the terms and conditions of this Public License, | ||
+ | the Licensor hereby grants You a worldwide, royalty-free, | ||
+ | non-sublicensable, | ||
+ | exercise the Licensed Rights in the Licensed Material to: | ||
+ | |||
+ | a. reproduce and Share the Licensed Material, in whole or | ||
+ | in part; and | ||
+ | |||
+ | b. produce, reproduce, and Share Adapted Material. | ||
+ | |||
+ | 2. Exceptions and Limitations. For the avoidance of doubt, where | ||
+ | Exceptions and Limitations apply to Your use, this Public | ||
+ | License does not apply, and You do not need to comply with | ||
+ | its terms and conditions. | ||
+ | |||
+ | 3. Term. The term of this Public License is specified in Section | ||
+ | 6(a). | ||
+ | |||
+ | 4. Media and formats; technical modifications allowed. The | ||
+ | Licensor authorizes You to exercise the Licensed Rights in | ||
+ | all media and formats whether now known or hereafter created, | ||
+ | and to make technical modifications necessary to do so. The | ||
+ | Licensor waives and/or agrees not to assert any right or | ||
+ | authority to forbid You from making technical modifications | ||
+ | necessary to exercise the Licensed Rights, including | ||
+ | technical modifications necessary to circumvent Effective | ||
+ | Technological Measures. For purposes of this Public License, | ||
+ | simply making modifications authorized by this Section 2(a) | ||
+ | (4) never produces Adapted Material. | ||
+ | |||
+ | 5. Downstream recipients. | ||
+ | |||
+ | a. Offer from the Licensor -- Licensed Material. Every | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | b. Additional offer from the Licensor -- Adapted Material. | ||
+ | Every recipient of Adapted Material from You | ||
+ | | ||
+ | | ||
+ | under the conditions of the Adapter' | ||
+ | |||
+ | c. No downstream restrictions. You may not offer or impose | ||
+ | any additional or different terms or conditions on, or | ||
+ | apply any Effective Technological Measures to, the | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | 6. No endorsement. Nothing in this Public License constitutes or | ||
+ | may be construed as permission to assert or imply that You | ||
+ | are, or that Your use of the Licensed Material is, connected | ||
+ | with, or sponsored, endorsed, or granted official status by, | ||
+ | the Licensor or others designated to receive attribution as | ||
+ | provided in Section 3(a)(1)(A)(i). | ||
+ | |||
+ | b. Other rights. | ||
+ | |||
+ | 1. Moral rights, such as the right of integrity, are not | ||
+ | licensed under this Public License, nor are publicity, | ||
+ | privacy, and/or other similar personality rights; however, to | ||
+ | the extent possible, the Licensor waives and/or agrees not to | ||
+ | assert any such rights held by the Licensor to the limited | ||
+ | extent necessary to allow You to exercise the Licensed | ||
+ | Rights, but not otherwise. | ||
+ | |||
+ | 2. Patent and trademark rights are not licensed under this | ||
+ | Public License. | ||
+ | |||
+ | 3. To the extent possible, the Licensor waives any right to | ||
+ | collect royalties from You for the exercise of the Licensed | ||
+ | Rights, whether directly or through a collecting society | ||
+ | under any voluntary or waivable statutory or compulsory | ||
+ | licensing scheme. In all other cases the Licensor expressly | ||
+ | reserves any right to collect such royalties. | ||
+ | |||
+ | |||
+ | Section 3 -- License Conditions. | ||
+ | |||
+ | Your exercise of the Licensed Rights is expressly made subject to the | ||
+ | following conditions. | ||
+ | |||
+ | a. Attribution. | ||
+ | |||
+ | 1. If You Share the Licensed Material (including in modified | ||
+ | form), You must: | ||
+ | |||
+ | a. retain the following if it is supplied by the Licensor | ||
+ | with the Licensed Material: | ||
+ | |||
+ | i. identification of the creator(s) of the Licensed | ||
+ | Material and any others designated to receive | ||
+ | attribution, | ||
+ | the Licensor (including by pseudonym if | ||
+ | designated); | ||
+ | |||
+ | ii. a copyright notice; | ||
+ | |||
+ | iii. a notice that refers to this Public License; | ||
+ | |||
+ | iv. a notice that refers to the disclaimer of | ||
+ | warranties; | ||
+ | |||
+ | v. a URI or hyperlink to the Licensed Material to the | ||
+ | extent reasonably practicable; | ||
+ | |||
+ | b. indicate if You modified the Licensed Material and | ||
+ | | ||
+ | |||
+ | c. indicate the Licensed Material is licensed under this | ||
+ | | ||
+ | | ||
+ | |||
+ | 2. You may satisfy the conditions in Section 3(a)(1) in any | ||
+ | reasonable manner based on the medium, means, and context in | ||
+ | which You Share the Licensed Material. For example, it may be | ||
+ | reasonable to satisfy the conditions by providing a URI or | ||
+ | hyperlink to a resource that includes the required | ||
+ | information. | ||
+ | |||
+ | 3. If requested by the Licensor, You must remove any of the | ||
+ | information required by Section 3(a)(1)(A) to the extent | ||
+ | reasonably practicable. | ||
+ | |||
+ | b. ShareAlike. | ||
+ | |||
+ | In addition to the conditions in Section 3(a), if You Share | ||
+ | | ||
+ | |||
+ | 1. The Adapter' | ||
+ | license with the same License Elements, this version or | ||
+ | later, or a BY-SA Compatible License. | ||
+ | |||
+ | 2. You must include the text of, or the URI or hyperlink to, the | ||
+ | Adapter' | ||
+ | in any reasonable manner based on the medium, means, and | ||
+ | context in which You Share Adapted Material. | ||
+ | |||
+ | 3. You may not offer or impose any additional or different terms | ||
+ | or conditions on, or apply any Effective Technological | ||
+ | Measures to, Adapted Material that restrict exercise of the | ||
+ | rights granted under the Adapter' | ||
+ | |||
+ | |||
+ | Section 4 -- Sui Generis Database Rights. | ||
+ | |||
+ | Where the Licensed Rights include Sui Generis Database Rights that | ||
+ | apply to Your use of the Licensed Material: | ||
+ | |||
+ | a. for the avoidance of doubt, Section 2(a)(1) grants You the right | ||
+ | to extract, reuse, reproduce, and Share all or a substantial | ||
+ | | ||
+ | |||
+ | b. if You include all or a substantial portion of the database | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | | ||
+ | c. You must comply with the conditions in Section 3(a) if You Share | ||
+ | all or a substantial portion of the contents of the database. | ||
+ | |||
+ | For the avoidance of doubt, this Section 4 supplements and does not | ||
+ | replace Your obligations under this Public License where the Licensed | ||
+ | Rights include other Copyright and Similar Rights. | ||
+ | |||
+ | |||
+ | Section 5 -- Disclaimer of Warranties and Limitation of Liability. | ||
+ | |||
+ | a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE | ||
+ | | ||
+ | AND AS-AVAILABLE, | ||
+ | ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | </ | ||