Documents Documentation



Documentos relacionados
INSTALACIÓN DE GITLAB

Social Coding GIT - El control de versiones es la gestión de los diversos cambios que se realizan sobre algún archivo, en este caso, código.

Paso 1 - Servidor de correo en Ubuntu: Instalar Apache 2

labs Linux para Administradores de Elastix Elastix Certification ELASTIX CERTIFICATION

Manual para el uso de GIT Los siguientes pasos indican el procedimiento para entrar a GIT y para agregar la llave pública.

INSTRUCTIVO DE INSTALACIÓN DE OMEKA 2.1.4

Servidor Apache. Hacer possible que los directorios de usuarios puedan acceder a Apache2

Instituto Tecnológico Las Américas (ITLA) Sistemas Operativos 3 (SO3) Daniel Alejandro Moreno Martínez. Matrícula:

Servidor Apache NF1 -UF3

INSTALACION DE UN SERVIDOR PENTAHO 5.2 CON POSTGRESQL 9.1 EN LINUX CENTOS 6.6 de 32 BITS

Instalación de FileZilla FTP Server

MANUAL DE INSTALACIÓN OWNCLOUD

Git The fast version control system

UF3: Servidor web y proxy

Instituto Tecnológico de Las América. Materia Sistemas operativos III. Temas. Facilitador José Doñe. Sustentante Robín Bienvenido Disla Ramirez

Actualizaciones de GateDefender Performa desde un servidor web local

Servidor Apache 1. Instalación de apache

Instituto Tecnológico de Las Américas (ITLA)

Servidor de correo. En un servidor de correo, intervienen los siguientes protocolos:

Vielka Mari Utate Tineo Instituto Tecnológico de las Américas ITLA. Profesor José Doñé. Sistema Operativo 3 PRACTICA NO. 16, SERVIDOR

Manual de instalación Sistema S.I.S.E. Versión 1.0

Instructivo para Solicitud de Certificado de Servidor 080-ISS-I017

Instituto Tecnológico de Las Américas

Contents. 1 Instalacion de Observium

MANUAL DE INSTALACIÓN DEL SWGRH

Manual de instalación y configuración de hadoop en linux

Instalando CodeKa v1.0 sobre Bitnami Xamp Stack (para Windows, Linux, OS X y Solaris).

Integración de Toolchain PTXdist sobre IDE gráfico basado en Eclipse

Petición de certificados de servidor con Apache y Openssl

INSTALACIÓN DE MySQL Índice de contenido

INSTALACIÓN DE UBUNTU SERVER 12.4 EN MÁQUINA VIRTUAL

Instalación de owncloud en Ubuntu Server LTS Realizado por: Antonio García Silva 2º ASIR IES Julio Verne

INSTALACIÓN Y USO DE OCS INVENTORY

Servidor de correo en Ubuntu 10.4: Instalar Apache 2.

CENTRO DE INVESTIGACIÓN CIENTÍFICA Y DE EDUCACIÓN SUPERIOR DE ENSENADA, BAJA CALIFORNIA Departamento de Cómputo / Dirección de Telemática ÍNDICE

LAMPP Server (Linux-Apache-MySQL-PHP-Python)

Marcos de Desarrollo. Diseño e implementación de aplicaciones Web con.net

Configuración de un servidor de correo electrónico: Dovecot-Postfix en Fedora 18

Como Crear Distro Personalizada

INSTALACIÓN DE SIESTTA 2.0 EN UN HOSTING (Ejemplo para Guebs.com)

GIT Dinahosting 3. Hola!

Servidor Web Apache Knoppix Linux.-

Integración de Toolchain PTXdist sobre IDE gráfico basado en Eclipse

Soporte Técnico Prof. Héctor Herrera. Instalando Fedora 17 en la misma máquina virtual.

Accede a su DISCO Virtual del mismo modo como lo Hace a su disco duro, a través de:

Servidor casero en apache

Como crear certificados digitales con OpenSSL 1

Servidor en Ubuntu Juan Antonio Fañas

Instituto Tecnológico de Las América. Materia Sistemas operativos III. Temas. Facilitador José Doñe. Sustentante Robín Bienvenido Disla Ramirez

SYNCTHING. Herramienta de sincronización de datos vía LAN. Laboratorio de Sistemas Operativos y Redes. Caminos Diego; Zapatero R.

Universidad de Guayaquil Carrera de Ingenieria en Sistemas

3. En caso de que no esté instalado hacemos lo siguiente

SISTEMA OPERATIVO GNU/LINUX SERVIDOR DE CORREO

INSTALACIÓN DE SERVIDOR DE CORREO ELECTRÓNICO

Configuración de Apache

CONFIGURACIÓN DEL SERVIDOR

Agente local Aranda GNU/Linux. [Manual Instalación] Todos los derechos reservados Aranda Software [1]

Instalación y configuración del servidor FTP Filezilla en Windows 2003 Server. Vicente Sánchez Patón I.E.S Gregorio Prieto.

Instituto Tecnológico de Las América. Materia Sistemas operativos III. Temas. Facilitador José Doñe. Sustentante Robín Bienvenido Disla Ramirez

SIU-Tehuelche. Sistema de Gestión de Becas

Sofi. Publicación Leonardo J. Caballero G.

GUIA DE USUARIO. CONFIGURACION CORREO ELECTRONICO

Servidor. Comenzaremos por confirmar que el servicio NFS esta instalado y ejecutandose desde la terminal, escribiremos lo siguiente: #rpm -q nfs-utils

Manual de Instalación y Configuración

Trabajo de Fin de Grado Héctor Olivares Rivero Proyecto omrocket Manual de Instalación

PEDRO REVERTE GÓMEZ SERVICIOS DE RED E INTERNET / IMPLANTACIÓN DE APLICACIONES WEB 2º ASIR

Tarea 02 de DAW. José Luis Comesaña

Guía de acceso a Meff por Terminal Server

Ficheros de configuración de Nagios (ejemplo con nrpe y snmp)

Git Servidores privados

AGREGAR COMPONENTES ADICIONALES DE WINDOWS

Tutorial: Primeros Pasos con Subversion

INSTALACION DE UN SERVIDOR PENTAHO 5.2 CON POSTGRESQL 9.1 EN LINUX CENTOS 6.6 de 32 BITS

Ambos paquetes simplifican mucho la instalación del servidor en el equipo. Y ambos pueden ser utilizados para la creación de una red intra-aula.

Servidor de correo en Ubuntu: Instalar y configurar servidor de correo

Documents Documentation

Servidor FTP en Ubuntu Juan Antonio Fañas

virtual appliance guía de inicio rápido

TUTORIAL ACADÉMICO. Programación II- Taller de Programación I Fa.CENA. UNNE

Internet Information Server

Guía para la configuración de servidor Amazon EC2

Compartiendo conocimiento... Guía básica de instalación de Asterisk 11 en Centos6.5

UNIVERSIDAD ICESI Guía de instalación y configuración del servicio de Apache en Ubuntu. Los objetivos de esta práctica de laboratorio son:

COPIAR CORREOS ENTRE CUENTAS USANDO IMAPSIZE

Gestión de Registros Parte I: rsyslog

Hello, Thanks for signing up for OpenShift! Getting started is easy.

Acá vamos a ocuparnos de cómo realizar la instalación de una red intra-aula sobre Linux, concretamente en la distribución de GNU/Linux Ubuntu 9.04.

Redes de área local Aplicaciones y Servicios Linux Otros servicios

GUÍA PARA LA INSTALACIÓN DE MOODLE EN UN COMPUTADOR PERSONAL QUE USA EL SISTEMA OPERATIVO MS. WINDOWS

Tutorial: Cómo realizar tu primer programa en C++ En el Sistema Operativo Windows

ModusOne. ModusOne Client. Version: 5.2

Profesor: José Luis Di Biase

