Instalador universal de pacotes PackageKit e suas GUIs em qualquer distro, inclusive no Sabayon

Publicado por Alberto Federman Neto. em 26/08/2010

[ Hits: 17.007 ]

Blog: https://ciencialivre.blog/

 


Instalador universal de pacotes PackageKit e suas GUIs em qualquer distro, inclusive no Sabayon



1) Introdução

Pronto, agora ficou ainda mais fácil instalar qualquer coisa em qualquer Linux.

Experimentem o PackageKit, ele funciona em qualquer distro!

Alguns dizem que instalar pacotes, programas em Linux é difícil, mas não é não! Cada distro tem seu programa instalador.

Ex.: O Ubuntu tem dois instaladores gráficos, o Debian e outras distros baseadas nele, usam o Synaptic ou comandos aptitude ou apt-get, em Mandriva se pode usar Urpmi ou RPMDrake, no openSUSE usa-se o YaST ou os comandos yum ou zypper e alguns pacotes ainda podem ser instalados via Web, através do "Install-One-Click! etc.

Mas há outros métodos gerais e ainda mais fáceis!

Quem usa distros baseadas em Red Hat como Fedora, openSUSE ou Mandriva pode conhecer e/ou usar PackageKit. Também pode usado em Ubuntu e Distros Debian Like.

PackageKit é um instalador de pacotes considerado universal, isto é, tem a capacidade de instalar pacotes ou atualizar qualquer distro com pacotes DEB ou RPM, independente da arquitetura ou do gerenciador de arquivos principal, seja ele APT, Urpmi, Zypper, Yum etc.

Atua em modo gráfico, através de suas interfaces, KPackageKit ou Gnome-PackageKit.

Acontecia que, devido à estrutura diferente e de compilação dos sistemas com Portage (Gentoo, Funtoo, Sabayon, Librix, Litrix, VidaLinux, Ututo, Toorox etc), ele não funcionava nessas distros e seu uso era considerado inclusive perigoso para a integridade do sistema!

Por outro lado, as distros tipo Gentoo são conhecidas pela sua maior dificuldade de instalação e atualização, inclusive dos pacotes.

É necessário usar comandos (emerge, equo) ou GUIs especiais, que só funcionam para Portage (como Kuroo, Portato, Porthole ou Himerge). Para o Sabayon (instalador Entropy, um Portage semi-compilado), existe o comando equo e a GUI Sulfur:
Porém o PackageKit está sendo adaptado (backend) para uso no Gentoo e por isso já está incluído no Portage a cerca de um ano:
Baseado nisso, os desenvolvedores do Sabayon estenderam o suporte ao PackageKit:
Agora você tem mais um jeito muito fácil de atualizar ou instalar pacotes no Sabayon ou nas Distros mais usuais, tipo Red Hat ou Debian, inclusive Ubuntu.

2) Instalação do PackageKit:

Nas distros tipo Debian ou Red Hat, o Packagekit e sua GUIS são facilmente encontrados nos repositórios.

Instale-o como o faria com qualquer outro pacote. Advirto porém, que o APT, o Synaptic, URPM, o Zypper ou YaST, não devem ser removidos!

Em testes iniciais, instalei e usei com toda facilidade, em Mandriva 2010.1 e em openSUSE 11.3.

E em Sabayon? Para instalar em Sabayon, bastou fazer os comandos:

sudo equo update
$ sudo equo install --verbose kpackagekit


Todas as outras dependências: (packagekit, packagekit-base, packagekit-gtk, packagekit-gt4 e gnome-packagekit) foram baixadas automaticamente. Ele instalou sem nenhum problema!

3) Usando o PackageKit e suas GUIS:

Para usá-lo, procure no menu do KDE (Kpackagekit) ou do GNOME (gpk-application) ou abra-o com os comandos (pode ser como usuário comum, não root, o que é uma grande vantagem):

kpackagekit (em KDE) ou
gpk-application (em GNOME)

