Awesome Open Source
Awesome Open Source

Maintainability

Script para Preparar Entorno de Programacin en Debian

Script para tener un entorno funcional en poco tiempo y adems tener sincronizada la configuracin de distintos dispositivos con los que trabajo.

Este script prepar completamente el entorno de programacin, aplicaciones, servidores, comandos personalizados, interfaz grfica, plantillas y repositorios en Debian Stable.

Imagen de previsualizacin

Todas las configuraciones y elecciones se han establecido a mi gusto, puedes personalizar cualquier parte que decidas para este script bajo la misma licencia GPLv3.

Si encuentras algn fallo o detectas que algo podra funcionar mejor, aade un Issue al que estar encantado de atender y valorar.

Tambin puedes colaborar con los PR que creas oportuno siempre que vaya en la lnea del script y no sea necesario darle la vuelta a todo el proyecto.

En todo caso recomiendo usar la rama Master y si quieres colaborar crea un fork y haz PR sobre la rama dev para valorar si formar parte de la siguiente versin.

Advertencias y Explicacin para decisiones

Si no usas repositorios oficiales, mezclas repositorios o tienes otro sistema distinto a Debian Stable estars experimentando as que salo bajo tu riesgo.

Este script est automatizado y puede cambiar configuracin sin que te pregunte.

Una buena idea sera que lo ejecutaras tras hacer una copia de seguridad o en una mquina virtual hasta ver que el script completo se adapta a tus necesidades o modificar la parte que prefieras diferente realizando un fork de este repositorio.

Trabajo en la modularidad para que puedas ejecutar solo una parte que te interese y no dependas del script al completo.

Para evitar que sea interactivo y estar constantemente preguntando se establece "-y" como parmetro por defecto en apt lo cual puede instalar software en forma de dependencia y/o romper en casos muy extremos el sistema, aunque repito que con repositorios oficiales no debe ocurrir nada extrao y si es as puedes reportarlo para su correccin.

Objetivos