Vielka Mari Utate Tineo Instituto Tecnológico de las Américas ITLA. Profesor José Doñé PRACTICA NO. 7, SAMBA COMO GRUPO DE TRABAJO

Guía de instalación del sistema de documentos laborales Orquídea

CONSEJERIA DE EDUCACION.

INSTRUCTIVO DE INSTALACION ATOM 2.0.1

Uso del servidor gráfico X en los servidores del CESGA mediante PuTTY y Cygwin

LAMP. Entramos en una máquina virtual de ubuntu virgen y editamos las interfaces con nuestra IP, luego hacemos un ifdown eth0 ifup eth0.

Transcripción:

Documents Documentation Publicación 0.0.1 snicoper 10 de October de 2014

Índice general 1. Editores 3 1.1. Netbeans................................................. 3 1.2. Sublime Text............................................... 4 1.3. vim.................................................... 10 2. Git 15 2.1. Comandos Basicos Git.......................................... 15 2.2. Configruacion de Git desde la linea de comandos............................ 17 2.3. Crear repositorio centralizado...................................... 18 2.4. Git en Windows............................................. 22 2.5. Git Config Linux............................................. 22 2.6. Gitignore Global............................................. 23 3. Linux 25 3.1. Apache.................................................. 25 3.2. Fedora Centos.............................................. 28 3.3. Kde.................................................... 43 3.4. MariaDB................................................. 45 3.5. Nginx................................................... 46 3.6. PHP.................................................... 57 3.7. PostgreSQL................................................ 65 3.8. Python.................................................. 67 3.9. Redis................................................... 72 3.10. Ruby................................................... 72 3.11. Scala................................................... 74 3.12. Ubuntu.................................................. 74 3.13. Añadir carpetas al PATH......................................... 83 3.14. Añadir programas al menu........................................ 83 3.15. Bind................................................... 87 3.16. Comando Cat con texto coloreado.................................... 91 3.17. Comando dd............................................... 91 3.18. Comando find.............................................. 91 3.19. Comando setfacl............................................. 91 3.20. Comprimir descomprimir desde consola................................. 92 3.21. Configurar mutt............................................. 94 3.22. Comandos Utiles............................................. 94 3.23. Contar lineas de un proyecto....................................... 103 3.24. Crear grupos y añadir usuarios a grupos................................. 103 I

3.25. Diferencias entre adduser y useradd................................... 104 3.26. Instalar Dropbox............................................. 104 3.27. Formatear discos con mkfs........................................ 105 3.28. Generar clave para SSH......................................... 105 3.29. Instalación de Memcached........................................ 106 3.30. Instalación MongoDb.......................................... 106 3.31. Instalación NodeJS............................................ 106 3.32. Mi bashrc................................................. 107 3.33. Mostrar Imagenes BIN, ISO, CUE, etc.................................. 108 3.34. Montar particiones al iniciar sistema................................... 110 3.35. Redimensionar una imagen....................................... 111 3.36. Saber donde esta un ejecutable.................................... 111 3.37. Saber temperatura del PC........................................ 111 3.38. Source Code Pro............................................. 112 3.39. Tunel SSH................................................ 112 3.40. Ver permisos en octal de los archivos.................................. 112 3.41. Virtualbox, problema con Alt Gr..................................... 112 4. Mono - Monodevelop 113 4.1. Compilar Mono y Monodevelop..................................... 113 4.2. Creacion de un proyecto ASP.NET MVC 5............................... 114 4.3. Repos de Mono y Monodevelop..................................... 115 4.4. Mono 3.4.1 Windows.......................................... 116 5. Programacion 117 5.1. Apuntes sin clasificar........................................... 117 5.2. C# y ASP.NET MVC........................................... 120 5.3. Html Css................................................. 152 5.4. Javascript................................................. 155 5.5. MariaDB................................................. 161 5.6. PCRE - Perl Compatible Regular Expressions.............................. 164 5.7. PHP.................................................... 166 5.8. PostgreSQL................................................ 167 5.9. Python.................................................. 171 5.10. UML................................................... 191 6. Windows 195 6.1. Eliminar un Servicio........................................... 195 6.2. Instalación de PostgreSQL Windows.................................. 195 6.3. Instalación Python en Windows..................................... 197 6.4. Instalar Cygwin............................................. 198 6.5. Instalar PHP y Laravel.......................................... 198 6.6. KDE For Windows............................................ 200 6.7. MongoDB en Windows......................................... 200 6.8. ODBC PostgreSQL en Windows..................................... 201 6.9. Olbidar Red............................................... 201 6.10. Visual Studio............................................... 202 II

Estos son los apuntes que he ido acumulando durante los últimos años sobre informática que quiero compartirlos con todos. Algunos apuntes son sacados de otras paginas y no tengo links de referencia, eran apuntes personales!. Si eres autor de alguno de mis apuntes y quieres que ponga referencia a tu articulo o quieres que lo quite, por favor, mándame un email. Pido disculpas por las faltas de ortografía o errores en los apuntes, etc, pero solo eran unos apuntes.txt que lo he pasado a.rst. Cualquier sugerencia o corrección snicoper@gmail.com Contents: Índice general 1

2 Índice general

CAPÍTULO 1 Editores Contents: 1.1 Netbeans Contents: 1.1.1 Join Lines Advertencia: Mejorar si lo vuelvo hacer. Añadir comando para juntar lineas. Tools->Options->Editor->Macros tab (New) button -> Macro Name type you want ex join-line below textarea Macro code: cut and paste this line (Set Shortcut) button -> Ctrl+J (press Ctrl key + J) End another useful thing delete-line macro NOT Ctrl+E caret-end-line selection-begin-line remove-selection test for yourself 1.1.2 LF Windows Poner final de linea LF en Netbeans Editar como administrador. 3

C:\Program Files\NetBeans 7.3\etc\netbeans.conf Buscar netbeans_default_options= y añadir -J-Dline.separator=LF -J-Dfile.encoding=UTF-8 1.2 Sublime Text Contents: 1.2.1 Anaconda Fuentes https://github.com/damnwidget/anaconda/blob/master/anaconda.sublime-settings La configuración se pone en Preferences -> Package Settings -> Anaconda -> Settings - User. "python_interpreter": "/home/snicoper/.virtualenvs/default/bin/python", "anaconda_linter_mark_style": "none", "complete_parameters": true, "anaconda_gutter_theme": "alpha", "display_signatures": true, "pep8_max_line_length": 100, "auto_formatting": false, "pep8_ignore": [ ], 1.2.2 Build Python 3 en Linux En Linux, tanto en Fedora como en Ubuntu se tiene instalado Python 2.x y 3.x, por defecto al pulsar Ctrl+B ejecuta Python 2.x. Para cambiar este comportamiento, en el editor: Tools -> Build System -> new Build System "cmd": ["python3", "-u", "$file"], "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)", "selector": "source.python" Lo guardo como Python3.sublime-build en.config/sublime-text-3/packages/user Ahora en Tools > Build System seleccionar Python3 4 Capítulo 1. Editores

Virtualenv Ejemplo de como ejecutarlo para un entorno virtual de Python Virtualenv "cmd": ["/home/snicoper/.virtualenvs/py3venv/bin/python3", "-u", "$file"], "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)", "selector": "source.python" 1.2.3 Codeintel Atención: Para recordar, me dejo aquí algunos ejemplos, hay que cambiar las rutas. Configuracion Linux vim ~/.codeintel/config "PHP": "php": /usr/bin/php, "phpextrapaths": [], "phpconfigfile": /etc/php.ini, "JavaScript": "javascriptextrapaths": [], "Perl": "perl": "/usr/bin/perl", "perlextrapaths": [] "Python": "python": /usr/bin/python, "pythonextrapaths": [], "Python3": "python": /usr/bin/python3, "pythonextrapaths": [], "virtualenv_de_muestra": "python": /home/snicoper/venvs/py3venv/bin/python3, "pythonextrapaths": [ /home/snicoper/venvs/py3venv/lib/python3.3/site-packages ], 1.2.4 Error LANG=en_US.UTF-8 sublime_text Me paso en Ubuntu Editar 1.2. Sublime Text 5

