InstallDPKG - Instalando pacotes DEB no Slackware
Publicado por Mauricio Ferrari (última atualização em 26/04/2020)
[ Hits: 2.741 ]
Homepage: https://www.youtube.com/@LinuxDicasPro
Ao invés de converter um pacote do Debian para depois instalar no Slackware, porque já não instalar diretamente sem Slackbuilds, sem alien, sem deb2tgz, sem nada? Você baixa o pacote no formato .deb e já instala usando o script installdpkg.
O nome é uma homenagem ao dpkg do Debian. Inseri alguns parâmetros adicionais para aumentar a eficiência. Ele basicamente converte o pacote em um diretório temporário e depois já instala excluindo o pacote gerado temporariamente. Mas, eu deixei o parâmetro -c para quem quiser apenas converter o pacote.
#!/bin/bash # # InstallDPKG - Versão 1.2 # # Script criado para instalar pacotes do Debian diretamente no Slackware, sem a necessidade de converter os pacotes. # # Foi utilizado como base o script "deb2tgz" criado por Vitor Borrego, Corroios, Portugal, 2016. # Foi incrementado o parâmetro -c com base no script "deb2targz" criado por # John Barrett <john@jbrt.org>, 2014. (03/10/2018). # # Construção do Script: 26/07/2018 # Ultima alteração: 26/04/2020 # # Criado por Mauricio Ferrari. Nova Trento, Santa Catarina. ############################################################################################################################# ### Primeira etapa. Informação sobre o uso do Script. O ($0) copia a localização do Script. if [ "$1" = "" ]; then echo echo "$0" echo "InstallDPKG - Versão 1.2" echo echo " Script criado para instalar pacotes do Debian" echo " diretamente no Slackware, sem a" echo " necessidade de converter os pacotes." echo echo " Uso: installdpkg <-cu> <pacote.deb>" echo echo "Parâmetros:" echo echo " -c, Converte os pacotes mas não instala," echo " salvando no diretório onde o <pacote.deb>" echo " se encontra." echo echo " -u, Usa um método que irá instalar o pacote" echo " usando um método de Atualização, desinstalando" echo " o pacote obsoleto." echo exit 1; fi ############################################################################################################################# ### Criando o diretório temporário, que será usado no processo de conversão do pacote deb para a instalação. tempfolder () { if [ -x "$(which mcookie)" ]; then tempd=/tmp/tmp.$(mcookie) mkdir -p -m 0755 $tempd elif [ -x "$(which openssl)" ]; then tempd=/tmp/tmp.$(dd if=/dev/urandom bs=1k count=1 2> /dev/null | openssl dgst -md5) mkdir -p -m 0755 $tempd elif [ -x "$(which md5)" ]; then tempd=/tmp/tmp.$(dd if=/dev/urandom bs=1k count=1 2> /dev/null | md5) mkdir -p -m 0755 $tempd elif [ -x "$(which mktemp)" ]; then tempd=$(mktemp -d) chmod 755 $tempd fi ### Aqui o comando a seguir (echo $tempd) deve retornar com o nome do diretório criado para não acusar erro. if [ -d $tempd ]; then echo $tempd else echo echo "ERRO: Não foi possível encontrar o mcookie," echo " o openssl, ou o md5." echo exit 1; fi } ############################################################################################################################# ### Função criada para o parâmetro -c que é a parte que faz a conversão, copiando o pacote gerado na pasta home. convertion () { if [ -f "$tempdir/data.tar.gz" ]; then ### Conversão do (data.tar.gz). mv $tempdir/data.tar.gz $savedir/$(basename $debfile .deb).tgz fi if [ -f "$tempdir/data.tar.xz" ]; then ### Conversão do (data.tar.xz). mv $tempdir/data.tar.xz $savedir/$(basename $debfile .deb).txz fi if [ -f "$tempdir/data.tar.bz2" ]; then ### Conversão do (data.tar.bz2). mv $tempdir/data.tar.bz2 $savedir/$(basename $debfile .deb).tbz fi if [ -f "$tempdir/data.tar.lzma" ]; then ### Conversão do (data.tar.lzma). mv $tempdir/data.tar.lzma $savedir/$(basename $debfile .deb).tlz fi rm -rf $tempdir ### O diretório temporário será excluído. } ############################################################################################################################# ### Aqui é a parte onde é configurado os parâmetros do script. ARGS=$(getopt "cu" $* ) ### identificação dos parâmetros inseridos. set -- ${ARGS} for i; do case "$1" in -u) UPGRADE_PKG="true" ### Parâmetro -u. shift ;; -c) CONVERT_PKG="true" ### Parâmetro -c. shift ;; --) shift break ;; esac done ############################################################################################################################# ### Parte do script que detecta o pacote debian e realiza a conversão e/ou a instalação do pacote gerado. for debfile in $* ; do ### O debfile são os arquivos *.deb a serem instalados. INST=installpkg ### Definindo o comando de instalação. tempdir=$(tempfolder) ### Criando o diretório temporário. savedir=$(pwd $debfile) ### Diretório onde o pacote convertido será salvo usando o parâmetro -c. cp $debfile $tempdir 2>/dev/null ### Copiando o pacote *.deb para o diretório temporário. cd $tempdir ### Acessando o diretório temporário. ar x $debfile 2> /dev/null ### Extração do pacote *.deb usando o comando 'ar'. if [ ! $? = 0 ]; then ### Mensagem exibida em caso de falha na extração. echo echo "ERRO: Ocorreu uma falha ao tentar fazer a extração" echo " do pacote $debfile." echo echo " O pacote $debfile é invalido ou está" echo " corrompido." echo rm -rf $tempdir ### O diretório temporário será excluído. exit 1; fi if [ "$UPGRADE_PKG" = "true" ]; then ### Parâmetro -u. INST="upgradepkg --install-new" #exit 1; fi if [ "$CONVERT_PKG" = "true" ]; then ### Parâmetro -c. convertion exit 1; fi if [ "`basename $0`" = "installdpkg" ]; then ### Identificação do nome do Pacote. echo -e -n "\033[1;36m" if [ -f "$tempdir/data.tar.gz" ]; then ### Instalação do (data.tar.gz). mv $tempdir/data.tar.gz $tempdir/$(basename $debfile .deb).tgz && $INST *.tgz fi if [ -f "$tempdir/data.tar.xz" ]; then ### Instalação do (data.tar.xz). mv $tempdir/data.tar.xz $tempdir/$(basename $debfile .deb).txz && $INST *.txz fi if [ -f "$tempdir/data.tar.bz2" ]; then ### Instalação do (data.tar.bz2). mv $tempdir/data.tar.bz2 $tempdir/$(basename $debfile .deb).tbz && $INST *.tbz fi if [ -f "$tempdir/data.tar.lzma" ]; then ### Instalação do (data.tar.lzma). mv $tempdir/data.tar.lzma $tempdir/$(basename $debfile .deb).tlz && $INST *.tlz fi echo -e -n "\033[0m" fi rm -rf $tempdir ### O diretório temporário será excluído. done
Instalação de pacotes em uma lista
Shell Script para consulta a Wikipedia utilizando linhas de comando
Manipular um arquivo txt como se fosse uma planilha de calculo
Avisar quando partição estiver 90% ocupada
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
Não to conseguindo resolver este problemas ao instalar o playonelinux (1)
Excluir banco de dados no xampp (1)
[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