© 2019 by César Arcila
Una vez se cuente con Linux Ubuntu 20.04
(o mayor) o ElementaryOS
a 64bits debidamente instalado y configurado el acceso a red e internet procedemos a acondicionar el sistema e instalar herramientas (y SDK), tanto requeridas como otras que facilitan la labor de desarrollo de software, incluso para actividades complementarias (como oficina, diseño y video).
En principio, lo esencial para un entorno de desarrollo de nuestro interés sería contar con el navegador (Chrome), el editor (Visual Studio Code), el JDK (para desarrollo con Java 11) y el entorno para javascript (Node.js), y si gustas de Python debes saber que ya viene instalado en el sistema (version 2.7), lo demás se va utilizando en la medida que se requiera.
Como panorama de lo que se propone instalar de modo extendido se tiene la siguiente lista de programas con licencia amigable para su uso formal:
Se aclara que VirtualBox no se debería instalar si tu entorno corresponde a una máquina virtual, puesto que se usa sobre el sistema operativo de base. Así mismo, no se recomienda instalar Android Studio en una máquina virtual, ni Skype, en ese caso es preferible instalarlo en el sistema base (por ejemplo, para Windows).
En adelante se usará una terminal de línea de comandos para interactuar con el sistema, por lo que debes abrir la aplicación respectiva.
Es conveniente revisar el estado de actualizaciones del sistema y utilitarios o dependencias para los paquetes de desarrollo o de interés. Para ello ejecutamos lo siguiente:
sudo apt update
sudo apt upgrade -y
sudo apt autoremove -y
sudo apt install -y software-properties-common
sudo apt install -y snapd
sudo apt install -y zip unzip
sudo apt install -y p7zip-full
sudo apt install -y git-core
sudo apt install -y wget
sudo apt install -y curl
sudo apt install -y gcc g++ make
sudo apt install -y python-pip
sudo apt install -y neovim
sudo apt install -y gdebi
sudo apt install -y vlc browser-plugin-vlc
sudo apt install -y pandoc texlive-xetex librsvg2-bin
sudo apt install -y tree
Hay comandos como
tree
que no son aconsejables en un entorno de producción.
Para darle toque sofisticado al “prompt”, teniendo instalado python-pip
y git
, instalamos powerline
, así:
sudo apt install -y powerline
pip install --user git+git://github.com/Lokaltog/powerline
Si se presentan inconvenientes por las fuentes, éstas se pueden instalar así:
wget https://github.com/Lokaltog/powerline/raw/develop/font/PowerlineSymbols.otf https://github.com/Lokaltog/powerline/raw/develop/font/10-powerline-symbols.conf
sudo mv PowerlineSymbols.otf /usr/share/fonts/
sudo fc-cache -vf
sudo mv 10-powerline-symbols.conf /etc/fonts/conf.d/
Si se instala powerline
debe editarse el archivo .bashrc
y agregar al final las siguientes líneas:
if [ -f ~/.local/lib/python2.7/site-packages/powerline/bindings/bash/powerline.sh ]; then
source ~/.local/lib/python2.7/site-packages/powerline/bindings/bash/powerline.sh
fi
Y para vim
, se agrega en el archivo .vimrc
o /etc/vim/vimrc
lo siguiente:
set rtp+=$HOME/.local/lib/python2.7/site-packages/powerline/bindings/vim/
" Always show statusline
set laststatus=2
" Use 256 colours (Use this setting only if your terminal supports 256 colours)
set t_Co=256
En linux podría usarse el repositorio para Chromium, que es una version mantenida por la comunidad y se instala con el siguiente comando:
sudo apt install -y chromium
Sin embargo, para instalar la version de Google Chrome, ejecuta cada una de las siguientes líneas:
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo apt install -y libxss1 libgconf2-4 libappindicator1 libindicator7
sudo dpkg -i google-chrome-stable_current_amd64.deb
rm google-chrome-stable_current_amd64.deb
Para una instalación más sencilla primero instalamos SDKMAN
, el cual nos permite gestionar SDK’s.
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
sdk version
La última línea nos muestra la versión instalada
Y para instalar gradle
, finalmente ejecutamos:
sdk install gradle
gradle -v
La última línea nos muestra la versión instalada
En un entorno de desarrolo con Java puede ser conveniente instalar también Maven para gestionar las librerías del proyecto. Se instala así:
sdk install maven
mvn -v
La última línea nos muestra la versión instalada
También se encuentra disponible en los repositorios del sistema con el comando:sudo apt install -y maven
Con
SDKMAN
podría instalarse usando el comandosdk install java x.y.z-open
o la versión de Amazonsdk install java x.y.z-amzn
.
Para instalar la máquina virtual de Java con el paquete de desarrollo incluido por el sistema, ejecuta cada una de las siguientes líneas:
sudo apt update
sudo apt install openjdk-11-jdk
javac -version
La última línea nos muestra la versión instalada
Otra alternativa es usar la versión de Oracle ejecutando lo siguiente:
sudo add-apt-repository ppa:webupd8team/java
sudo apt update
sudo apt install -y oracle-java11-installer
sudo apt install oracle-java11-set-default
javac -version
echo $JAVA_HOME
Si no se llegara a reconocer el JAVA_HOME
después de un reinicio, se edita (sudo vi ...
) el archivo /etc/environment
y se agrega línea de variable con su valor (la ruta), así:
JAVA_HOME="/usr/lib/jvm/java-11-oracle"
Siendo así, para que los cambios tengan efecto (y se asuma JAVA_HOME
) se ejecuta:
source /etc/environment
Con
SDKMAN
podría instalarse usando, por ejemplo, el comandosdk install java 22.1.0.r11-grl
En caso de usar GraalVM como alternativa de JDK, puedes descargar versión desde el sitio y se descomprime el archivo respectivo, por ejemplo:
wget https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.1.0/graalvm-ce-java11-linux-amd64-22.1.0.tar.gz
tar xfz graalvm*.tar.gz
rm graalvm*.tar.gz
sudo mv graalvm* /usr/local/lib/
sudo apt install zlib1g-dev
La última línea instala librerías requeridas por el compilador GCC (también podría usarse en su lugar libz-dev
). Para dejarlo como nuestro “JAVA_HOME”, se edita (sudo vi...
) el archivo /etc/environment
configurándolo, por ejemplo incluyendo las líneas:
GRAALVM_HOME="/usr/local/lib/graalvm-ce-java11-22.1.0"
JAVA_HOME="$GRAALVM_HOME"
Para configurarlo en tu usuario (tratándose de un entorno de desarrollo), editas el archivo ~/.bashrc
y buscas si existe la variable PATH
(para incluir :$GRAALVM_HOME/bin
) o agregas al final lo siguiente:
export PATH="$PATH:$GRAALVM_HOME/bin"
Otra manera de hacerlo global (por ejemplo en máquinas virtuales de desarrollo) sería editando el archivo /etc/profile
buscando la línea de export PATH
para insertar antes o arriba de ésta las siguientes lineas:
GRAALVM_HOME="/usr/local/lib/graalvm-ce-java11-22.1.0"
JAVA_HOME="$GRAALVM_HOME"
PATH="$PATH:$GRAALVM_HOME/bin"
export GRAALVM_HOME
export JAVA_HOME
export PATH
Finalmente, recargamos nuestras variables de entorno y agregamos el paquete de actualización de GraaVM, así:
source /etc/environment
source ~/.bashrc
java --version
gu install native-image
Si usaste el archivo
/etc/profile
debe ejecutarsesource /etc/profile
en lugar de las dos primeras líneas.java --version
se usa para comprobar que la configuración fué exitosa, incluso puede consultarse version de NodeJS connode -v
.
Este “framework” a modo de librerías (“tool-kit”), que tiene semejanzas a Node.js
pero corre en JVM
o GraalVM
, también se puede instalar con SDKMAN
, veamos:
sdk install vertx
La alternativa con
npm
sería:npm install vertx4-full
.
Si cuentas con un proyecto creado previamente, una vez instalado puedes actualizar tu proyecto así:
vertx-stack.json
de tu proyecto.variables
con los valores nuevos (ej.: "vertx.version": "4.0.2", "tcnative.version": "2.0.29.Final"
). Si deseas, puedes comparar los archivos previamente.vertx-stack.json
) de la nueva versión de vertx
con el archivo modificado de tu proyecto.vertx
, dónde se encuentra el archivo json
, y ejecuta el comando de actualización, por ejemplo:cd vertx
./bin/vertx resolve --dir=vertx
Esta últilma línea para Windows sería:
bin\vertx.bat resolve --dir=vertx`
Dónde --dir=vertx
indica que el nuevo subdirectorio de descargas con las librerías actualizadas se llamará vertx
. Se pueden eliminar las librerías de kotlin
para vertx
, si se gestionan por separado y se usa una versión más actualizada, ejecutando: rm vertx/kotlin*
.
Veamos dos maneras de instalar Node.js
. La primera desde el repositorio con el siguiente comando:
sudo apt install nodejs npm
La alternativa permite indicar la versión y sería del siguiente modo:
curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
sudo apt install -y nodejs
En un servidor con Debian las lineas anteriores se reemplazaria por las siguientes:
curl -sL https://deb.nodesource.com/setup_12.x -o nodesource_setup.sh
sudo bash nodesource_setup.sh
sudo apt install -y nodejs
Adicionalmente, módulos globales sobre utilidades para desarrollo de software según sea necesario (y no aplicaría para producción):
sudo apt install -y build-essential
npm cache clean -f
sudo npm i -g gulp
sudo npm i -g serve
sudo npm i -g pkg
sudo npm i -g npm@latest
sudo npm ls -g --depth=0
sudo chown -R $(whoami) ~/.npm
Este último comando sólo lista los paquetes instalados o actualizados a nivel global (/usr/lib).
Para proceder con la instalación de Deno se ejecuta desde la línea de comandos:
curl -fsSL https://deno.land/x/install/install.sh | sh
deno --version
La última línea nos muestra la versión instalada
Si llegas a requerir acceso a base de datos para tu ambiente de desarrollo, este motor libre (compatible con MySQL) suele ser de uso frecuente si vienes del mundo de las bases de datos SQL.
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://nyc2.mirrors.digitalocean.com/mariadb/repo/10.2/ubuntu xenial main'
sudo apt update
sudo apt install -y mariadb-server mariadb-client
sudo apt install -y mariadb-plugin-rocksdb
sudo systemctl enable mariadb
mysql -u root -p
Si el servicio de MariaDB demora tu máquina en el arranque o finalmente tu desarrollo no requiere esta base de datos, puedes evitar la línea de
sudo systemctl enable mariadb
o ejecutarsudo systemctl disable mariadb
.
Para tener una noción ligera sobre una base de datos como MariaDB, puedes revisar algunos tips que encuentras en el documento sobre SQL.
El editor es una herramienta clave para escribir nuestro código. Auque el instalador de VSCode
lo encuentras publicado en el sitio oficial, podemos instalarlo en Linux Ubuntu de la siguiente manera:
sudo snap remove vscode
sudo snap install code --classic
Si para escribir código en Java
o en Kotlin
basta con el editor VSCode
y el uso de gradle
en mayor medida, no sería tan necesaria esta herramienta, no obstante puede ser útil tener un buen IDE
como IntelliJ IDEA para alguna prestación adicional. El instalador se obtiene desde el siguiente enlace:
https://www.jetbrains.com/idea/download/index.html#section=linux
Luego de descargarse se instala de la siguiente manera:
cd ~/Downloads
tar xfz ideaIC*.tar.gz
rm ideaIC*.tar.gz
sudo mv idea-* /opt/idea
cd /opt/idea/bin
./idea.sh
Podría resultar apropiado cambiar el propietario de la carpeta (/opt/idea). Si el lanzador de la aplicacion no aparece en el menu del sistema, se puede hacer algo como lo siguiente:
cat > ~/.local/share/applications/jetbrains-idea-ce.desktop <<EOL
[Desktop Entry]
Type=Application
Name=Intellij IDEA Community Edition
Icon=/opt/idea/bin/idea.png
Exec="/opt/idea/bin/idea.sh" %f
Categories=Development;IDE;
Terminal=false
StartupWMClass=jetbrains-idea-ce
EOL
No se recomienda instalar Android Studio en una máquina virtual, en ese caso es preferible instalarlo en el sistema base (por ejemplo, para Windows).
El instalador se obtiene desde el siguiente enlace:
Luego de descargarse se instala de la siguiente manera:
cd ~/Downloads
unzip android-studio-ide*.zip
rm android-studio-ide*.zip
sudo mv android-studio /opt
cd /opt/android-studio/bin
studio.sh
Preparamos los siguientes paquetes de 32 bits (incluso para Ubuntu a 64bits):
sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0 lib32stdc++6
Y para aceleracion del emulador hacemos lo siguiente:
sudo apt-get install cpu-checker
egrep -c '(vmx|svm)' /proc/cpuinfo
kvm-ok
Para estar seguros de que reconoce “ANDROID_HOME”, se edita el archivo:
vi ~/.bashrc
Y se agregan al final líneas respectivas (con rutas), así:
export ANDROID_HOME=$HOME/Android/Sdk
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:/opt/android-studio/bin:/opt/idea/bin
Se cierra la sesión del terminal y se abre una nueva para que reconozca el cambio. Adicionalmente, en Ubuntu conviene instalar el gestor de paquetes “Gradle”.
sudo apt install -y gradle
Si el lanzador de la aplicacion no aparece en el menu del sistema, se puede hacer algo como lo siguiente:
cat > ~/.local/share/applications/android-studio.desktop <<EOL
[Desktop Entry]
Type=Application
Name=Android Studio
Icon=/opt/android-studio/bin/studio.png
Exec="/opt/android-studio/bin/studio.sh" %f
Categories=Development;IDE;
Terminal=false
EOL
Interesante herramienta para gestionar diversos motores de bases de datos. Para su instalación ejecuta las siguientes instrucciones:
wget -O - https://dbeaver.io/debs/dbeaver.gpg.key | sudo apt-key add -
echo "deb https://dbeaver.io/debs/dbeaver-ce /" | sudo tee /etc/apt/sources.list.d/dbeaver.list
sudo apt update
sudo apt install dbeaver-ce
Si estas usando Linux como tu sistema operativo de base conviene instalar esta herramienta, por el contrario, si ya estás dentro de una máquina virtual omite este paso.
sudo sh -c 'echo "deb http://download.virtualbox.org/virtualbox/debian xenial contrib" >> /etc/apt/sources.list.d/virtualbox.list'
wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add -
sudo apt update
sudo apt install -y virtualbox-5.2
Si resultara inconveniente de compatibilidad con archivos de maquinas virtuales antiguas, se podría ejecutar la siguiente línea de comando:
sudo /sbin/vboxconfig
wget https://releases.hashicorp.com/terraform/0.12.29/terraform_0.12.29_linux_amd64.zip
unzip terraform_0.12.29_linux_amd64.zip
sudo mv terraform /usr/local/bin/
terraform --version
rm terraform*.zip
wget https://dl.pstmn.io/download/latest/linux64 -O postman.tar.gz
sudo tar -xzf postman.tar.gz -C /opt
rm postman*.gz
sudo ln -s /opt/Postman/Postman /usr/bin/postman
sudo chown -R onminder:onmind /opt/Postman
Para esta última línea el usuario y grupo se refiere al creado en la instalación. Adicionalmente, para obtener un lanzador desde el menu, ejecutamos:
cat > ~/.local/share/applications/postman.desktop <<EOL
[Desktop Entry]
Encoding=UTF-8
Name=Postman
Exec=postman
Icon=/opt/Postman/app/resources/app/assets/icon.png
Terminal=false
Type=Application
Categories=Development;
EOL
wget http://bluegriffon.org/freshmeat/3.1/bluegriffon-3.1.Ubuntu18.04-x86_64.deb
sudo dpkg -i bluegriffon-3.1.Ubuntu18.04-x86_64.deb
wget https://pencil.evolus.vn/dl/V3.0.4/Pencil_3.0.4_amd64.deb
sudo dpkg -i Pencil_3.0.4_amd64.deb
Para contar con XMind se debe descargar el paquete directamente desde el sitio (https://www.xmind.net/download/linux/), aceptando la licencia, luego se instala, por ejemplo así:
sudo unzip xmind-8-update8-linux.zip -d /opt/XMind
sudo chown -R onminder:onmind /opt/XMind
cd /opt/XMind
sudo sh setup.sh
Dado que ya contamos con Java, se podría evitar instalar el “JRE” indicando que “no”, aunque es aconsejable dejar las cosas quietas (responder “sí”) para el debido funcionamiento. Para lanzarlo, procedemos así:
/opt/XMind/XMind_amd64/XMind
Si el lanzador de la aplicacion no aparece en el menu del sistema, se puede hacer algo como lo siguiente:
cat > /opt/XMind/XMind_amd64/xmind.sh <<EOL
#!/bin/bash
(cd /opt/XMind/XMind_amd64/ && ./XMind)
EOL
chmod +x /opt/XMind/XMind_amd64/xmind.sh
cat > ~/.local/share/applications/xmind.desktop <<EOL
[Desktop Entry]
Type=Application
Name=XMind
Exec=/opt/XMind/XMind_amd64/xmind.sh
Categories=Graphics;
Terminal=false
EOL
Disponible bajo snap
. Requiere indicar una cuenta (bien sea registrándo email o de red social)
sudo snap install gravit-designer
Para contar con GFIE, se debe descargar el paquete directamente desde el sitio (http://greenfishsoftware.org/dl.php?filename=gfie-3.6.deb#apage), luego se ejecuta instalador, por ejemplo:
sudo dpkg -i gfie-3.6.deb
La instalacion se puede hacer on “snap”. Al terminar de ser instalado, se recomienda abrirlo y configurar los formatos de archivo para documento de texto, hoja de cálculo y presentaciones, usando la opcion: Herramientas - Opciones - Cargar/Guardar - General - Formato de archivo predeterminado
sudo snap install libreoffice
Herramienta para Teleconferencia de Microsoft. Disponible bajo snap
sudo snap install skype --classic
sudo apt-get install ffmpeg
sudo add-apt-repository ppa:obsproject/obs-studio
sudo apt-get update && sudo apt-get install obs-studio
Existen otros paquetes de software que ya se incluyen en la tienda del sistema o quizás ya se encuentren instalados, podrías revisar por ejemplo:
Gracias y que lo disfrutes