sudo vim /usr/share/applications/sublime_text.desktop Buscar y remplazar: # buscar Exec=/opt/sublime_text/sublime_text %F # remplazar Exec=bash -c "LANG=en_US.UTF-8 /opt/sublime_text/sublime_text %F" 1.2.5 Instalacion Packages Instalacion de Package Control import urllib.request,os,hashlib; h = 7183a2d3e96f11eeadd761d777e62404 + e330c659d4bb41d3bdf022e94 Packages comunes SublimeLinter DocBlockr Git SideBarGit GitGutter SidebarEnhancements Tabright BlockCursorEverywhere (https://github.com/jlangston/blockcursoreverywhere) Theme Predawn Python Anaconda Djaneiro Python Imports Sorter # Linux: Super+Shift+I Python varios SublimeREPL PythonImproved 6 Capítulo 1. Editores

Javascript Css Requiere algunos paquetes de Instalación NodeJS less less2css Better Typescript Minifier (ctrl + alt + shift + m) Otros Me dejo aquí algunos addons para recordar el nombre. Theme - Flatland SublimeLinter-pep8 Monokai extended AllAutocomplete SublimeCodeIntel Markdown Preview Alignment Emmet PHP Getters and Setters php-twig FavoriteFiles Tomorrow Color Schemes Theme - Soda Theme - Spacegray Theme - Spacefunk 1.2.6 Key Bindings Algunas combinaciones de teclas no me funciona por defecto, por lo que tengo configuradas una pocas. Algunas sin modificar si funcionan el Windows, pero para no tener 2 diferentes, uso esta configuración en ambos sistemas. [ // Indetntar codigo "keys": ["ctrl+shift+."], "command": "indent", // DesIndentar codigo "keys": ["ctrl+shift+,"], "command": "unindent", // Comentar linea "keys": ["ctrl+shift+c"], "command": "toggle_comment", "args": "block": false, 1.2. Sublime Text 7

// Comentar bloque "keys": ["ctrl+shift+b"], "command": "toggle_comment", "args": "block": true, // Join lines "keys": ["ctrl+j"], "command": "join_lines", // Alignment (No lo instalo) // "keys": ["ctrl+shift+a"], "command": "alignment", ] // Reindentar lineas "keys": ["alt+shift+l"], "command": "reindent", "args": "single_line": false 1.2.7 Ejeplo de un Proyecto Referencia de un archivo de proyecto Sublime Text 3 "folders": [ "follow_symlinks": true, "path": "/home/snicoper/projects/python", "folder_exclude_patterns": [ ".idea", ], "file_exclude_patterns": [ "phpdoc-*", ".directory", ] ], // Anaconda "settings": "python_interpreter": "/home/snicoper/.virtualenvs/py3venv/bin/python3", "auto_complete_triggers": [ "selector": "source.python - string - comment - constant.numeric", "characters": "."] 1.2.8 SublimeREPL Por defecto ejecuta Python 2 en Linux, para cambiar de ejecutable, hay que modificar un archivo. Crear una copia Python/Main.sublime-menu cp.config/sublime-text-3/packages/sublimerepl/config/python/main.sublime-menu.config/sublime-text-3 Abrir el archivo vim.config/sublime-text-3/packages/sublimerepl/config/python/main.sublime-menu # Ejecutar en busqueda y remplazo con vim :%s/\"cmd\"\: \[\"python\"\,/\"cmd\"\: \[\"python3\"\,/g Para mostrar la consola Tools -> SublimeREPL -> Python -> Elegir uno 8 Capítulo 1. Editores

1.2.9 Typescript compiler Comprobar donde esta el binario de tsc which tsc Añadirlo a Preferences > Package Settings > Better Typescript > Settigs User "bindir": "/usr/local/bin", "compileonsave": true 1.2.10 Settings User Esta configuración la uso tanto en Linux como en Windows, solo mirar que la fuente este instalada o cambiar por otra, también ajustar tamaño fuente. Abrir Preferences > Setting - User // Colors and theme "theme": "predawn.sublime-theme", "color_scheme": "Packages/Predawn/predawn.tmTheme", "tabs_small": true, "findreplace_small": true, // Font "font_face": "Source Code Pro", "font_size": 10.5, "font_options": "subpixel_antialias", // Editor view look-and-feel "highlight_line": true, "show_minimap": false, "show_full_path": true, "bold_folder_labels": true, // Editor behavior "highlight_modified_tabs": true, "find_selected_text": true, "shift_tab_unindent" : false, "tab_completion": false, // Word wrapping - follow PEP 8 recommendations "rulers": [ 100 ], "word_wrap": false, // Whitespace - no tabs, trimming, end files with \n "tab_size": 4, "translate_tabs_to_spaces": true, "trim_trailing_white_space_on_save": true, "ensure_newline_at_eof_on_save": true, // Sidebar - exclude distracting files and folders "file_exclude_patterns": [ ".DS_Store", 1.2. Sublime Text 9

"*.pid", "*.pyc", ".directory", "*.sublime*", ], "folder_exclude_patterns": [ ".git", ".svn", ".hg", " pycache ", "env", "env3", ".idea", ".codeintel", "migrations", ], "ignored_packages": [ ], "vintage_start_in_command_mode": true 1.3 vim Contents: 1.3.1 Mi.vimrc Fuentes https://github.com/spf13/spf13-vim https://github.com/chriskempson/tomorrow-theme/tree/master/vim/colors spf13-vim vim ~/.vimrc.bundles.local " Guias de indentacion " Bundle Yggdroot/indentLine vim ~/.vimrc.local set mouse= set nospell set nofoldenable set nocursorline colorscheme wombat256 let g:indent_guides_enable_on_vim_startup = 0 10 Capítulo 1. Editores

" Cambiar el cursor en Konsole let &t_si = "\<Esc>]50;CursorShape=1\x7" let &t_ei = "\<Esc>]50;CursorShape=0\x7" cd ~ curl https://j.mp/spf13-vim3 -L > spf13-vim.sh && sh spf13-vim.sh Para actualizar. cd $HOME/to/spf13-vim/ git pull vim +BundleInstall! +BundleClean +q Personalizada Esta no es tan completa como spf13, pero ya me vale. Crear carpeta si no existe mkdir -p ~/.vim/colors Dentro de colors le pongo el theme chriskempson/tomorrow-theme " Sample.vimrc file by Martin Brochhaus " Presented at PyCon APAC 2012 " ============================================ " Note to myself: " DO NOT USE <C-z> FOR SAVING WHEN PRESENTING! " ============================================ " Automatic reloading of.vimrc "" autocmd! bufwritepost.vimrc source % " Better copy & paste " When you want to paste large blocks of code into vim, press F12 before you " paste. At the bottom you should see -- INSERT (paste) --. set pastetoggle=<f12> set clipboard=unnamed " Mouse and backspace set bs=2 " make backspace behave like normal again " Rebind <Leader> key " I like to have it here becuase it is easier to reach than the default and " it is next to m and n which I use for navigating between tabs. let mapleader = "," " Bind nohl " Removes highlight of your last search " <C> stands for CTRL and therefore <C-n> stands for CTRL+n noremap <C-n> :nohl<cr> vnoremap <C-n> :nohl<cr> inoremap <C-n> :nohl<cr> " Quicksave command 1.3. vim 11

