Crie Seu Próprio Gerenciador de Pacotes do Zero - Parte 1
Eu sempre fui curioso em relação às coisas que me interessam, quando iniciei no mundo do GNU/Linux, eu fiquei admirado com a facilidade de instalar programas. No início, rodando entre as distribuições Linux, eu acabei conhecendo vários tipos de gerenciadores de pacotes e cada um com sua peculiaridade. Foi aí que me interessei em ler o código fonte de diversos gerenciadores e criar o meu próprio.
[ Hits: 10.139 ]
Por: Slackjeff em 19/02/2020 | Blog: https://slackjeff.com.br
#!/bin/sh #==============================HEADER================================| #AUTOR # Jefferson 'Slackjeff' Rocha # #VERSÃO # 0.1 # #DESCRIÇÃO #pkginstall - Instala pacotes gerado com o createpkg e gera uma lista # de rastreamento em /var/log/installed/PKG.track #====================================================================| set -e #======================== CONFIGURAÇÕES INSTALLED_PKG="/var/log/installed"
#======================== TESTES [ ! -d $INSTALLED_PKG ] && mkdir $INSTALLED_PKG
INSTALL() { } #======================== INICIO case $1 in -i|--install|install) shift # Rebaixando parâmetro. # Se o arquivo existir chem a função INSTALL com o nome do pacote. [ -e "$1" ] && INSTALL "$1" ;; *) echo "Opções disponiveis: -i|--install|install" ;; esac
INSTALL() { # Nome do pacote completo com extensão local pkg="$1" # Nome do pacote sem extensão .tar.xz local pkg_only_name="${pkg//.tar.xz/}"
# Informação para o usuário. echo "========> Iniciando instalação do pacote ${pkg}" # Criando arquivo .track e enviando nome do pacote como comentário. echo "#PACOTE: ${pkg_only_name}" > "${INSTALLED_PKG}/${pkg_only_name}.track" echo
# Fazendo extração do pacote e enviando a lista do que está sendo instalado # para o arquivo .track tar xvf ${pkg} -C / >> "${INSTALLED_PKG}/${pkg_only_name}.track"
echo "Removendo caracteres desnecessários do arquivo .track" # Removendo alguns caracteres não importantes! e que podem resultar em falhas. sed -i 's/\.\//\//g; s/^\/$//; /^$/d' "${INSTALLED_PKG}/${pkg_only_name}.track" 2>/dev/null
echo "Pacote: $pkg foi instalado com sucesso." return 0
#!/bin/sh #==============================HEADER================================| #AUTOR # Jefferson 'Slackjeff' Rocha # #VERSÃO # 0.1 # #DESCRIÇÃO #pkginstall - Instala pacotes gerado com o createpkg e gera uma lista # de rastreamento em /var/log/installed/PKG.track #====================================================================| set -e #======================== CONFIGURAÇÕES INSTALLED_PKG="/var/log/installed/" #======================== TESTES [ ! -d $INSTALLED_PKG ] && mkdir $INSTALLED_PKG #======================== FUNÇÕES INSTALL() { # Nome do pacote completo com extensão local pkg="$1" # Nome do pacote sem extensão .tar.xz local pkg_only_name="${pkg//.tar.xz/}" # Informação para o usuário. echo"========> Iniciando instalação do pacote ${pkg}" # Criando arquivo .track e enviando nome do pacote como comentário. echo "#PACOTE: ${pkg_only_name}" > "${INSTALLED_PKG}/${pkg_only_name}.track" echo # Fazendo extração do pacote e enviando a lista do que está sendo instalado # para o arquivo .track tar xvf ${pkg} -C / >> "${INSTALLED_PKG}/${pkg_only_name}.track" echo "Removendo caracteres desnecessários do arquivo .track" # Removendo alguns caracteres não importantes! e que podem resultar em falhas. sed -i 's/\.\//\//g; s/^\/$//; /^$/d' "${INSTALLED_PKG}/${pkg_only_name}.track" 2>/dev/null echo "Pacote: $pkg foi instalado com sucesso." return 0 } #======================== INICIO case $1 in -i|--install|install) shift # Rebaixando parâmetro. # Se o arquivo existir chem a função INSTALL com o nome do pacote. [ -e "$1" ] && INSTALL "$1" ;; *) echo "Opções disponiveis: -i|--install|install" ;; esac
Como ser um expert em GNU/Linux!
Compilação do Kernel Linux para máquinas locais Debian
Programas em Modo Texto (on Shell)
Programar em Shell - Script só para os baixinhos
Teste de distribuições GNU/Linux em pendrive
Ferramentas Linux indispensáveis no reparo de computadores
Seja Legal, não use softwares piratas!
Como agendar um backup automático do PostgreSQL no Cron evitando o problema de senha
Como preparar o Vim/Neovim para corrigir ortografia em português
Dark Web e Malwares na internet, quanto custa?
Configuração básica do Conky para mostrar informações sobre a sua máquina no Desktop
Como verificar o hash de um arquivo baixado da Internet e como criar um hash
Debian 12 - IPTABLES - removendo NFTABLES
OverWatch 2 - Abrindo portas do jogo no Iptables.
Como instalar o adaptador wifi USB Intelbras ACtion A1200 no Linux Mint
Como normalizar seus arquivos MP3 para que fiquem no mesmo volume
Erro no brave no Ubuntu 22.04.4 LTS (16)
Instalando e compilando o GCC/G++ erro (5)
WACOM Intuos no Ubuntu - muita dificuldades (1)
Instalação do Programa Imposto de Renda Pessoa Física 2023 [RESOLVIDO]... (6)
[C/C++] BRT - Bulk Renaming Tool
[Shell Script] Criação de Usuarios , Grupo e instalação do servidor de arquivos samba
[Shell Script] Tire screenshots com Scrot facilmente com Zscrot
[Shell Script] DioPSI - Script multidistro para instalar programas
[Shell Script] ARS Vídeos - Cortador de vídeos e webcam shooter