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.543 ]
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
Software Manivela VS Software Modinha
Compilação do Kernel Linux para máquinas locais Debian
Compilação Kernel Linux no Slackware
Programas em Modo Texto (on Shell)
Howto de Compilação com Slackbuilds
Programando: Escolhendo a melhor opção
Criando, monitorando e terminando processos
Principais novidades do Linux Mint 20 Ulyana
Linux pode ser usado por todo mundo! Escolhendo o seu primeiro Linux. Duas Filosofias fundamentais
librePods: liberte seus AirPods em 2026
Bluefin - A nova geração de ambientes de trabalho Linux
Como atualizar sua versão estável do Debian
Instalando e definindo as novas fontes Adwaita no GNOME
Configurar aviso da temperatura da CPU no Conky
Pós-instalação do elementary OS 8.1
Quer auto-organizar janelas (tiling) no seu Linux? Veja como no Plasma 6 e no Gnome
Copiando caminho atual do terminal direto para o clipboard do teclado
archlinux resolução abaixou após atualização [RESOLVIDO] (19)
Após todos esses anos... youtube! (0)
Conky não mostra temperaturas da CPU no notebook (14)
Registro do 'last&qu... errado [RESOLVIDO] (9)
O WiFi não reconhece minha rede depois que o processo de suspensão é r... (2)