noremap <C-Z> :update<cr> vnoremap <C-Z> <C-C>:update<CR> inoremap <C-Z> <C-O>:update<CR> " bind Ctrl+<movement> keys to move around the windows, instead of using Ctrl+w + <movement> " Every unnecessary keystroke that can be saved is good for your health :) "" map <c-j> <c-w>j "" map <c-k> <c-w>k "" map <c-l> <c-w>l "" map <c-h> <c-w>h " easier moving between tabs map <Leader>n <esc>:tabprevious<cr> map <Leader>m <esc>:tabnext<cr> " Enable syntax highlighting " You need to reload this file for the change to apply filetype off filetype plugin indent on syntax on " Color scheme set background=dark set t_co=256 colorscheme Tomorrow-Night-Bright " Showing line numbers and length set number " show line numbers set tw=79 " width of document (used by gd) set nowrap " don t automatically wrap on load set fo-=t " don t automatically wrap text when typing set colorcolumn=80 highlight ColorColumn ctermbg=233 " Useful settings set history=700 set undolevels=700 " Real programmers don t use TABs but spaces set tabstop=4 set softtabstop=4 set shiftwidth=4 set shiftround set expandtab " Make search case insensitive set hlsearch set incsearch set ignorecase set smartcase " Disable stupid backup and swap files - they trigger too many events " for file system watchers set nobackup set nowritebackup set noswapfile " Stupid shift key fixes 12 Capítulo 1. Editores

command! -bang -nargs=* -complete=file E e<bang> <args> command! -bang -nargs=* -complete=file W w<bang> <args> command! -bang -nargs=* -complete=file Wq wq<bang> <args> command! -bang -nargs=* -complete=file WQ wq<bang> <args> command! -bang Wa wa<bang> command! -bang WA wa<bang> command! -bang Q q<bang> command! -bang QA qa<bang> command! -bang Qa qa<bang> 1.3. vim 13

14 Capítulo 1. Editores

CAPÍTULO 2 Git Contents: 2.1 Comandos Basicos Git 2.1.1 Links http://www.maefloresta.com/portal/es/git.es Nota: Es una recopilación que voy encontrando, generalmente son cosas simples. 2.1.2 Comandos Basicos Creacion de un repositorio. git init. Clonar un repositorio. git clone url Añade un directorio de manera recursiva, o un archivo para que sea incluido en el próximo commit. git add nombre Añade todos los archivos para que sea incluido en el próximo commit. git add --all Eliminar un archivo o directorio de manera recursiva. git rm nombre Mover archivo o directorio a una nueva ruta. # -f : Sobre-escribe los cambios locales no guardados git mv nombre Imprime un reporte del estado actual del árbol de trabajo local. 15

# git st, por el alias git status Muestra la diferencia entre los cambios en el árbol de trabajo local. git diff ruta Muestra las diferencias entre los cambios registrados y los no registrados. git diff HEAD ruta Marca el archivo para que no sea incluido en el próximo commit. git reset HEAD ruta Realiza el commit de los archivos que han sido registrados (con git-add) -a : Automáticamente registra todos los archivos modificados. -m Texto del commit aqui : Añade automaticamente el commit con el comentario. git commit Deshace commit & conserva los cambios en el árbol de trabajo local. git reset --soft HEAD^ Restablece el árbol de trabajo local a la versión del ultimo commit. git reset --hard HEAD^ Elimina archivos desconocidos del árbol de trabajo local. git clean Muestra el log del commit, opcionalmente de la ruta especifica. git log [ruta] Trae los cambios desde un repositorio remoto. git fetch [remote] Descarga y guarda los cambios realizados desde un repositorio remoto. git pull [remote] Guarda los cambios en un repositorio remoto. git push [remote] Lista los repositorios remotos. git remote Añade un repositorio remoto a la lista de repositorios registrados. git remote add remote url Cambia el árbol de trabajo local a la rama indicada. # -b rama : Crea la rama antes de cambiar el árbol de trabajo local a dicha rama. git checkout rama 16 Capítulo 2. Git

Lista las ramas locales. git branch Eliminar un brach. git brach -d brach Sobre-escribe la rama existente y comienza desde la revisión. git branch -f rama rev Guarda los cambios desde la rama. git merge rama untacker files git rm -r --cached <your directory> 2.2 Configruacion de Git desde la linea de comandos Nota: Usar mejor Configuración Git Config Linux, tiene configuraciones que aquí no tengo puestas. 2.2.1 Configuración basica git config --global user.name "Salvador Nicolas" git config --global user.email "snicoper@gmail.com" git config --global color.ui true git config --global core.editor vim 2.2.2 Mis Alias git config --global alias.lg "log --pretty=format: %Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr git config --global alias.co "checkout" git config --global alias.cm "commit" git config --global alias.st status git config --global alias.br branch 2.2.3 Global gitignore Con este archivo, todos los repos ignoraran los patrones de este archivo. git config --global core.excludesfile ~/.gitignore_global Ahora hay que crear el archivo. touch ~/.gitignore_global Ver Gitignore Global 2.2. Configruacion de Git desde la linea de comandos 17

2.3 Crear repositorio centralizado Advertencia: Muchos de estos apuntes son viejos y pueden estar des actualizados. Fuentes http://www.git-scm.com/book/es/git-en-un-servidor-preparando-el-servidor http://ymbra.com/es/blog/ramon/gestion-de-repositorios-git-con-gitosis http://www.git-scm.com/book/es/git-en-un-servidor-gitosis https://github.com/sitaramc/gitolite#readme 2.3.1 Opcion 1 Esta opción es crear un repositorio en /opt, después creamos un usuario (o varios) y le damos permisos con setfacl al/los usuarios creados en el repo. Todos los usuarios asignados tendrán los mismos permisos, útil para poca gente y de confianza. Crear en el servidor remoto una carpeta para el proyecto. mkdir -p /opt/git/example.git cd /opt/git/example.git git init --bare # Crear usuario adduser user1 passwd user1 Dar permisos al los usuarios. sudo setfacl -R -m u:user1:rwx -m u:userx:rwx /opt/git/example.git sudo setfacl -dr -m u:user1:rwx -m u:userx:rwx /opt/git/example.git Si el repositorio local ya existe, y/o el remoto esta vacio. git remote add origin user1@ip:/opt/git/example.git git push origin master Si el repositorio tiene contenido, simplemente un clone. git clone user1@ip:/opt/git/example.git 2.3.2 Opcion 2 Otra manera es crear un usuario en el sistema, por ejemplo git y poner en authorized_keys los usuarios con acceso al repositorio. useradd -d /home/git -s /bin/bash -c git control version git passwd git Crear en el servidor remoto una carpeta, loguearse como git. 18 Capítulo 2. Git

mkdir -p /home/git/example.git cd /home/git/example.git git init --bare Ahora los clientes remotos que quieran tener acceso de lectura/escritura deberán proporcionar una clave rsa. ssh-keygen -t rsa Subirlo de alguna manera al servidor, por ejemplo scp. scp id_rsa.pub git@ip_server:/tmp Luego como usuario git en el server. echo /tmp/id_rsa >>.ssh/authorized_keys Eliminar la id_rsa de tmp sudo rm -f /tmp/id_rsa.pub 2.3.3 Opcion 3 Gitosis Advertencia: Si algún día lo hago, ordenarlo y presentarlo mejor. Gitosis en git scm book Gitosis en github Otra manera también es crear un server donde almacena todos los repositorios de una manera muy cómoda. Probado en Centos 6.x Fedora/Centos useradd -d /home/git -s /bin/bash -c git control version git Ubuntu sudo adduser --system --shell /bin/sh --gecos git version control --group --disabled-password --hom Descargar el paquete gitosis. Advertencia: La instalación se ha de hacer clonando repositorio en github, Nota para hacer para la próxima vez. Debemos tener una clave rsa o dsa publica, por ejemplo en /tmp. Nota: No se si tengo que tener al usuario git en visudo. sudo -H -u git gitosis-init < /tmp/id_rsa.pub Desde el pc local (cliente) 2.3. Crear repositorio centralizado 19

