Tradutor - Select your language

sexta-feira, 14 de julho de 2017

Como instalar o Brackets nas versões mais recentes do Linux

Como instalar o Brackets nas versões mais recentes do Linux

Com as novas versões do Linux, tem sido complicado instalar o aclamado editor Brackets da Adobe. Isso ocorre pelo fato deste programa utilizar como requisito a biblioteca libgcrypt11, substituída pela libgcrypt20 nestas novas distribuições.
Por: Luke Holm em 06/07/2017
INTRODUÇÃO

Em decorrência de problemas de licença, não se sabe quando os desenvolvedores poderão atualizar para esta nova versão. Portanto, neste artigo discutiremos uma forma de contornar esta dificuldade para quem deseja ter esse excelente programa para editar seus códigos. 

Adicionalmente, como um bônus, será ensinado uma forma simples de fazer descompactação de pacotes instaladores debian (.deb), utilizados pelos Linux derivados do Debian, como Ubuntu e Mint, dentre outros. A seguir, faremos alterações e o novo empacotamento. Portanto, é um conhecimento interessante e que pode ser útil em algumas circunstâncias, seja para modificar requisitos, incluir bibliotecas ou modificar o "post install" (pós instalação) destes pacotes. 

Conforme já mencionado na descrição deste artigo, versões recentes das distribuições, que realizaram a substituição da biblioteca libgcrypt11, passam a ter problemas na instalação do Brackets. O time de desenvolvimento da Adobe reconhece o problema, mas não existe ainda previsão para atualização corrigindo o problema. 

Entre as possíveis formas, destacaremos duas, uma das quais de forma apenas informativa, por não constituir um procedimento recomendado pelos desenvolvedores das distros e a outra, que adotaremos no presente artigo. 

A primeira solução para o problema, seria criar uma entrada oldstable no sources.list das distribuições. Desta forma, endereçaríamos o repositório antigo que ainda possui em seu bojo a biblioteca requerida. Teríamos que instalar essa biblioteca a partir deste repositório. Essa prática é desaconselhada pelos desenvolvedores, pois sua prática misturaria pacotes de uma distro antiga com uma nova. Ao fazer isso, a biblioteca é "instalada" no sistema. 

A segunda solução, que adotaremos, consiste na prática conhecida como "bundling". Faremos uma mudança cirúrgica no arquivo de instalação, de forma a adequá-lo para uso, permitindo a conclusão da instalação do software. Para tanto, faremos a extração do pacote, mudaremos os requisitos, incluiremos a biblioteca necessária e faremos o reempacotamento. 

Na página seguinte, daremos início ao processo, vamos lá.. 

IMPORTANTE! Embora o procedimento não envolva riscos aparentes ao sistema, sempre antes de qualquer alteração, tire um snapshot para o caso de alguma eventual restauração. É sempre importante e recomendável proceder de forma segura!!! 


OBTENÇÃO DOS REQUISITOS NECESSÁRIOS AO PROCEDIMENTO


Ok, vamos listar as ferramentas que precisaremos para realizar nossa missão.

  • Pacote de instalação (.deb) do Brackets;
  • Biblioteca libgcrypt11 (libgcrypt.so.11).


1. Download do arquivo de instalação do Brackets 

Para obter o arquivo de instalação, basta entrar no site brackets.io e fazer o Download. O site deve reconhecer tratar-se de distro Linux e enviar o arquivo corretamente. 

2. Download da biblioteca libgcrypt11 

Para tanto, precisaremos acessar o arquivo no repositório Wheezy do Debian, uma vez que este arquivo não é mais distribuído nas novas versões. Segue o link direto para download:
3. Como parte final desta etapa, vamos preparar o ambiente para extração e empacotamento 

Crie um diretório de trabalho. Abaixo é criado no diretório temporário, mas fique a vontade para criar onde preferir. Para modificar pacotes Debian, é preciso ser root ou usar fakeroot. Usaremos root no processo, mas caso haja ressalvas, a outra opção pode ser adotada. 

IMPORTANTE! Abaixo, substitua /home/user/Downloads/arquivoBrackets.deb pelo diretório em que se encontra o arquivo de instalação do Brackets, cujo download foi realizado nos passos acima, seguido pelo nome do arquivo. 

Ex.: suponha que tenha baixado no diretório Downloads, o usuário se chame mario e o arquivo se chame Brackets.Release.1.9.deb. Neste caso teríamos no comando: 

cp /home/mario/Downloads/Brackets.Release.1.9.deb /tmp/brackets 

O mesmo raciocínio deve ser realizado para o outro comando "cp". 

 su -
# mkdir /tmp/brackets
# mkdir /tmp/libgcrypt
# cp /home/user/Downloads/arquivoBrackets.deb /tmp
# cp /home/user/Downloads/libgcrypt11.deb /tmp/
 

REALIZANDO AS OPERAÇÕES NECESSÁRIAS