Crear un entorno de trabajo personalizado para desarrollar aplicaciones web segn las preferencias del autor (https://github.com/fryntiz).

Se plantea lo ms modular que me ha sido posible para que en algunos casos no sea necesario ejecutar el script completo y solo la parte que realmente necesitas (si fuese el caso).

Previsualizacin de men para aplicaciones:

Imagen de previsualizacin 1

Estos son los principales objetivos:

  • Configurar terminales, bash y zsh
  • Instalar tipografas
  • Instalar editores Brackets, Atom, ninja IDE y Vim con sus personalizaciones
  • Instalar IDEs si el usuario lo elige
  • Configurar sistema y variables globales
  • Ampliar repositorios desde fuentes estables y fiables
  • Instalar configuraciones y personalizaciones para el sistema y programas en el HOME
  • Instalar atajos y personalizaciones para trabajar con git, GitHub y GitLab
  • Instalar servidores Apache2, PostgreSQL, MariaDB
  • Instalar lenguajes de programacin, dependencias y libreras para php, python, nodejs, ruby, bash, zsh
  • Instalar Navegadores WEB para desarrolladores como Firefox Developer y Firefox Nightly
  • Instalar herramientas para ayudar a debug en lenguajes web
  • Configurar interfaces grficas

Previsualizacin de men Personalizacin:

Imagen de previsualizacin 1

Distribucin compatible

Est destinado nica y exclusivamente para Debian 9 (estable) y se ir actualizando con esta rama estable.

En otras ramas y distribuciones puede romper el sistema, para portarlo no hay demasiadas complicaciones y se deber renombrar la instalacin/nombre de paquetes si procede y establecer repositorios de acorde a la distribucin. El resto de los pasos deberan ser idnticos.

Todo el script se basa en funciones.sh por lo que editando este archivo y adaptndolo a tu distribucin podrs conseguir un cierto nivel de compatibilidad.

Modularidad

Se ha intentado hacer modular de forma que apenas sea necesario tocar los scripts para aadir/quitar funciones.

La idea es que el script pregunte lo mnimo posible y que esto sean decisiones relevantes.

Ejecutar script

Es importante realizar todos los pasos desde bash. Si usas zsh cambia a bash antes de ejecutarlo:

    bash

Primero instalamos GIT

    sudo apt install git

Clonamos el repositorio actual en nuestro equipo

    git clone https://github.com/fryntiz/debian-developer-conf.git

Entramos y ejecutamos el script principal

    cd preparar_entorno
    ./main.sh

Personalizacin

Agrega elementos grficos al sistema, los configura para el usuario y activa.

  • Fondo de pantalla
  • Grub
  • GDM
  • Iconos
  • Cursores crystalblue

Adems tambin se aadieron iconos "paper", temas "flatpat" y la instalacin de cursores "crystal"

Servidores

Se incorporan en la parte servidores instalacin para apache2, postregsql, mariadb, NodeJS, bind9 y docker.

Imagen de previsualizacin 1

Apache 2

Se crean 3 servidores virtuales:

  • Por defecto escuchando todo, con ruta /var/www/html
  • Pblico como publico.local, con ruta /var/www/html/Publico
  • Privado como privado.local, con ruta /var/www/html/Privado y contrasea creada/generada en /var/www/.htpasswd

Todos por el puerto estndar, 80

PHP

En este script para seguir rigurosamente la filosofa Debian apostando por la seguridad que nos acostumbra y sobre todo la estabilidad la cual es bastante conocida, optamos a seguir siempre con la versin ms alta de sus repositorios estables y oficiales libres.

Se instalan los siguientes paquetes bsicos desde repositorios:

  • php
  • php-cli
  • libapache2-mod-php

Se instalan los siguientes paquetes extras desde repositorios:

  • php-gd
  • php-curl
  • php-pgsql
  • php-sqlite3
  • sqlite
  • sqlite3
  • php-intl
  • php-mbstring
  • php-xml
  • php-xdebug
  • php-json

Se instala Composer y algunos paquetes con este:

  • composer

Se instalan las siguientes herramientas de fuentes externas:

  • psysh Un intrprete interactivo para aprender o hacer debug, incluyendo su documentacin accesible una vez dentro del mismo intrprete usando la palabra reservada doc seguido de la funcin que solicitamos ayuda/informacin.

Se modifican los archivos de configuracin para Todas las versiones de PHP que se encuentren instaladas en el equipo. Estas modificaciones sern:

  • timezone = 'UTC'
  • error_reporting = E_ALL
  • display_errors = On
  • display_startup_errors = On
  • max_execution_time = 180
  • memory_limit = 128M
  • upload_max_filesize = 512M
  • post_max_size = 1024M

PostgreSQL

Se instala la ltima versin stable de PostgreSQL (en el futuro se configuran todas las versiones que pudieran estar instalada en el sistema), configura:

  • intervalstyle = 'iso_8601
  • timezone = 'UTC'

MariaDB

Instala el cliente y el servidor para MariaDB (versin libre de MySQL)

Tambin instala phpmyadmin para poder manipular/trabajar con estas bases de datos de forma grfica desde su interfaz web.

Una vez instalado plantea si quieres crear un usuario para desarrollar con el nombre "dev" y con la contrasea en un principio "dev" dndole todos los permisos de administracin y manipulacin a este usuario. No debe usarse as en produccin y se aconseja una vez finalizado el script cambiar la contrasea de este usuario si habilitamos la posibilidad de conectar fuera de localhost (para evitar que en sitios pblicos puedan acceder, esto an as es poco probable adems).

Python

Contempla la instalacin de Python2 y Python3 con sus gestores de paquetes pip y pip3.

Adems se instalan una serie de libreras normalmente recurridas.

NodeJS

Instala NodeJS (tienen que estar los repositorios agregados) y adems contempla la instalacin de algunos paquetes como mbito global para poder corregir sintaxis javascript en algunos IDE's y/o desde terminal.

Tambin instala desde npm bower y los siguientes paquetes globales:

  • eslint
  • jscs
  • compass
  • stylelint
  • bundled

Lenguajes de Programacin

Se plantea la instalacin y configuracin de los siguientes lenguajes:

  • C
  • C++
  • go
  • php
  • python
  • ruby
  • nodejs

Directorios

  • Accesos_Directos Contiene los accesos directos individuales para usuario que van en ~/.local/share/applications
  • Apache2 Contenido para la estructura de apache
  • Apps Contiene scripts y configuraciones especiales para ciertas aplicaciones
  • docs Directorio con la documentacin del proyecto e imgenes.
  • fonts Contiene un directorio por cada conjunto de fuentes similares
  • Personalizar Scripts para configurar la esttica y comportamientos del sistema, cambiar fondos/temas/iconos/cursores y la instalacin opcional de escritorios o window manager.
  • conf Contiene archivos de configuracin o plantillas para generarlos
  • tmp Directorio donde se descargan los archivos temporales, se crea al iniciar el script.
  • Servidores Instala y configura servidores.
  • Lenguajes-Programacion Instala y configura lenguajes de programacin.
  • Repositorios Contiene las listas de repositorios para aadirlas al sistema cuando se elige la opcin de agregar repositorios.
  • Desktops Instala y configura escritorios o window manager

Scripts

  • funciones.sh Contiene funciones globales y auxiliares para no repetir cdigo
  • configuraciones.sh Establece aplicaciones determinadas.
  • limpiador.sh Este script limpia los directorios y archivos que pueden causar ms problemas en algn momento, esto existe para depurar principalmente y su uso se desaconseja por ser ltamente arriesgado a perder datos.
  • main.sh Programa principal con men para elegir paso a realizar

Dentro de Apps/

IDEs

Previsualizacin Men IDEs

  • Atom_IDE.sh Instala el editor ATOM con su configuracin y complementos
  • Brackets.sh Instala y configura Brackets
  • Ninja-IDE.sh Instala y configura Ninja IDE
  • aptanastudio.sh (No implementado an, en proceso)
  • netbeans.sh (No implementado an, en proceso)
  • phpstorm.sh Instala y configura el IDE PhpStorm para Debian GNU/Linux
  • pycharm.sh (No implementado an, en proceso)
  • webstorm.sh (No implementado an, en proceso)
  • bashit.sh Instala y configura Bash-it
  • DBeaver.sh Instala y configura DBeaver
  • Firefox.sh Instala la versin para desarrolladores Quantum y la versin en desarrollo principal Nightly
  • GitKraken.sh Instala y configura GitKraken
  • Haroopad.sh Instala y configura Haroopad
  • i3wm.sh Instala y configura gestor de ventanas i3wm
  • OhMyZsh.sh Instala y configura OhMyZsh
  • Pencil-Project.sh Instala y configura Pencil Project
  • spacevim.sh Instala y configura SpaceVim
  • vim.sh Instala y configura Vim

Estructura pendiente de ordenar, alguna informacin extra:

  • Configurar_GIT.sh Scripts para configurar la integracin de GIT, GitHub y GitLab
  • Instalar_Software Instala los programas indicados en la lista "Software.lst" y algunos extras
  • Personalizacin_GTK.sh Genera fondos para grub, escritorio, gdm... y adems iconos, temas y cursores
  • Tipografas.sh Instala fuentes tipogrficas
  • Variables_Entorno.sh Genera variables de entorno que seran globales en el sistema

Desktops y Windows Manager

Seccin opcional que permite instalar y dejar configurado automticamente el estcritorio o window manager elegido.

Puedes leer ms sobre los escritorios desde aqu: https://github.com/fryntiz/debian-developer-conf/Personalizar/Desktops/README.md

i3 Window Manager

Instala y configura i3 Window Manager personalizando la barra de estado con i3pystatus y applets autoiniciados.

Previsualizacin i3

Previsualizacin i3 con dos monitores

Xmonad

Openbox



Alternative Project Comparisons
Related Awesome Lists
Top Programming Languages
Top Projects

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
Github (43,714
Web (37,362
Git (34,430
Bash (18,606
Debian (8,692
Zsh (7,213
Developer Tools (6,211
Gitlab (5,563
Bash Script (3,878
Development Environment (1,648
Zshrc (715
Bash Scripting (374
Bashrc (363
Bash Alias (59
Debian Linux (44
Desarrollo (13
Debian Scripts (10