git clone git@ip_server:gitosis-admin.git Crear nuevo repositorio, desde el PC local cd gitosis-admin vim gitosis.conf [group project_example] memebers = snicoper@workspace.local writable = project_example git commit -am Dar permisos de escritura en project_example a snicoper git push origin master Ahora desde otro directorio crear una carpeta e inicializar un proyecto. mkdir project_example cd project_example git init git remote add origin git@ip_server:project_example # Crear archivos, etc git push origin master Listo!!! Añadir nuevos usuarios a proyectos Para añadir un nuevo usuario con permisos de escritura, no es necesario hacerlo desde el PC servidor, lo podemos hacer desde el PC de snicoper@workspace.local. Necesitamos la key rsa publica del otro usuario id_rsa.pub cd gitosis-admin Copiar y renombrar la clave rsa en gitosis-admin/keydir. cp /tmp/id_rsa.pub keydir/nombre.pub git add keydir/nombre.pub Ahora hay que darle acceso, por ejemplo, al proyecto que hemos creado en el apartado anterior. Abrimos el archivo gitosis.conf y modificamos la sección pertinente: [group project_example] memebers = snicoper@workspace.local ([otro_nombre@nombre_maquina] [otro_nombre(el del archivo.pub) writable = project_example Ahora el otro cliente ya podrá clonar y después pushes. git clone git@ip_server:project_example.git 2.3.4 Opcion 4 Gitolite Advertencia: Escribir documentación la próxima vez que la haga. Documentacion Ubuntu Nota: Dejo en texto plano, los antiguos apuntes, pero son un poco liosos. 20 Capítulo 2. Git

# Usando Gitolite # Fedora 20 $ yum -y install gitolite3 python-setuptools perl-time-hires Tener una id_rsa.pub Crea un usuario git si no existe # Fedora/Centos $ useradd -c git control version git $ passwd git # Ubuntu $ sudo adduser --system --shell /bin/sh --gecos git version control --group --disabled-password --h $ su - git $ cd /home/git $ cp /tmp/id_rsa.pub ~/snicoper.pub ==================================== Desde gitgub (Recomendado en Ubuntu) ==================================== Añadir path en bashrc $ vim ~/.bashrc export PATH=~/bin:$PATH $ git clone git://github.com/sitaramc/gitolite $ mkdir -p $HOME/bin $ gitolite/install -to $HOME/bin ==================================== $ gitolite setup -pk snicoper.pub Ahora para poder administrar los isuarios, debemos clonar gitolite-admin al pc local. $ cd Projects $ git clone git@ip_server:gitolite-admin Dentro de gitolite-admin hay 2 carpetas conf y keydir Para añadir usuarios con permisos añadir su id_rsa.pub (renombrado a nombre_usr.pub) a la carpeta keydir. Para añadir los diferenctes niveles y/o crear nuevos repositoios: $ vim conf/gitolite.conf repo example.dev RW+ = snicoper RW = other_user R = andother_user $ git add conf $ git add keydir $ git commit -m added snicoper, se dio acceso a other_user y a andother_user $ git push Ahora gitolite en el servidor se encarga de añadir las claves rsa en authorized_keys y crea un repositorio vacio llamado example.dev. Para usar localmente el repo $ cd ~/carpeta 2.3. Crear repositorio centralizado 21

$ git clone git@ip_server:example.dev Para ver una lista completa de los permisos https://github.com/sitaramc/gitolite#readme ACCESS RULES 2.4 Git en Windows Instalar Git y Tortoise git Añadir al path C:\Program Files (x86)\git\bin;c:\program Files (x86)\git\cmd; Nota: Las configuración con Cygwin y kdiff3 no me han funcionado, usar el instalador de Windows. 2.4.1 Gitconfig con kdiff3 [user] name = Salvador Nicolas email = snicoper@gmail.com [color] ui = true [core] editor = C:/Program Files/Sublime Text 3/sublime_text.exe -w [alias] lg = log --pretty=format: %Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr %an)%creset --abbre co = checkout cm = commit st = status br = branch [merge] tool = kdiff3 [diff] tool = kdiff3 [mergetool "kdiff3"] path = C:/Program Files/KDiff3/kdiff3.exe keepbackup = false trustexitcode = false 2.5 Git Config Linux 2.5.1 Configuracion con Kdiff3 [user] name = Salvador Nicolas email = snicoper@gmail.com [color] ui = true [core] editor = vim 22 Capítulo 2. Git

excludesfile = /home/snicoper/.gitignore_global [alias] lg = log --pretty=format: %Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr %an)%creset --abbre co = checkout cm = commit st = status br = branch [merge] tool = kdiff3 [diff] tool = kdiff3 [mergetool] keepbackup = false trustexitcode = false 2.5.2 Configuración con Meld [user] name = Salvador Nicolas email = snicoper@gmail.com [color] ui = true [core] editor = vim excludesfile = /home/snicoper/.gitignore_global [alias] lg = log --pretty=format: %Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr %an)%creset --abbre co = checkout cm = commit st = status br = branch [merge] tool = meld [diff] tool = meld [mergetool] keepbackup = false trustexitcode = false Arhora hay que crear el archivo touch ~/.gitignore_global Ver Gitignore Global 2.6 Gitignore Global Configuración que voy poniendo aquí, es general para todos los casos mas comunes. Crear archivo.gitignore_global vim ~/.gitignore_global # File types # ############## 2.6. Gitignore Global 23

*.pyc *.swo *.swp *.swn # Directories # ############### pycache /.idea/ build/ logs/ # Specific files # ################## # OS generated files # ######################.directory.ds_store? ehthumbs.db Icon? Thumbs.db *~ 24 Capítulo 2. Git

CAPÍTULO 3 Linux Categorias: 3.1 Apache 3.1.1 Instalacion de Apache Fedora yum -y install httpd Remove test page rm -f /etc/httpd/conf.d/welcome.conf vim /etc/httpd/conf/httpd.conf Opcional # line 86: Admin s address ServerAdmin snicoper@gmail.com # line 95: change to your server s name ServerName www.workspace.local:80 # Añadir en la ultima linea # server s header ServerTokens Prod # ServerSignature ServerSignature Off SELinux Ver Reglas SELinux systemctl start httpd.service systemctl enable httpd.service 25

Firewall firewall-cmd --permanent --zone=public --add-service=http firewall-cmd --permanent --zone=public --add-service=https systemctl restart firewalld.service Ubuntu sudo apt-get -y install apache2 3.1.2 Apache Virtualhost Siempre creo los entornos en el ~/usuario/public_html pero se podría poner donde uno quiera. Fedora Como root todo mkdir /home/snicoper/public_html chmod 711 /home/snicoper chmod 755 /home/snicoper/public_html chown snicoper:snicoper /home/snicoper/public_html Ubuntu mkdir /home/snicoper/public_html Crear virtualhost, fedora y ubuntu # Fedora vim /etc/httpd/conf.d/workspace.local.conf # Ubuntu sudo vim /etc/apache2/sites-available/workspace.local <VirtualHost *:80> DocumentRoot /home/snicoper/public_html ServerName www.workspace.local ServerAlias www.workspace.local DirectoryIndex index.php ServerAdmin snicoper@gmail.com ErrorLog /var/log/httpd/workspace.local-error_log CustomLog /var/log/httpd/workspace.local-access_log combined <Directory /home/snicoper/public_html> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all Require all granted </Directory> </VirtualHost> 26 Capítulo 3. Linux