Agora daremos início ao processo propriamente dito. 

Vamos começar extraindo o conteúdo do arquivo de instalação do Brackets. Para tanto, deve-se executar os seguintes passos: 

No segundo comando, utilizamos o comando dpkg-deb da suíte dpkg para extrair o arquivo .deb, informamos o nome do arquivo e o diretório para o qual os dados devem ser extraídos. Substitua o nome do arquivo .deb pelo nome do arquivo recém baixado. Como estamos no diretório /tmp e criamos anteriormente o diretório brackets, basta informar esse nome como último argumento. 

# cd /tmp
# dpkg-deb -R ./Brackets.Release.1.9.deb brackets 

Após concluído o comando acima, vamos entrar e verificar o conteúdo extraído: 

# cd brackets
# ls 

Como resultado, devemos ter algo como: 

DEBIAN
opt
usr 

Vamos aproveitar e fazer o mesmo processo com o outro pacote: 

# cd /tmp
# dpkg-deb -R ./libgcrypt11.deb libgcrypt 

Após concluído o comando acima, vamos entrar e verificar o conteúdo extraído: 

# cd libgcrypt
# ls 

Como resultado, devemos ter algo como: 

# ls
DEBIAN
lib
usr 

Ok. Agora vamos eliminar a dependência existente no interior do instalador. Para tanto, vamos procurar pelo local em que se encontra tal dependência. Ela situa-se dentro da pasta "DEBIAN", no arquivo "control". 

# cd /tmp/brackets/DEBIAN
# more control | grep libgcrypt 

Devemos ter algo como: 

Depends: gconf-service, libasound2 (>= 1.0.23), libatk1.0-0 (>= 1.12.4), libc6 (>= 2.11), libcairo2 (>= 1.6.0), libcups2 (>= 1.4.0), libdbus-1-3 (>= 1.2.14), libexpat1 (>= 1.95.8), libfontconfig1 (>= 2.8.0), libfreetype6 (>= 2.3.9), libgcc1 (>= 1:4.1.1), libgconf-2-4 (>= 2.31.1), libgcrypt11 (>= 1.4.5), libgdk-pixbuf2.0-0 (>= 2.22.0), libglib2.0-0 (>= 2.18.0), libgtk2.0-0 (>= 2.24.0), libnspr4 (>= 1.8.0.10), libnss3 (>= 3.12.6), libpango1.0-0 (>= 1.22.0), libstdc++6 (>= 4.6), libudev0 (>= 147) | libudev1 (>= 198), libx11-6 (>= 2:1.4.99.1), libxcomposite1 (>= 1:0.3-1), libxdamage1 (>= 1:1.1), libxext6, libxfixes3, libxrandr2 (>= 2:1.2.0), libxrender1, ca-certificates, libcurl3, lsb-base (>= 3.2), xdg-utils (>= 1.0.2), wget 

Perceba a dependência, listada acima como: libgcrypt11 (>= 1.4.5) 

Passemos a remoção: 

# sed -i 's/ libgcrypt11 (>= [0-9.]+),//' ./control 

Caso queira confirmar, basta executar novamente o comando "more" situado imediatamente antes deste último. Verá que a dependência foi removida. 

Por último, precisamos incluir a biblioteca necessária no interior do diretório. 

# cd /tmp/libgcrypt
# find . -name "libgcrypt.so.11" -print 

Devemos ter algo como: 

./lib/x86_64-linux-gnu/libgcrypt.so.11 

Vamos copiar para dentro da pasta do instalador: 

# cp ./lib/x86_64-linux-gnu/libgcrypt.so.11 /tmp/brackets/opt/brackets
# cp ./lib/x86_64-linux-gnu/libgcrypt.so.11 /tmp/brackets/opt/brackets/lib 

Pronto! Estamos prontos para reconstruir o pacote. 

# cd /tmp
# dpkg-deb -b brackets ./Brackets-rebuild.deb 

Meus amigos, esse comando demora uma eternidade. Vá lá, pegue um café ou uma cerveja, navegue um pouco pela internet, jogue o game ou assista ao seriado preferido.. Depois de uns bons minutos de espera, teremos a conclusão do comando e a presença do arquivo Brackets-rebuild.deb no diretório "tmp". 

Agora é só instalar, vamos encerrar: 

# apt-get update
# gdebi Brackets-rebuild.deb 

Pronto, feito isso, basta clicar no ícone do Brackets no Ambiente Gráfico. 

Peço desculpas pelo tamanho do artigo, mas quis fazer passo a passo pois temos pessoas novas no Linux, desta forma facilita para que não percam alguma etapa. 

Espero que tenham gostado e que possam agora desfrutar do Brackets em suas distros. 

Abraços. 


Procedimentos de extração e reempacotamento de autoria própria, baseado no uso da suite dpkg. 

Nenhum comentário:

Postar um comentário