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: 11.414 ]
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
Howto de Compilação com Slackbuilds
Como ser um expert em GNU/Linux!
Programar em Shell - Script só para os baixinhos
Software Manivela VS Software Modinha
Compilação Kernel Linux no Slackware
FAI (Fully Automatic Installation)
Rocky Linux - Novo Substituto do CentOS
Lógica para Computação - Parte V
Solicitações através do Tor utilizando Python
Programa IRPF - Guia de Instalação e Resolução de alguns Problemas
Criando uma Infraestrutura para uma micro Empresa
Criar entrada (menuentry) ISO no Grub
Como gerar qualquer emoji ou símbolo unicode a partir do seu teclado
Instalando o Pi-Hole versão v5.18.4 depois do lançamento da versão v6.0
Instalar o VIM 9.1 no Debian 12
Como saber o range de um IP público?
Muitas dificuldades ao instalar distro Linux em Notebook Sony Vaio PCG-6131L (VPCEA24FM)
problema para barrar sites/downloas via HTTPS. (2)
Liberação de alguns links no squid (21)