Ubuntu a2enmod rewrite a2dissite default a2ensite workspace.local SELinux Ver Reglas SELinux SSL Fedora yum install mod_ssl mkdir /etc/httpd/ssl openssl req -new -x509 -days 365 -nodes -out /etc/httpd/ssl/httpd.pem -keyout /etc/httpd/ssl/httpd.ke Country Name (2 letter code) [XX]:es State or Province Name (full name) []:Spain Locality Name (eg, city) [Default City]:Barcelona Organization Name (eg, company) [Default Company Ltd]:snicoper Organizational Unit Name (eg, section) []:personal Common Name (eg, your name or your server s hostname) []:lxmaq1.workspace.local Email Address []:snicoper@gmail.com Ahora es cada virtual host, hacer una copia y modificar cp /etc/httpd/conf.d/workspace.conf /etc/httpd/conf.d/ssl.workspace.conf vim /etc/httpd/conf.d/ssl.workspace.conf <VirtualHost *:443> SSLEngine On SSLCertificateFile /etc/httpd/ssl/httpd.pem SSLCertificateKeyFile /etc/httpd/ssl/httpd.key DocumentRoot /home/snicoper/public_html ServerName www.workspace.local ServerAdmin snicoper@gmail.com ErrorLog /var/log/httpd/workspace.local-error_log CustomLog /var/log/httpd/workspace.local-access_log combined <Directory /home/snicoper/public_html> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all Require all granted </Directory> </VirtualHost> Ubuntu POR HACER 3.1. Apache 27

3.2 Fedora Centos Contents: 3.2.1 Enviar alertas SELinux por email Fuentes http://major.io/2011/09/15/receive-e-mail-reports-for-selinux-avc-denials/ yum install setroubleshoot-server,-plugins,-doc El archivo de configuracion esta en: /etc/setroubleshoot/setroubleshoot.conf, lo dejo todo por defecto. echo "selinux@mycompany.com" >> /var/lib/setroubleshoot/email_alert_recipients service messagebus restart Para probarlo, cambiar el puerto de ssh y conectar. 3.2.2 Cambiar Plymouth yum install plymouth-theme-solar plymouth-set-default-theme solar dracut --force reboot Para saber los themes que tenemos instalados. plymouth-set-default-theme -l 3.2.3 Configurar Red Fuentes http://superuser.com/questions/645487/static-ip-address-with-networkmanager Como administrador e ir a donde están los archivos de red. su cd /etc/sysconfig/network-scripts/ Editar segun la interface que use. vim ifcfg-p2p1 Nota: Cuidado no tocar algunas variables como UUID o HWADDR. 28 Capítulo 3. Linux

TYPE=Ethernet BOOTPROTO=none DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_PEERDNS=yes IPV6_PEERROUTES=yes IPV6_FAILURE_FATAL=no NAME=p2p1 UUID=7622e20e-3f2a-4b5c-83d8-f4f6e22ed7ec ONBOOT=yes HWADDR=00:14:85:BC:1C:63 IPADDR=192.168.1.10 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DNS1=127.0.0.1 DNS2=8.8.8.8 DNS3=8.8.4.4 3.2.4 Configurar SSH Configuración basica de SSH yum install ssh systemctl start sshd.service systemctl enable sshd.service Editamos el archivo de configuración de ssh. vim /etc/ssh/sshd_config # Linea 17, descomentar y cambiar puerto por defecto Port 50022 # line 48: uncomment and change no PermitRootLogin no # line 77: uncomment PermitEmptyPasswords no # Se tendra que crear un passphare con pass # line 78: PasswordAuthentication yes # Añadir al final AllowUsers snicoper Si se cambia el puerto por defecto y SELinux esta activado semanage port -a -t ssh_port_t -p tcp PUERTO_NUEVO Crear una clave rsa, desde el cliente/clientes ssh-keygen -t rsa Subirla al servidor 3.2. Fedora Centos 29

scp.ssh/id_rsa.pub snicoper@ns1.workspace.local: En el servidor, como usuario mkdir.ssh chmod 700.ssh touch.ssh/authorized_keys chmod 600.ssh/authorized_keys cat id_rsa.pub >.ssh/authorized_keys Firewalld firewall-cmd --permanent --zone=public --add-service=ssh # Si es un puerto distinto al 22 firewall-cmd --permanent --zone=public --add-port=puerto/tcp 3.2.5 Crear SSL Nota: Probado para postfix, httpd usa otro. Mirar de configurar para que use el mismo, si es posible. cd /etc/pki/tls/certs make workspace.key Introducir passphrase umask 77 ; \ /usr/bin/openssl genrsa -aes128 2048 > workspace.key openssl rsa -in workspace.key -out workspace.key make workspace.csr Los datos que le pongo (Son para servidor de pruebas!) Country Name (2 letter code) [XX]:es State or Province Name (full name) []:Spain Locality Name (eg, city) [Default City]:Barcelona Organization Name (eg, company) [Default Company Ltd]:snicoper Organizational Unit Name (eg, section) []:Web service Common Name (eg, your name or your server s hostname) []:ns1 Email Address []:snicoper@gmail.com Please enter the following extra attributes to be sent with your certificate request A challenge password []:(vacio) An optional company name []: (vacio) openssl x509 -in workspace.csr -out workspace.crt -req -signkey workspace.key -days 3650 chmod 400 workspace.* 30 Capítulo 3. Linux

3.2.6 Eliminar Kernel Antiguos Peligro: Cuidado de no eliminar el que se esta usando, nunca me ha pasado, pero no se si lo permitiria. Fuentes http://my.opera.com/man666/blog/quitar-kernels-antiguos-en-fedora Como usuario root, para ver todos los kernels instalados rpm -qa grep kernel- Para eliminar el o los kernels viejos rpm -e kernel-2.6.38.2-9.fc15.x86_64 3.2.7 Escanear redes conectadas en Lan sudo yum -y install arp-scan sudo arp-scan --interface=p2p1 --localnet 3.2.8 Firewall Basico Referencias https://fedoraproject.org/wiki/firewalld#using_firewall-cmd http://ktaraghi.blogspot.com.es/2013/10/what-is-firewalld-and-how-it-works.html http://liquidat.wordpress.com/2013/04/09/howto-firewalld-basics/ drop (Inmutable): Los paquetes de red entrantes se cae, no hay respuesta. Sólo las conexiones de red salientes son posibles. block: Las conexiones de red entrantes se rechazarán con un mensaje icmp-host-prohibited para IPv4 e icmp6- adm-prohibido para IPv6. Sólo las conexiones de red iniciadas dentro de este sistema son posibles. external: Para su uso en redes externas con enmascaramiento habilitado especialmente para los routers. Usted no confía en los otros equipos de redes para no dañar su equipo. Sólo seleccionados conexiones entrantes son aceptadas. dmz: Para los equipos de la zona de distensión que son de acceso público con acceso limitado a la red interna. Sólo seleccionados conexiones entrantes son aceptadas. work: Para el uso en las áreas de trabajo. Que en su mayoría confían en los otros equipos de redes para no dañar su equipo. Sólo seleccionados conexiones entrantes son aceptadas. home: Para su uso en zonas de origen. Que en su mayoría confían en los otros equipos de redes para no dañar su equipo. Sólo seleccionados conexiones entrantes son aceptadas. internal: Para su uso en redes internas. Que en su mayoría confían en los otros equipos de la red para no dañar su equipo. Sólo seleccionados conexiones entrantes son aceptadas. 3.2. Fedora Centos 31

trusted: Todas las conexiones de red son aceptadas. Añadir un puerto de manera persistente firewall-cmd --permanent --zone=public --add-port=80/tcp Añadir un servicio de manera persistente firewall-cmd --permanent --zone=public --add-service=http Para eliminar cabiar add-x por remove-x Listar puertos o servicios abiertos firewall-cmd --zone=public --list-ports firewall-cmd --zone=public --list-services 3.2.9 Fuente Ubuntu Fuentes: http://font.ubuntu.com/ unzip ubuntu-font-family-0.80.zip sudo mv ubuntu-font-family-0.80 /usr/share/fonts/ubuntu-font-family 3.2.10 Post instalacion Centos Nota: Actualmente Centos 7 Todo se hace como usuario root a no ser que se diga lo contrario. Actualizar el sistema yum update yum install net-tools wget vim EPEL RHEL/CentOS 7 wget http://dl.fedoraproject.org/pub/epel/beta/7/x86_64/epel-release-7-1.noarch.rpm rpm -ivh epel-release-7-1.noarch.rpm rm epel-release-7-1.noarch.rpm REMI http://rpms.famillecollet.com/ 32 Capítulo 3. Linux

