Instalando a última versão estável do Eclipse com uma única linha
Publicado por William da Costa Canin (última atualização em 27/08/2015)
[ Hits: 2.522 ]
Homepage: https://williamcanin.github.io
Olá "linuxers", estou aqui para compartilhar com vocês um script (Shell) que criei para descarregar e instalar a SEMPRE a última versão do Eclipse estável, ou seja, o script tem a função de pegar o último codenome e a última release estável do Eclipse, por exemplo: Mars/R.
Resolvi criar esse script, porque o Eclipse é apenas extrair e usar no GNU/Linux, deixando sua "instalação" meio chocho (onde eu tirei essa palavra na minha mente?), sem um atalho em "/usr/share/applications", não cria link simbólico na pasta "bin", e ter aquele "trabalhinho" de ficar entrando no site do Eclipse, para baixar a última versão (caso não queira atualizar a versão que já possuí). Tudo bem, você pode fazer tudo isso manualmente, mas um script que faz isso com apenas uma linha de comando é bem melhor, seja qual for sua distribuição.
O script está armazenado no meu Gist do GitHub, e isso possibilita de utilizar uma única linha para fazer todo processo, através do cURL com opção "L".
Para fazer o download e instalação da última versão do Eclipse com uma única linha de comando, acesse o script no meu Gist (no final do texto) e na descrição do script, tem a forma de instalação utilizando o cURL e outros comentários.
Agora se quer realizar o download do script para rodar localmente, você pode, ele tem essa opção, irei disponibilizar aqui, mas logo aviso: "O SCRIPT PODE FICAR OBSOLETO AQUI", caso eu queira modificá-lo no Gist ou algum amigo dê dicas para modificá-lo, pois eu uso mais Gist.
Se você for baixar e usar o script localmente, você terá que alterar o parâmetro da função "_RUN_OPTION" para "local", assim você terá o menu de instalar (-install) e desinstalar (-uninstall) habilitado no script. Caso deixe como está, ao executar o script ele irá fazer o download e instalar automaticamente e não entrará no menu.
Nota: coloquei essa função "_RUN_OPTION" com opção de usar (ou não) menu do script, porque como o script está armazenado no Gist, o "curl -L" não aceita a utilização de menu. O script usa o "sudo" então seu usuário terá que estar no /etc/sudoers.
Gist do script (link encurtado): http://git.io/v3Fe9
Meu Gist: https://gist.github.com/williamcanin
#!/bin/bash # Type script: Shell # Program: Eclipse {Lastet version <present>} # Description: Installing the latest version of Eclipse on Linux, # as shortcut creations and symbolic links # Version: 1.0.1 # #-------------------------------------------------------------------------------------------- # Author: William C. Canin <http://williamcanin.com, https://github.com/williamcanin> # LICENSE: MIT # The MIT License (MIT) # Copyright (c) 2015 William C. Canin # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal # in the Software without restriction, including without limitation the rights # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell # copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # The above copyright notice and this permission notice shall be included in all # copies or substantial portions of the Software. # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. #-------------------------------------------------------------------------------------------- #==================================================================================================== # Begin Script #==================================================================================================== # # # --------------------------------------------------------------------------------------------------- # Begin variables global #---------------------------------------------------------------------------------------------------- # ############ Variables changeable # # Set the directory where Eclipse is installed. INSTALLATION_DIR="/opt" #--------------------------------------------- # # ------------- BASE MIRRORS ----------------- # Choice base mirror {Only one} # # Base mirror - Brazil - C3SL - Federal University of Parana (http) BASE_MIRROR="http://eclipse.c3sl.ufpr.br" # Base mirror - United States - Columbia University # BASE_MIRROR="http://mirror.cc.columbia.edu/pub/software/eclipse" # Base mirror - Germany - University of Erlangen-Nuremberg # BASE_MIRROR="http://ftp.fau.de/eclipse" # ############ Variables NOT changeable # # if [ "$(uname -m)" = "x86_64" ]; then ARCHITECTURE="x86_64" ARCHITECTURE_PI="x86_64" else ARCHITECTURE="" ARCHITECTURE_PI="i386" fi DISTRIBUTION="$(cat /etc/[A-Za-z]*[_-][rv]e[lr]* 2> /dev/null | grep PRETTY_NAME | awk -F"=" '{print$2}')" DOWN_ICON_SVG="https://raw.githubusercontent.com/williamcanin/logos/master/logos/eclipse.svg" DIR_SHORTCUT="/usr/share/applications" SHORTCUT_NAME="eclipse.desktop" URL_RELEASE_CODENAME="$BASE_MIRROR/technology/epp/downloads/release/release.xml" VERIFY_CODENAME="$(curl -s $URL_RELEASE_CODENAME | sed '/<present>/,$!d' | sed 's/<present>//g' | sed 's/<\/present>//g' | sed '/</d' | cut -d'/' -f1)" VERIFY_CODENAME_CAPITALIZE="$(curl -s $URL_RELEASE_CODENAME | sed '/<present>/,$!d' | sed 's/<present>//g' | sed 's/<\/present>//g' | sed '/</d' | cut -d'/' -f1 | sed -r 's/(^.| .)/\U&/g')" VERIFY_RELEASE="$(curl -s $URL_RELEASE_CODENAME | sed '/<present>/,$!d' | sed 's/<present>//g' | sed 's/<\/present>//g' | sed '/</d' | cut -d'/' -f2)" BASE_URL_PKG="$BASE_MIRROR/technology/epp/downloads/release" NAME_DEFAULT_ECLIPSE="eclipse-jee" OS="linux" CONFIG="config.lib" LIB_MSGS="messages_color.lib" PROGRESS_PERCENT_LIB="progress_percent.lib" ACTION_SETTINGS_DIR="$HOME/.eclipse_confs" ACTION_SETTINGS_FILE_INSTALL="action_settings_install.sh" ACTION_SETTINGS_FILE_UNINSTALL="action_settings_uninstall.sh" EXTENSION="tar.gz" PKGNAME_FULL="$NAME_DEFAULT_ECLIPSE-$VERIFY_CODENAME-$VERIFY_RELEASE-$OS-gtk-$ARCHITECTURE.$EXTENSION" FOLDER_ECLIPSE_DEFAULT="eclipse" FOLDER_ECLIPSE_CHANGED="$INSTALLATION_DIR/$NAME_DEFAULT_ECLIPSE-$VERIFY_CODENAME-$VERIFY_RELEASE-$OS-gtk-$ARCHITECTURE" EXEC="$FOLDER_ECLIPSE_CHANGED/eclipse" LINK_SIMBOLIC_EXEC="/usr/bin/eclipse" URLPKG="$BASE_URL_PKG/$VERIFY_CODENAME/$VERIFY_RELEASE/$NAME_DEFAULT_ECLIPSE-$VERIFY_CODENAME-$VERIFY_RELEASE-$OS-gtk-$ARCHITECTURE.$EXTENSION" # # #---------------------------------------------------------------------------------------------------- # End variables global #---------------------------------------------------------------------------------------------------- #---------------------------------------------------------------------------------------------------- # Begin functions #---------------------------------------------------------------------------------------------------- # function _CREATE_DIR_ACTION_SETTINGS(){ if [[ ! -d "$ACTION_SETTINGS_DIR" ]]; then mkdir $ACTION_SETTINGS_DIR fi } function _RUN_OPTION(){ if [[ "$1" = "gist" ]]; then _ACTION_SETTINGS _DOWNLOAD_INSTALL elif [[ "$1" = "local" ]]; then printf "\n" printf "Using: $0 { -install | -uninstall }\n" printf "\n" else printf "\n" printf "Option invalid!\n" printf "\n" fi } function _CREATE_LIBS(){ _CREATE_DIR_ACTION_SETTINGS /bin/cat << EOF > $ACTION_SETTINGS_DIR/$LIB_MSGS NONE='\033[00m' RED='\033[01;31m' BLUE='\e[34m' GREEN='\033[01;32m' YELLOW='\033[01;33m' PURPLE='\033[01;35m' CYAN='\033[01;36m' WHITE='\033[01;37m' BOLD='\033[1m' UNDERLINE='\033[4m' WARNING_MSG="\${YELLOW}[ Warning ]\${NONE}" ERROR_MSG="\${RED}[ Error ]\${NONE}" INFO_MSG="\${BLUE}[ Info ]\${NONE}" OK_MSG="\${GREEN}[ Ok ]\${NONE}" EOF /bin/cat << EOF > $ACTION_SETTINGS_DIR/$CONFIG DOWNLOAD_VALUE="uncompleted" SUDO_VALUE_INSTALL="null" SUDO_VALUE_UNINSTALL="null" EOF /bin/cat << EOF > $ACTION_SETTINGS_DIR/$PROGRESS_PERCENT_LIB # Colors NONE='\033[00m' RED='\033[01;31m' BLUE='\e[34m' GREEN='\033[01;32m' YELLOW='\033[01;33m' CYAN='\033[01;36m' WHITE='\033[01;37m' BOLD='\033[1m' MOVE_CURSOR_LEFT4="\033[4D" function _PROGRESS_PERCENT_FUNCTION(){ BEGIN_PERCENT=\$1 END_PERCENT=\$2 SECONDS=\$3 PROGRESS=\$END_PERCENT/\$SECONDS tput civis printf "\n" printf "\$4\n" for (( i=\$BEGIN_PERCENT; i<=\$END_PERCENT ; i=\$i+\$PROGRESS )); do printf "\${MOVE_CURSOR_LEFT4}\${YELLOW}\${BOLD}\$i\${NONE}" echo -ne "\${YELLOW}%\${NONE}" sleep 1 done tput cnorm printf "\${MOVE_CURSOR_LEFT4}" printf "\${YELLOW}\$END_PERCENT%%\${NONE}" printf "\012\012" } EOF } _CREATE_LIBS function _LOAD_LIBS_LOCAL(){ if [[ -f "$ACTION_SETTINGS_DIR/$LIB_MSGS" ]]; then source $ACTION_SETTINGS_DIR/$LIB_MSGS fi if [[ -f "$ACTION_SETTINGS_DIR/$CONFIG" ]]; then source $ACTION_SETTINGS_DIR/$CONFIG fi if [[ -f "$ACTION_SETTINGS_DIR/$CONFIG" ]]; then source $ACTION_SETTINGS_DIR/$PROGRESS_PERCENT_LIB fi } function _CREATE_SHORTCUT(){ /bin/cat << EOF > $ACTION_SETTINGS_DIR/$SHORTCUT_NAME [Desktop Entry] Type=Application Version=1.0 Name=Eclipse GenericName=Eclipse-IDE-$VERIFY_CODENAME_CAPITALIZE Comment[pt_BR]=IDE Desenvolvimento Java Comment[en_GB]=IDE Java Development Exec=$EXEC Icon=$FOLDER_ECLIPSE_CHANGED/icon.svg Terminal=false Categories=GTK;Development;IDE; StartupNotify=true EOF } function _ACTION_SETTINGS(){ _CREATE_DIR_ACTION_SETTINGS _CREATE_LIBS } function _PERMISSION_FOLDER_FILE_ECLIPSE(){ if [[ "$INSTALLATION_DIR" = "$HOME" ]]; then if [[ ! -d "$FOLDER_ECLIPSE_CHANGED" ]]; then exit 0 else sudo chown -R `logname`. $FOLDER_ECLIPSE_CHANGED sudo chmod -R 777 $FOLDER_ECLIPSE_CHANGED fi fi } function _DOWNLOAD_INSTALL(){ reset _LOAD_LIBS_LOCAL if [[ -d "$FOLDER_ECLIPSE_CHANGED" ]]; then printf "\n" printf "$WARNING_MSG The Eclipse $VERIFY_CODENAME_CAPITALIZE is already installed\n" printf "See where: " cd $FOLDER_ECLIPSE_CHANGED && pwd printf "\n" else for (( i = 0; i < 2; i++ )); do _LOAD_LIBS_LOCAL if [[ "$DOWNLOAD_VALUE" = "completed" ]]; then printf "\n" printf "============================================================\n" printf " Installing Eclipse $VERIFY_CODENAME_CAPITALIZE in $INSTALLATION_DIR.\n" printf "============================================================\n" printf "\n" printf "You must be ${BLUE}ROOT${NONE} to perform the installation. You need sudo.\n" printf "\n\n" _CREATE_SHORTCUT _PROGRESS_PERCENT_FUNCTION "0" "20" "2" "Starting installation..." sudo -k sudo sed -i "s|^SUDO_VALUE_INSTALL=.*|SUDO_VALUE_INSTALL=\"true\"|g" $ACTION_SETTINGS_DIR/$CONFIG _LOAD_LIBS_LOCAL if [[ "$SUDO_VALUE_INSTALL" != "true" ]]; then printf "$ERROR_MSG Installation error because you canceled the sudo process or typed incorrect password.\n" printf "Sorryy :(\n" printf "\n" exit 0 else sudo tar -xzf $HOME/$PKGNAME_FULL -C $INSTALLATION_DIR sudo mv $INSTALLATION_DIR/$FOLDER_ECLIPSE_DEFAULT $FOLDER_ECLIPSE_CHANGED sudo curl -so $FOLDER_ECLIPSE_CHANGED/icon.svg $DOWN_ICON_SVG sudo chmod -R 755 $FOLDER_ECLIPSE_CHANGED sudo ln -s $EXEC $LINK_SIMBOLIC_EXEC sudo chmod +x $LINK_SIMBOLIC_EXEC sudo mv $ACTION_SETTINGS_DIR/$SHORTCUT_NAME $DIR_SHORTCUT/$SHORTCUT_NAME _PROGRESS_PERCENT_FUNCTION "21" "100" "4" "Finishing installation..." printf "\n" printf "$WARNING_MSG Complete install Eclipse $VERIFY_CODENAME_CAPITALIZE.\n" printf "Bye! :)\n" printf "\n" fi _PERMISSION_FOLDER_FILE_ECLIPSE _CLEAR break else printf "\n" printf "===================================\n" printf " Process Information\n" printf "===================================\n" printf "\n" printf "${BLUE} Package:${NONE} $PKGNAME_FULL\n" printf "${BLUE} Download directory:${NONE} $BASE_URL_PKG\n" printf "${BLUE} Architecture:${NONE} $ARCHITECTURE_PI\n" printf "${BLUE} Maintainer:${NONE} The Eclipse Foundation\n" printf "${BLUE} Operational system:${NONE} $OS\n" printf "${BLUE} Distribution:${NONE} $DISTRIBUTION\n" printf "${BLUE}${BOLD} Download saving on:${NONE} $HOME\n" printf "\n" printf "\n" printf "===================================\n" printf " Download Eclipse $VERIFY_CODENAME_CAPITALIZE.\n" printf "===================================\n" printf "$WARNING_MSG Wait ...\n" printf "\n" curl -C - -o $HOME/$PKGNAME_FULL $URLPKG sed -i "s|^DOWNLOAD_VALUE=.*|DOWNLOAD_VALUE=\"completed\"|g" $ACTION_SETTINGS_DIR/$CONFIG fi done fi } function _CLEAR(){ # rm -f $HOME/$PKGNAME_FULL rm -rf $ACTION_SETTINGS_DIR sudo -k } function _UNINSTALL(){ reset _LOAD_LIBS_LOCAL if [[ ! -d "$FOLDER_ECLIPSE_CHANGED" ]]; then printf "\n" printf "$WARNING_MSG The Eclipse is not installed.\n" printf "It was not installed with this script.\n" printf "\n" else printf "\n" printf "============================================================\n" printf " Uninstall Eclipse $VERIFY_CODENAME_CAPITALIZE.\n" printf "============================================================\n" printf "\n" printf "$INFO_MSG This will be an irreversible action! You need sudo.\n" printf "\n" sudo -k sudo sed -i "s|^SUDO_VALUE_UNINSTALL=.*|SUDO_VALUE_UNINSTALL=\"true\"|g" $ACTION_SETTINGS_DIR/$CONFIG _LOAD_LIBS_LOCAL if [[ "$SUDO_VALUE_UNINSTALL" != "true" ]]; then printf "\n" printf "$ERROR_MSG Uninstall error because you canceled the sudo process or typed incorrect password.\n" printf "Sorry :(\n" printf "\n" exit 0 else sudo rm -rf $FOLDER_ECLIPSE_CHANGED sudo rm -f $LINK_SIMBOLIC_EXEC sudo rm -f $DIR_SHORTCUT/$SHORTCUT_NAME _PROGRESS_PERCENT_FUNCTION "0" "100" "2" "Uninstall process: " printf "\n" printf "$WARNING_MSG Complete uninstall Eclipse $VERIFY_CODENAME_CAPITALIZE.\n" printf "Bye! :)\n" printf "\n" fi _CLEAR fi } # #---------------------------------------------------------------------------------------------------- # End functions #---------------------------------------------------------------------------------------------------- case "$1" in -uninstall) _ACTION_SETTINGS _UNINSTALL ;; -install) _ACTION_SETTINGS _DOWNLOAD_INSTALL ;; *) #----------------------------------------------------------------------- # Configuration script to run locally #----------------------------------------------------------------------- # # Use the parameter "local" if you want to use this script locally. # The advantage of using locally is that you can use the option to # install and uninstall. # #----------------------------------------------------------------------- # Configuration to run script via web "Gist" (Curl -L) #----------------------------------------------------------------------- # # Use the parameter "gist" if you want to use this script by Gist. # This option will not download the script, however, only porerá # use the option to install. The option to uninstall is not available. # #----------------------------------------------------------------------- # _RUN_OPTION "gist" ;; esac # # #---------------------------------------------------------------------------------------------------- # End Script - Copyright (c) Script 2015 - William C. Canin <http://github.com/williamcanin> #====================================================================================================
Software backup, restore, leitura de logs, com dialog
Script para bloqueio MSN/SITE por horário/usuário
Tradução de endereços de uma rede interna
Nenhum comentário foi encontrado.
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
É cada coisa que me aparece! - não é só 3% (1)
Alguma pessoa pode me ajudar com drriver Core i3 7020u (Debian 12)? (2)
Mikrotik não mostra bytes nem packtes (1)
Melhores Práticas de Nomenclatura: Pastas, Arquivos e Código [RESOLVID... (4)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta