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: 12.225 ]
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!
Software Manivela VS Software Modinha
Compilação Kernel Linux no Slackware
Howto de Compilação com Slackbuilds
Compilação do Kernel Linux para máquinas locais Debian
Sim! Outro artigo na linha "Por onde começo?"
Uma introdução ao shell (parte 1)
Como Rodar Shell Script e Python via Apache no Linux
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?
Instalação dualboot Windows 11 e Debian 13 (0)
Programa fora de escala na tela do pc (33)
Eu queria adicionar a incon do wifi e deixa transparente no fluxbox no... (0)