wget http://rpms.famillecollet.com/enterprise/remi-release-7.rpm rpm -ivh remi-release-7.rpm rm remi-release-7.rpm Programas basicos yum install -y kernel-devel kernel-headers gcc cpp make yum -y install p7zip \ p7zip-plugins \ openssh \ wget \ git \ ctags \ ctags-etags \ mutt \ htop \ nmap \ python-pygments \ java-1.7.0-openjdk-devel KDE yum -y install oxygen-cursor-themes firefox kate \ umbrello git-cola kdiff3 Gnome yum -y install nautilus-open-terminal \ gnome-tweak-tool \ meld Calligra completo yum install -y calligra Diccionario en español yum install -y hunspell-es Idioma KDE español yum -y install kde-l10n-es \ calligra-l10n-es Idioma español man 3.2. Fedora Centos 33

yum -y man-pages-es \ man-pages-es-extra Eliminar algunos KDE yum remove -y \ libkdegames \ kdegames-minimal \ kwrite \ kdenetwork-kget \ kdenetwork-kget-libs \ amarok \ bluedevil \ libbluedevil PackageKit yum install gnome-packagekit 3.2.11 Post instalacion Fedora Nota: Actualmente Fedora 20 Todo se hace como usuario root a no ser que se diga lo contrario. Si se elimina Calligra, eliminarlo antes de actualizar. yum remove calligra* Actualizar yum update Instalar Vim yum install -y vim Editar el hosts vim /etc/hosts 127.0.0.1 lxmaq1.workspace.local lxmaq1 Establecer hostname hostnamectl set-hostname lxmaq1.workspace.local 34 Capítulo 3. Linux

RPMFusion and Remi Fedora 20 RPMFusion http://rpmfusion.org/configuration Con wget cd Downloads/ yum install -y wget wget http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-20.noarch.rpm wget http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-20.noarch.rpm rpm -U rpmfusion-* yum update -y # Eliminar rm -f rpmfusion-* Install Remi Repository in Fedora 20 wget http://rpms.famillecollet.com/remi-release-20.rpm rpm -Uvh remi-release-20.rpm Codecs yum -y install gstreamer-ffmpeg \ gstreamer-ffmpeg \ gstreamer-plugins-ugly \ gstreamer1-libav \ gstreamer1-plugins-bad-freeworld \ gstreamer1-plugins-ugly Flash-Player x64 rpm -ivh http://linuxdownload.adobe.com/adobe-release/adobe-release-x86_64-1.0-1.noarch.rpm rpm --import /etc/pki/rpm-gpg/rpm-gpg-key-adobe-linux yum install -y flash-plugin nspluginwrapper alsa-plugins-pulseaudio libcurl Programas basicos # yum -y groupinstall "Development-Tools" # O bien yum install -y kernel-devel kernel-headers gcc cpp make yum -y install p7zip \ p7zip-plugins \ unrar \ wget \ git \ ctags \ ctags-etags \ mutt \ htop \ nmap \ 3.2. Fedora Centos 35

python-pygments \ java-1.7.0-openjdk-devel KDE yum -y install oxygen-cursor-themes firefox kate \ umbrello git-cola kdiff3 Muestra alertas de selinux, no viene por defecto en KDE yum -y install setroubleshoot Gnome yum -y install nautilus-open-terminal \ gnome-tweak-tool Calligra completo yum install -y calligra Diccionario en español yum install -y hunspell-es Idioma KDE español yum -y install kde-l10n-es \ calligra-l10n-es \ Idioma español man yum -y man-pages-es \ man-pages-es-extra Eliminar algunos KDE yum remove -y \ libkdegames \ kdegames-minimal \ kwrite \ kdenetwork-kget \ kdenetwork-kget-libs \ amarok \ bluedevil \ libbluedevil 36 Capítulo 3. Linux

Otros KDE yum install -y kde-partitionmanager yum install -y sqliteman # Gui Sqlite, en qt yum install -y transmission-qt GTK yum install -y qbittorrent yum -y install gimp yum -y install gparted yum -y install filezilla yum -y install inkscape yum -y install icedtea-web Chromium estable http://copr.fedoraproject.org/coprs/churchyard/chromium-russianfedora-tested/ /etc/yum.repos.d wget https://copr.fedoraproject.org/coprs/churchyard/chromium-russianfedora-tested/repo/fedora-20/chu yum install chromium -y 3.2.12 Postfix Nota: Todo se hace con root excepto si se dice lo contrario. Servidor postfix Instalación de postfix. yum install -y postfix Editar archivo de configuración. vim /etc/postfix/main.cf # line 75: uncomment and specify hostname myhostname = mail.workspace.local # line 83: uncomment and specify domain name mydomain = workspace.local # line 99: uncomment myorigin = $mydomain 3.2. Fedora Centos 37

# line 113: uncomment inet_interfaces = all # line 116: comment # inet_interfaces = localhost # line 164: comentar #mydestination = $myhostname, localhost.$mydomain, localhost # line 165: descomentar mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain # line 264: uncomment and specify your LAN mynetworks = 192.168.0.0/24, 127.0.0.0/8 # line 419: uncomment (use Maildir) home_mailbox = Maildir/ # line 548: uncomment header_checks = regexp:/etc/postfix/header_checks # line 549: añadir body_checks = regexp:/etc/postfix/body_checks # line 574: add smtpd_banner = $myhostname ESMTP # add at the last line # limit an email size 10M message_size_limit = 10485760 # limit mailbox 1G mailbox_size_limit = 1073741824 # for SMTP-Auth settings smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth smtpd_sasl_auth_enable = yes smtpd_sasl_security_options = noanonymous smtpd_sasl_local_domain = $myhostname smtpd_client_restrictions = permit_mynetworks,reject_unknown_client,permit smtpd_recipient_restrictions = permit_mynetworks,permit_auth_destination,permit_sasl_authenticated,re vim /etc/postfix/header_checks # add at the head # reject if email address is empty /^From:.*<#.*@.*>/ REJECT /^Return-Path:.*<#.*@.*>/ REJECT vim /etc/postfix/body_checks # reject if includes example.com in mail body /^( [^>].*)example.com/ REJECT 38 Capítulo 3. Linux

Dovecot yum install -y dovecot vim /etc/dovecot/dovecot.conf # line 24: uncomment protocols = imap pop3 lmtp vim /etc/dovecot/conf.d/10-auth.conf # line 10: uncomment and change ( allow plain text auth ) disable_plaintext_auth = no # line 100: add login auth_mechanisms = plain login vim /etc/dovecot/conf.d/10-mail.conf # line 30: uncomment and add mail_location = maildir:~/maildir vim /etc/dovecot/conf.d/10-master.conf # line 96: uncomment and add # Postfix smtp-auth unix_listener /var/spool/postfix/private/auth mode = 0666 user = postfix # add group = postfix # add vim /etc/aliases # En la ultima linea agregar root: snicoper postalias /etc/aliases Importante: Ver Reglas SELinux Para crear el certificado SSL, Crear SSL vim /etc/postfix/main.cf # add at the last line # SSL smtpd_use_tls = yes smtpd_tls_cert_file = /etc/pki/tls/certs/workspace.crt smtpd_tls_key_file = /etc/pki/tls/certs/workspace.key smtpd_tls_session_cache_database = btree:/etc/postfix/smtpd_scache vim /etc/postfix/master.cf 3.2. Fedora Centos 39