Aí é intuitivo! Basta procurar pelos pacotes (na caixa de busca da sessão "Gerenciamento de Software" ou fazer atualização (na Sessão "Atualização de Software") como o faria no Synaptic ou no Sulfur. É muito prático e rápido!

Ainda, em muitas distros, ele vai ficar residente, como um notificador, monitorando as atualizações, bastará chamá-lo para ter sua Distro atualizada.

Em distros Rolling Release, como o Mandriva Free e o próprio Sabayon, ele pode ser configurado para trabalhar automaticamente e assim, nem chamá-lo para fazer as atualizações, precisará!

Iniciando o Linux, ele já se atualizará por completo, sem que você precise sequer se lembrar de atualizar, ou abrir o Package Kit, ou mesmo fazer qualquer comando!

Nas figuras abaixo, veja o PackageKit-KPackageKit em ação, pronto para atualizar o Sabayon Linux. Note que o pacote a ser atualizado é recentíssimo, unstable e é o mesmo indicado pelo Magneto (Entropy). Note também as configurações para o caso de querer atualizar automaticamente. Observe, ainda o ícone da engrenagem verde e cinza, abaixo, à direita, perto do relógio digital, é o notificador do PackageKit, avisando que há atualizações ou mesmo as fazendo automaticamente se você quiser, sem sua intervenção.
Linux: Instalador universal de pacotes PackageKit e suas GUIs em qualquer Distro, inclusive no Sabayon.   Linux: Instalador universal de pacotes PackageKit e suas GUIs em qualquer Distro, inclusive no Sabayon.
Pronto, você pode atualizar sua distro, praticamente sem ter trabalho e sem usar nenhum comando.

4) Removendo o Sulfur e o Magneto:

Desejando, em Sabayon, você poderá remover a GUI do Entropy, Sulfur e/ou o notificador Magneto, se não for mais usá-los.

Porém isto precisa ser feito com comandos e pulando dependências, ou removerá o Entropy e dependências de KDE ou GNOME. Para isso, abra um terminal e use os comandos:

sudo equo remove --verbose --relaxed (ou --nodeps) sulfur magneto-loader magneto-gtk magneto-core magneto-kde

Outras dicas deste autor

Como usar Looking Glass sem alterar seu sistema Linux

Como reparar Portage danificado

Kuroo - Facilitando a instalação de pacotes no Gentoo

SPM - compilando programas-fonte com facilidade

Bashish - Modifique e configure seu terminal (bash)

Leitura recomendada

Clube do pingüim

Ubuntu-Tweak: Configurando seu Ubuntu 7.10

Instalando pacotes .deb no openSUSE Leap 15 via Alien

Instalando USB Stick Formatter e USB Image Writer no Debian 9 Stretch

Como Instalar o X-window + KDE no Debian-Colinux

  

Comentários
[1] Comentário enviado por pinduvoz em 27/08/2010 - 16:54h

O Packagekit experimentei no Fedora e é realmente fácil de usar mas, em Debian, ainda sou mais o Synaptic.

Aliás, ele (o Synaptic) é usado com rpm (apt-rpm) no PCLinuxOS e funciona muito bem.


[2] Comentário enviado por albfneto em 27/08/2010 - 17:43h

Sempre aprendendo,eu não conhecia uso de APT e Synaptic, em distros com RPM.

[3] Comentário enviado por juliaojunior em 27/08/2010 - 22:41h

Gostei demais!!!!
Vou testar.

[4] Comentário enviado por vinipsmaker em 30/08/2010 - 09:25h

Falta só uma GUI em Qt (que não vá depender das kdelibs) e outra em Elementary/Edje.
Mas Packagekit é realmente algo interessante.

[5] Comentário enviado por albfneto em 30/08/2010 - 15:59h

Vini, GUI para GNOME tem, não sei se ela está em QT.

[6] Comentário enviado por dantti em 12/11/2010 - 00:56h

Notem que o pacote do PackageKit para o Debian acabou de entrar no repositorio SID.
Porem ainda nao foi empacotado nem o KPackageKit ou o GPK.
E existe algumas pessoas querendo (ou fazendo) uma interface em Qt para o Meego.
Abs