# Descomentar linea 26 smtps inet n - n - - smtpd # Descomentar lineas 27 y 28 -o syslog_name=postfix/smtps -o smtpd_tls_wrappermode=yes vim /etc/dovecot/conf.d/10-ssl.conf # line 6: uncomment ssl = yes # line 14,15: comentar # line 16: añadir and specify certificate ssl_cert = </etc/pki/tls/certs/workspace.crt ssl_key = </etc/pki/tls/certs/workspace.key systemctl start postfix.service systemctl enable postfix.service systemctl start dovecot.service systemctl enable dovecot.service Firewall firewall-cmd --permanent --add-service=smtp firewall-cmd --reload Lista de puertos por defecto POP3 - port 110 IMAP - port 143 SMTP - port 25 HTTP - port 80 Secure SMTP (SSMTP) - port 465 Secure IMAP (IMAP4-SSL) - port 585 IMAP4 over SSL (IMAPS) - port 993 Secure POP3 (SSL-POP) - port 995 3.2.13 Reglas SELinux Virt-Manager y Boxes (Cajas) setsebool -P virt_use_fusefs 1 setsebool -P virt_use_rawip 1 Postfix Para permitir a Apache poder enviar correo electrónico desde alguna aplicación setsebool -P httpd_can_sendmail on 40 Capítulo 3. Linux

Postgresql setsebool -P allow_user_postgresql_connect 1 Memcached setsebool -P httpd_can_network_memcache 1 Apache2.4 y Nginx Para permitir que Apache pueda leer contenidos localizados en los directorios de inicio de los usuarios locales setsebool -P httpd_enable_homedirs 1 setsebool -P httpd_read_user_content 1 setsebool -P httpd_can_network_connect on Para definir que un directorio fuera de /var/www, como por ejemplo /sitios/dominio.tld/html, pueda ser utilizado por Apache, se le debe asignar el contexto httpd_sys_content_t. Éste puede asignarse a través del mandato chcon, como se muestra en el siguiente ejemplo chcon -t httpd_sys_content_t /sitios/dominio.tld/htm # ls -Z para saber el contexto 3.2.14 Virt-Manager Fuentes http://fedoraproject.org/wiki/getting_started_with_virtualization/es http://www.cyberciti.biz/faq/linux-kvm-stop-start-guest-virtual-machine/ http://pic.dhe.ibm.com/infocenter/lnxinfo/v3r0m0/index.jsp?topic=%2fliaat%2fliaatkvmvirsh.htm yum install @virtualization yum install libvirt-daemon-kvm Ver Reglas SELinux systemctl enable libvirtd.service Importante: Reiniar el equipo Como usuario normal, crear una maquina virtual virt-install --name ns2.workspace.local --ram 1024 \ --file=/home/snicoper/kvm/ns2.workspace.local.img \ --file-size=8 --vnc \ --cdrom=/run/media/snicoper/data/snicoper/distros_linux/centos-6.4-x86_64-bin-dvd1to2/centos-6.4- O bien 3.2. Fedora Centos 41

virt-install --prompt Nombre de la maquina: ns2.workspace.local Ram utilizada (en megas): 1024 Path donde guardara la maquina: /home/snicoper/kvm/ns2.workspace.local.img Disco duro en Gigas para la maquina: 8 Path de la imagen iso: /ruta/imagen.iso Algunos comandos Listar VMS funcionando virsh list Apagar Guest virsh list virsh shutdown Name virsh shutdown Id Reiniciar Guest virsh list virsh reboot Name virsh reboot Id Forzar apagado virsh list virsh destroy Name virsh destroy Id Optener información sobre un Guest virsh list virsh dominfo Name virsh dominfo Id Obtener información sobre el nodo virsh nodeinfo Eliminar una maquina Este lo hice a mano por que no me funciono. 42 Capítulo 3. Linux

virsh destroy ns2.workspace.local virsh undefine ns2.workspace.local virsh vol-delete --pool vg0 ns2.workspace.local.img Iniciar la maquina virsh start ns2.workspace.local Mostrarla virt-viewer ns2.workspace.local 3.2.15 Virtualbox Fuentes http://www.if-not-true-then-false.com/2010/install-virtualbox-with-yum-on-fedora-centos-red-hat-rhel/ # The Oracle public key wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- rpm --import - # Repo cd /etc/yum.repos.d/ wget http://download.virtualbox.org/virtualbox/rpm/fedora/virtualbox.repo # Actualizar yum update # Instalar yum install dkms VirtualBox-4.3 # Inicializar /etc/init.d/vboxdrv setup # Dar permisos a usuario usermod -a -G vboxusers snicoper 3.3 Kde Contents: 3.3.1 Crear enlaces en Desktop Carpeta Home 3.3. Kde 43

vim ~/Desktop/home.desktop [Desktop Entry] Comment=Home Comment[es]=Carpeta personal Encoding=UTF-8 Icon=user-home Name=Home Name[es]=Home NoDisplay=false OnlyShowIn=KDE Type=Link URL=/home/snicoper Carpeta Trash vim ~/Desktop/trash.desktop [Desktop Entry] Comment=Home Comment[es]=Carpeta personal Encoding=UTF-8 Icon=user-home Name=Home Name[es]=Home NoDisplay=false OnlyShowIn=KDE Type=Link URL=/home/snicoper Carpeta Data vim ~/Desktop/data.desktop [Desktop Entry] Comment=Home Comment[es]=Carpeta personal Encoding=UTF-8 Icon=user-home Name=Home Name[es]=Home NoDisplay=false OnlyShowIn=KDE Type=Link ## Fedora URL=/run/media/snicoper/data ## Ubuntu URL=/media/snicoper/data/snicoper/ 3.3.2 Integrar Thunderbird Bandeja del Sistema Buscar el addon firetray, mostrara un icono de thunderbird en los iconos de la barra de tareas. 44 Capítulo 3. Linux

3.3.3 Iconos Flattr de Kaos en KDE cd ~/.local/share/icons git clone https://github.com/kaosx/flattr-icons-kde.git Ir a System Settings -> Application Appearence -> Icons y seleccionar Flattr 3.3.4 Montar partición SSH al iniciar sistema Fuentes https://wiki.archlinux.org/index.php/sshfs Fedora yum install fuse-sshfs vim /etc/fstab snicoper@192.168.1.33:/home/snicoper /run/media/snicoper/srv1 mount /run/media/snicoper/srv1 fuse.sshfs noauto,x-systemd.automount, Ubuntu Nota: Por hacer 3.3.5 Pegar ventana en los bordes System Settings -> Shortcuts and Gestures -> Global Keyboards Shortcuts En KDE component poner KWin Buscar Quick Tile Window to the Right and Left Siempre pongo Ctrl+Super (Left Right) 3.3.6 Set Default Built-in Audio Fuentes http://askubuntu.com/questions/171520/set-default-built-in-audio-in-kde Boton derecho en Volumen del menú y seleccionar Select master chanel 3.4 MariaDB Contents: 3.4. MariaDB 45

3.4.1 Instalación MariaDB En Fedora 20+, MySQL Workbench no esta en los repositorios, tampoco he probado Workbench con MariaDB 10+ en ningún sistema. Fedora yum -y install mariadb mariadb-server # Opcional yum -y install mysql-workbench systemctl start mariadb.service systemctl enable mariadb.service mysql_secure_installation Ubuntu En Ubuntu, hay que instalarlo con los repos de MariaDB: https://downloads.mariadb.org/mariadb/repositories/#mirror=cnrs sudo apt-get install software-properties-common sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db sudo add-apt-repository deb http://ams2.mirrors.digitalocean.com/mariadb/repo/10.1/ubuntu trusty mai sudo apt-get update sudo apt-get install mariadb-server # Opcional apt-get install mysql-workbench Ejecutar, para eliminar usuario temporal, etc mysql_secure_installation /etc/init.d/mysql restart Crear un usuario y una database mysql -u root -p create user snicoper@localhost identified by 123456 ; create database practicas; grant all on practicas.* to snicoper@localhost; 3.5 Nginx Contents: 46 Capítulo 3. Linux