[7] Comentário enviado por laboratoriomarli em 18/11/2013 - 17:04h

Olá pessoal
Trabalho no laboratório de informática de escola estadual. Nos computadores esta instalado o SO Linux Educacional 4.0 (KDE). Logo depois que reinstalei o SO em uma máquina realizei o update do SO através dos comandos aptitude: updade, safe-upgrade e -f install. Depois da atualização percebi que foram isntalados no SO alguns aplicotivos, entre eles o KpackageKit que tem apresentado alguns erros. Constantemente do nada aparece uma janela com a seguinte mensagem:

Desculpe-nos, mas o KpackageKit fechou inesperadamente.
Você pode nos ajundar a melhorar os aplicativos do KDE relatando este erro.
Detalhes: kpackagekitismarticon PID: 7489 Sinal: 11 (Segmentation fault)

Nesta mesma janela do KpackageKit há a aba "Informação do desenvolverdor", clico nela e aparece as seguintes informações:

Esta informações da falha podem ser úteis:

Application: KPackageKit (kpackagekitsmarticon), signal: Segmentation fault
[KCrash Handler]
#6 0xb6d41107 in QMutex::lock() () from /usr/lib/libQtCore.so.4
#7 0xb6e48724 in QCoreApplication::postEvent(QObject*, QEvent*, int) () from /usr/lib/libQtCore.so.4
#8 0xb6e48a9c in QCoreApplication::postEvent(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4
#9 0xb6e58994 in QObject::deleteLater() () from /usr/lib/libQtCore.so.4
#10 0xb7077384 in PackageKit::ClientPrivate::serviceOwnerChanged(QString const&, QString const&, QString const&) () from /usr/lib/libpackagekit-qt.so.12
#11 0xb7079453 in PackageKit::ClientPrivate::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib/libpackagekit-qt.so.12
#12 0xb6e4dd8a in QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**) () from /usr/lib/libQtCore.so.4
#13 0xb6e5c445 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4
#14 0xb704323f in QDBusConnectionInterface::serviceOwnerChanged(QString const&, QString const&, QString const&) () from /usr/lib/libQtDBus.so.4
#15 0xb7043563 in QDBusConnectionInterface::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib/libQtDBus.so.4
#16 0xb6e4dd8a in QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**) () from /usr/lib/libQtCore.so.4
#17 0xb6e5c445 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4
#18 0xb70430ef in QDBusConnectionInterface::NameOwnerChanged(QString const&, QString const&, QString const&) () from /usr/lib/libQtDBus.so.4
#19 0xb70435f3 in QDBusConnectionInterface::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib/libQtDBus.so.4
#20 0xb7003bf4 in ?? () from /usr/lib/libQtDBus.so.4
#21 0xb700ef67 in ?? () from /usr/lib/libQtDBus.so.4
#22 0xb6e5944e in QObject::event(QEvent*) () from /usr/lib/libQtCore.so.4
#23 0xb60784dc in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#24 0xb607f01e in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#25 0xb758040a in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5
#26 0xb6e48b2b in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4
#27 0xb6e4b563 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib/libQtCore.so.4
#28 0xb6e4b6cd in QCoreApplication::sendPostedEvents(QObject*, int) () from /usr/lib/libQtCore.so.4
#29 0xb6e74c1f in ?? () from /usr/lib/libQtCore.so.4
#30 0xb57f46e5 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#31 0xb57f83d8 in ?? () from /lib/libglib-2.0.so.0
#32 0xb57f85b8 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#33 0xb6e74715 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#34 0xb6138225 in ?? () from /usr/lib/libQtGui.so.4
#35 0xb6e47149 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#36 0xb6e4759a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#37 0xb6e4b78f in QCoreApplication::exec() () from /usr/lib/libQtCore.so.4
#38 0xb6078577 in QApplication::exec() () from /usr/lib/libQtGui.so.4
#39 0x080510c1 in _start ()

Gostaria de saber o que eu poderia fazer para resolver este problema.
Desde já obrigado pela atenção.




Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts