How-To :: tornando seu Debian muito mais poderoso!


Não, isso não é algum poder sobrenatural ou algo parecido que vamos dar ao nosso querido sistema, o que trata esta dica é sobre como tornar seu Debian (ou derivado) o mais pronto possível no que tange a compilar ou empacotar pacotes.

pronto para compilar|empacotar?

Diferentemente do Slackware que é um sistema pronto para compilação (embora alguns digam que isso pode abrir brechas de segurança), o Debian praticamente vem pelado no que se refere a pacotes -dev, e isso inclui alguns pacotes necessários para a obtenção de fontes (repositórios de pacotes, como o git, bzr, svn e mercurial), mas isso pode mudar se você seguir os pequenos passos a seguir:

# apt-get update
# apt-get install linux-headers-`uname -r` build-essential dkms packaging-dev

O dkms inclui de buxa na estória, pois não sei se o mesmo seria incluido na lista de pacotes a serem instalados, mas ele é importante para a criação automática de módulos de seus drivers num novo kernel, abaixo vejam uma lista demonstrando o que é instalado após uma instalação mínima do Debian:

Lendo listas de pacotes...
Construindo árvore de dependências...
Lendo informação de estado...
Os pacotes extra a seguir serão instalados:
  adequate apt-file autoconf automake autopoint autotools-dev bzr bzr-builddeb
  cdbs cmake cmake-data cowbuilder cowdancer curl dctrl-tools debhelper
  debian-keyring debian-policy debootstrap debsums developers-reference
  devscripts dh-autoreconf diffstat distro-info-data dpkg-dev dput
  emacsen-common equivs fakeroot file g++ g++-4.7 gcc gcc-4.7 gettext git
  git-buildpackage git-man hardening-includes html2text intltool-debian
  javascript-common libalgorithm-diff-perl libalgorithm-diff-xs-perl
  libalgorithm-merge-perl libapr1 libaprutil1 libapt-pkg-perl
  libarchive-zip-perl libarchive12 libasprintf-dev libasprintf0c2
  libauthen-sasl-perl libcapture-tiny-perl libclass-accessor-perl
  libclass-inspector-perl libclone-perl libcommon-sense-perl
  libconfig-file-perl libconvert-binhex-perl libcrypt-ssleay-perl libcurl3
  libdigest-hmac-perl libdistro-info-perl libdpkg-perl libemail-valid-perl
  libencode-locale-perl liberror-perl libexporter-lite-perl libfcgi-perl
  libfile-basedir-perl libfile-fcntllock-perl libfile-fnmatch-perl
  libfile-libmagic-perl libfile-listing-perl libfont-afm-perl libgettextpo-dev
  libgettextpo0 libgpgme11 libhtml-form-perl libhtml-format-perl
  libhtml-parser-perl libhtml-tagset-perl libhtml-template-perl
  libhtml-tree-perl libhttp-cookies-perl libhttp-daemon-perl libhttp-date-perl
  libhttp-message-perl libhttp-negotiate-perl libio-pty-perl
  libio-socket-ip-perl libio-socket-ssl-perl libio-string-perl
  libio-stringy-perl libipc-run-perl libitm1 libjs-jquery libjson-perl
  libjson-xs-perl liblist-moreutils-perl libltdl-dev liblwp-mediatypes-perl
  liblwp-protocol-https-perl libmagic1 libmail-sendmail-perl libmailtools-perl
  libmime-tools-perl libnet-dns-perl libnet-domain-tld-perl libnet-http-perl
  libnet-ip-perl libnet-smtp-ssl-perl libnet-ssleay-perl libnettle4
  libossp-uuid-perl libossp-uuid16 libparse-debcontrol-perl
  libparse-debianchangelog-perl libperlio-gzip-perl libregexp-assemble-perl
  libserf-1-1 libsoap-lite-perl libsocket-perl libstdc++6-4.7-dev
  libsub-name-perl libsvn-perl libsvn1 libsys-hostname-long-perl
  libtask-weaken-perl libtext-levenshtein-perl libtie-ixhash-perl
  libtimedate-perl libtool libunistring0 liburi-perl libwww-perl
  libwww-robotrules-perl libxml-namespacesupport-perl libxml-parser-perl
  libxml-sax-base-perl libxml-sax-expat-perl libxml-sax-perl
  libxml-simple-perl lintian make patchutils pbuilder pbzip2 piuparts
  piuparts-common po-debconf pristine-tar python-bzrlib python-configobj
  python-crypto python-dateutil python-distro-info python-gpgme
  python-httplib2 python-keyring python-launchpadlib python-lazr.restfulclient
  python-lazr.uri python-oauth python-paramiko python-pkg-resources
  python-simplejson python-wadllib python-zope.interface python3 python3-apt
  python3-chardet python3-debian python3-magic python3-minimal python3-six
  python3.2 python3.2-minimal quilt rsync strace subversion sudo
  svn-buildpackage t1utils unp unzip wdiff wwwconfig-common
Pacotes sugeridos:
  autoconf2.13 autoconf-archive gnu-standards autoconf-doc bzr-doc bzr-gtk
  bzr-svn python-bzrlib.tests bzrtools python-lzma codeblocks eclipse debtags
  dh-make doc-base bsd-mailx mailx cvs-buildpackage devscripts-el gnuplot
  libfile-desktopentry-perl libterm-size-perl libyaml-syck-perl mutt
  mini-dinstall g++-multilib g++-4.7-multilib gcc-4.7-doc libstdc++6-4.7-dbg
  gcc-multilib automake1.9 flex bison gdb gcc-doc gcc-4.7-multilib
  libmudflap0-4.7-dev gcc-4.7-locales libgcc1-dbg libgomp1-dbg libitm1-dbg
  libquadmath0-dbg libmudflap0-dbg libcloog-ppl0 libppl-c2 libppl7
  binutils-gold gettext-doc git-daemon-run git-daemon-sysvinit git-doc git-el
  git-email git-gui gitk gitweb git-arch git-bzr git-cvs git-mediawiki git-svn
  python-notify apache2 httpd libgssapi-perl gpgsm libdata-dump-perl
  libipc-sharedcache-perl libtool-doc libio-socket-inet6-perl uuid
  libapache2-mod-perl2 libmime-lite-perl libnet-jabber-perl libstdc++6-4.7-doc
  automaken gfortran fortran95-compiler gcj libauthen-ntlm-perl
  binutils-multiarch libtext-template-perl libyaml-perl make-doc
  gnome-pkg-tools mercurial-buildpackage pbuilder-uml gdebi-core schroot
  libmail-box-perl python-kerberos python-pycurl python-bzrlib-dbg xdg-utils
  python-crypto-dbg python-crypto-doc gir1.2-gnomekeyring-1.0 python-fs
  python-gdata python-gi python-kde4 python-keyczar python-testresources
  python-distribute python-distribute-doc python3-doc python3-tk
  python3-apt-dbg python-apt-doc python3.2-doc binfmt-support procmail
  graphviz default-mta mail-transport-agent openssh-server subversion-tools
  unrar unrar-free xdms p7zip p7zip-full cabextract orange mysql-client
  postgresql-client
Pacotes recomendados:
  python-secretstorage
Os NOVOS pacotes a seguir serão instalados:
  adequate apt-file autoconf automake autopoint autotools-dev build-essential
  bzr bzr-builddeb cdbs cmake cmake-data cowbuilder cowdancer curl dctrl-tools
  debhelper debian-keyring debian-policy debootstrap debsums
  developers-reference devscripts dh-autoreconf diffstat distro-info-data
  dpkg-dev dput emacsen-common equivs fakeroot g++ g++-4.7 gcc gcc-4.7 gettext
  git git-buildpackage git-man hardening-includes html2text intltool-debian
  javascript-common libalgorithm-diff-perl libalgorithm-diff-xs-perl
  libalgorithm-merge-perl libapr1 libaprutil1 libapt-pkg-perl
  libarchive-zip-perl libarchive12 libasprintf-dev libauthen-sasl-perl
  libcapture-tiny-perl libclass-accessor-perl libclass-inspector-perl
  libclone-perl libcommon-sense-perl libconfig-file-perl
  libconvert-binhex-perl libcrypt-ssleay-perl libcurl3 libdigest-hmac-perl
  libdistro-info-perl libdpkg-perl libemail-valid-perl libencode-locale-perl
  liberror-perl libexporter-lite-perl libfcgi-perl libfile-basedir-perl
  libfile-fcntllock-perl libfile-fnmatch-perl libfile-libmagic-perl
  libfile-listing-perl libfont-afm-perl libgettextpo-dev libgettextpo0
  libgpgme11 libhtml-form-perl libhtml-format-perl libhtml-parser-perl
  libhtml-tagset-perl libhtml-template-perl libhtml-tree-perl
  libhttp-cookies-perl libhttp-daemon-perl libhttp-date-perl
  libhttp-message-perl libhttp-negotiate-perl libio-pty-perl
  libio-socket-ip-perl libio-socket-ssl-perl libio-string-perl
  libio-stringy-perl libipc-run-perl libitm1 libjs-jquery libjson-perl
  libjson-xs-perl liblist-moreutils-perl libltdl-dev liblwp-mediatypes-perl
  liblwp-protocol-https-perl libmail-sendmail-perl libmailtools-perl
  libmime-tools-perl libnet-dns-perl libnet-domain-tld-perl libnet-http-perl
  libnet-ip-perl libnet-smtp-ssl-perl libnet-ssleay-perl libnettle4
  libossp-uuid-perl libossp-uuid16 libparse-debcontrol-perl
  libparse-debianchangelog-perl libperlio-gzip-perl libregexp-assemble-perl
  libserf-1-1 libsoap-lite-perl libsocket-perl libstdc++6-4.7-dev
  libsub-name-perl libsvn-perl libsvn1 libsys-hostname-long-perl
  libtask-weaken-perl libtext-levenshtein-perl libtie-ixhash-perl
  libtimedate-perl libtool libunistring0 liburi-perl libwww-perl
  libwww-robotrules-perl libxml-namespacesupport-perl libxml-parser-perl
  libxml-sax-base-perl libxml-sax-expat-perl libxml-sax-perl
  libxml-simple-perl lintian make packaging-dev patchutils pbuilder pbzip2
  piuparts piuparts-common po-debconf pristine-tar python-bzrlib
  python-configobj python-crypto python-dateutil python-distro-info
  python-gpgme python-httplib2 python-keyring python-launchpadlib
  python-lazr.restfulclient python-lazr.uri python-oauth python-paramiko
  python-pkg-resources python-simplejson python-wadllib python-zope.interface
  python3 python3-apt python3-chardet python3-debian python3-magic
  python3-minimal python3-six python3.2 python3.2-minimal quilt rsync strace
  subversion sudo svn-buildpackage t1utils unp unzip wdiff wwwconfig-common
Os pacotes a seguir serão atualizados:
  file libasprintf0c2 libmagic1
3 pacotes atualizados, 190 pacotes novos instalados, 0 a serem removidos e 33 não atualizados.
É preciso baixar 151 kB/119 MB de arquivos.
Depois desta operação, 243 MB adicionais de espaço em disco serão usados.
Você quer continuar [S/n]? 

onde menos é mais!

Mas se quer algo mais básico, pode tentar:

# apt-get update
# apt-get install linux-headers-`uname -r`
# apt-get install autoconf automake automoc bin86 binutils build-essential bison bzr checkinstall cmake cpp dkms fakeroot flex g++ gcc gettext git intltool kernel-package libasound2-dev libcurl4-openssl-dev libevent-dev libgl1-mesa-dri libglib2.0-dev libgtk2.0-dev libncurses5 libncurses5-dev libnotify-dev libtool libxml2-dev make mercurial mesa-utils module-assistant pkg-config qt4-dev-tools qt4-qmake subversion qt4-doc-

empacotando!

Porém, advirto que com a primeira lista você não precisará entrar na corrida das dependências de compilação, bastará rodar um mk-build-deps dentro da pasta do pacote que deseja empacotar, que automagicamente um meta-pacote de dependências será criado, daí bastará executar:

$ sudo dpkg -i pacote-buil-deps.deb
$ sudo apt-get -f install

Após instalar as dependências, você cria um pacote Debian com um dos comandos abaixo:

$ dpkg-buildpackage -us -uc -b
$ debuild -us -uc -b

E o instala com (o pacote estará num nível acima do diretório corrente):

$ sudo dpkg -i ../pacote.deb
$ sudo apt-get -f install

isso sim é bom!

E além deste básico ainda há outras coisas, como o pbuilder (que permite usarmos pacotes de diferentes distribuições numa outra, como os do Debian no Ubuntu e vice-versa) e o dget (que faz parte do pacote devscripts) que baixa os sources de pacotes dos repos Debian e os empacota, como da forma manual:

$ dget http://ftp.de.debian.org/debian/pool/main/c/compton/compton_0.1~beta2-1.dsc
$ dpkg-source -x compton_0.1~beta2-1.dsc 
$ cd compton-0.1~beta2/
$ mk-build-deps 
$ sudo dpkg -i compton-build-deps_0.1~beta2-1_all.deb 
$ sudo apt-get -f install
$ dpkg-buildpackage -us -uc -b
$ sudo dpkg -i ../pacote.deb
$ sudo apt-get -f install

Ou algo mais prático (que baixa suprimindo as mensagens do downloader, extrai e empacota), como em:

$ dget -q -u -x --build http://ftp.de.debian.org/debian/pool/main/c/compton/compton_0.1~beta2-1.dsc
$ sudo dpkg -i compton_0.1~beta2-1_i386.deb

Vejam o log:

266/2023MB	0.77 0.64 0.62 1/277 14116
[8445:8441 0:683] 04:44:09 Sex Ago 01 [edps@debian: +1] ~/build 
(1:683)$ dget -q -u -x --build http://ftp.de.debian.org/debian/pool/main/c/compton/compton_0.1~beta2-1.dsc
dpkg-buildpackage: source package compton
dpkg-buildpackage: source version 0.1~beta2-1
dpkg-buildpackage: source changed by Scott Leggett <scott@sl.id.au>
dpkg-buildpackage: host architecture i386
 dpkg-source --before-build compton-0.1~beta2
 fakeroot debian/rules clean
dh clean
   dh_testdir
   dh_auto_clean
make[1]: Entrando no diretório `/mnt/backup/build/compton-0.1~beta2'
make[1]: Saindo do diretório `/mnt/backup/build/compton-0.1~beta2'
   dh_clean
 debian/rules build
dh build
   dh_testdir
   dh_auto_configure
   dh_auto_build
make[1]: Entrando no diretório `/mnt/backup/build/compton-0.1~beta2'
cc -std=c99 -DCONFIG_XINERAMA -DCONFIG_LIBCONFIG  -DCONFIG_REGEX_PCRE -DCONFIG_REGEX_PCRE_JIT -DCONFIG_VSYNC_DRM -DCONFIG_VSYNC_OPENGL -DCONFIG_VSYNC_OPENGL_GLSL -DCONFIG_VSYNC_OPENGL_FBO -DCONFIG_VSYNC_OPENGL_VBO -DCONFIG_DBUS -DCONFIG_C2 -DCOMPTON_VERSION=""0.1~beta2"" -D_FORTIFY_SOURCE=2 -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wall   -I/usr/include/libdrm   -I/usr/include/dbus-1.0 -I/usr/lib/i386-linux-gnu/dbus-1.0/include   -c src/compton.c
In file included from src/compton.c:11:0:
src/compton.h: In function ‘set_tgt_clip’:
src/compton.h:663:3: warning: enumeration value ‘NUM_BKEND’ not handled in switch [-Wswitch]
src/compton.c: In function ‘win_paint_win’:
src/compton.c:1641:5: warning: enumeration value ‘NUM_BKEND’ not handled in switch [-Wswitch]
src/compton.c: In function ‘init_filters’:
src/compton.c:6140:5: warning: enumeration value ‘NUM_BKEND’ not handled in switch [-Wswitch]
src/compton.c: At top level:
src/compton.c:2536:1: warning: ‘win_upd_run’ defined but not used [-Wunused-function]
cc -std=c99 -DCONFIG_XINERAMA -DCONFIG_LIBCONFIG  -DCONFIG_REGEX_PCRE -DCONFIG_REGEX_PCRE_JIT -DCONFIG_VSYNC_DRM -DCONFIG_VSYNC_OPENGL -DCONFIG_VSYNC_OPENGL_GLSL -DCONFIG_VSYNC_OPENGL_FBO -DCONFIG_VSYNC_OPENGL_VBO -DCONFIG_DBUS -DCONFIG_C2 -DCOMPTON_VERSION=""0.1~beta2"" -D_FORTIFY_SOURCE=2 -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wall   -I/usr/include/libdrm   -I/usr/include/dbus-1.0 -I/usr/lib/i386-linux-gnu/dbus-1.0/include   -c src/opengl.c
src/opengl.c:1425:1: warning: ‘glx_render_color’ defined but not used [-Wunused-function]
src/opengl.c:1463:1: warning: ‘glx_render_dots’ defined but not used [-Wunused-function]
cc -std=c99 -DCONFIG_XINERAMA -DCONFIG_LIBCONFIG  -DCONFIG_REGEX_PCRE -DCONFIG_REGEX_PCRE_JIT -DCONFIG_VSYNC_DRM -DCONFIG_VSYNC_OPENGL -DCONFIG_VSYNC_OPENGL_GLSL -DCONFIG_VSYNC_OPENGL_FBO -DCONFIG_VSYNC_OPENGL_VBO -DCONFIG_DBUS -DCONFIG_C2 -DCOMPTON_VERSION=""0.1~beta2"" -D_FORTIFY_SOURCE=2 -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wall   -I/usr/include/libdrm   -I/usr/include/dbus-1.0 -I/usr/lib/i386-linux-gnu/dbus-1.0/include   -c src/dbus.c
cc -std=c99 -DCONFIG_XINERAMA -DCONFIG_LIBCONFIG  -DCONFIG_REGEX_PCRE -DCONFIG_REGEX_PCRE_JIT -DCONFIG_VSYNC_DRM -DCONFIG_VSYNC_OPENGL -DCONFIG_VSYNC_OPENGL_GLSL -DCONFIG_VSYNC_OPENGL_FBO -DCONFIG_VSYNC_OPENGL_VBO -DCONFIG_DBUS -DCONFIG_C2 -DCOMPTON_VERSION=""0.1~beta2"" -D_FORTIFY_SOURCE=2 -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wall   -I/usr/include/libdrm   -I/usr/include/dbus-1.0 -I/usr/lib/i386-linux-gnu/dbus-1.0/include   -c src/c2.c
cc -std=c99 -DCONFIG_XINERAMA -DCONFIG_LIBCONFIG  -DCONFIG_REGEX_PCRE -DCONFIG_REGEX_PCRE_JIT -DCONFIG_VSYNC_DRM -DCONFIG_VSYNC_OPENGL -DCONFIG_VSYNC_OPENGL_GLSL -DCONFIG_VSYNC_OPENGL_FBO -DCONFIG_VSYNC_OPENGL_VBO -DCONFIG_DBUS -DCONFIG_C2 -DCOMPTON_VERSION=""0.1~beta2"" -D_FORTIFY_SOURCE=2 -Wl,-z,relro -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wall -o compton compton.o opengl.o dbus.o c2.o -lGL -lm -lrt -L/usr/lib/i386-linux-gnu -lpcre -lXcomposite -lXdamage -lXfixes -lXrender -lX11 -lXext -lXrandr -lXinerama -lconfig -ldbus-1  
make[1]: Saindo do diretório `/mnt/backup/build/compton-0.1~beta2'
   dh_auto_test
 fakeroot debian/rules binary
dh binary
   dh_testroot
   dh_prep
   dh_installdirs
   dh_auto_install
make[1]: Entrando no diretório `/mnt/backup/build/compton-0.1~beta2'
a2x --format manpage man/compton.1.asciidoc
a2x --format manpage man/compton-trans.1.asciidoc
asciidoc man/compton.1.asciidoc
asciidoc man/compton-trans.1.asciidoc
make[1]: Saindo do diretório `/mnt/backup/build/compton-0.1~beta2'
   dh_install
   dh_installdocs
   dh_installchangelogs
   dh_installexamples
   dh_installman
   dh_installcatalogs
   dh_installcron
   dh_installdebconf
   dh_installemacsen
   dh_installifupdown
   dh_installinfo
   dh_installinit
   dh_installmenu
   dh_installmime
   dh_installmodules
   dh_installlogcheck
   dh_installlogrotate
   dh_installpam
   dh_installppp
   dh_installudev
   dh_installwm
   dh_installxfonts
   dh_installgsettings
   dh_bugfiles
   dh_ucf
   dh_lintian
   dh_gconf
   dh_icons
   dh_perl
   dh_usrlocal
   dh_link
   dh_compress
   dh_fixperms
   dh_strip
   dh_makeshlibs
   dh_shlibdeps
dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/compton/usr/bin/compton was not linked against librt.so.1 (it uses none of the library's symbols)
   dh_installdeb
   dh_gencontrol
   dh_md5sums
   dh_builddeb
dpkg-deb: construindo pacote 'compton' em '../compton_0.1~beta2-1_i386.deb'.
 dpkg-genchanges -b >../compton_0.1~beta2-1_i386.changes
dpkg-genchanges: binary-only upload - not including any source code
 dpkg-source --after-build compton-0.1~beta2
dpkg-buildpackage: binary only upload (no source included)
205/2023MB	0.72 0.57 0.59 1/277 14602
[8445:8441 0:684] 04:46:23 Sex Ago 01 [edps@debian: +1] ~/build 
(1:684)$ sudo dpkg -i compton_0.1~beta2-1_i386.deb 
dpkg: aviso: a fazer downgrade a compton de 0.1~beta2-1.1 para 0.1~beta2-1
(Lendo banco de dados ... 222746 ficheiros e directórios actualmente instalados.)
Preparando para substituir compton 0.1~beta2-1.1 (usando compton_0.1~beta2-1_i386.deb) ...
Desempacotando substituto compton ...
Configurando compton (0.1~beta2-1) ...
Processando gatilhos para man-db ...
181/2023MB	0.37 0.46 0.55 1/277 15093
[8445:8441 0:685] 04:47:58 Sex Ago 01 [edps@debian: +1] ~/build 
(1:685)$ 

No exemplo acima, um pacote do Debian SID (compton) foi empacotado e instalado no Debian Wheezy.

Provavelmente no futuro farei algo mais completo no que se refere a empacotamento no Debian, mas o que está exposto aqui já é um bom caminho e é o método que uso aqui para poder rodar pacotes do Debian Jessie/Testing em meu Wheezy/Stable, caso do Compton, SoundKonverter, K3B e muitos outros.

bleachbit_1.3-1.1_all.deb
bleachbit-bonus_0.8.2-1_all.deb
bleachbit-build-deps_1.3-1_all.deb
compton_0.1~beta2-1.1_i386.deb
compton-build-deps_0.1~beta2-1_all.deb
deadbeef_0.6.2-git-1_i386.deb
decibel-audio-player-1.09.deb
k3b_2.0.2-7.2_i386.deb
k3b-build-deps_2.0.2-7.1_i386.deb
k3b-data_2.0.2-7.2_all.deb
k3b-dbg_2.0.2-7.2_i386.deb
k3b-extrathemes_2.0.2-7.2_all.deb
k3b-i18n_2.0.2-7.2_all.deb
lame_3.99.5+repack1-3.1_i386.deb
lame-build-deps_3.99.5+repack1-3_i386.deb
lame-doc_3.99.5+repack1-3.1_all.deb
libdvdread4_4.2.1-2.1_i386.deb
libdvdread-build-deps_4.2.1-2_all.deb
libdvdread-dbg_4.2.1-2.1_i386.deb
libdvdread-dev_4.2.1-2.1_i386.deb
libk3b6_2.0.2-7.2_i386.deb
libk3b6-extracodecs_2.0.2-7.2_i386.deb
libk3b-dev_2.0.2-7.2_i386.deb
libmenu-cache3_0.5.1-1.1_i386.deb
libmenu-cache-bin_0.5.1-1.1_i386.deb
libmenu-cache-dbg_0.5.1-1.1_i386.deb
libmenu-cache-dev_0.5.1-1.1_i386.deb
libmenu-cache-doc_0.5.1-1.1_all.deb
libmp3lame0_3.99.5+repack1-3.1_i386.deb
libmp3lame-dev_3.99.5+repack1-3.1_i386.deb
libtag1c2a_1.9.1-2.2_i386.deb
libtag1-dev_1.9.1-2.2_i386.deb
libtag1-doc_1.9.1-2.2_all.deb
libtag1-vanilla_1.9.1-2.2_i386.deb
libtagc0_1.9.1-2.2_i386.deb
libtagc0-dev_1.9.1-2.2_i386.deb
logkeys_0.1.1a-1_all.deb
lxpanel_0.5.12-3.1_i386.deb
lxpanel-build-deps_0.5.12-3_i386.deb
lxpanel-dbg_0.5.12-3.1_i386.deb
menu-cache-build-deps_0.5.1-1_all.deb
minirok_2.1-1.1_all.deb
minirok-build-deps_2.1-1_all.deb
obsession_20130609-1_i386.deb
obsession_20140726-1_i386.deb
pogo_0.8.3-1.1_all.deb
pogo-build-deps_0.8.3-1_all.deb
quiterss_0.16.1+dfsg-1.1_i386.deb
quiterss_20140715-1_i386.deb
quiterss-build-deps_0.16.1+dfsg-1_all.deb
quiterss-dbg_0.16.1+dfsg-1.1_i386.deb
rtorrent_0.9.2-1.1_i386.deb
rtorrent-build-deps_0.9.2-1_all.deb
screengrab_1.0-1_i386.deb
screengrab_1.0-git-1_i386.deb
screengrab-build-deps_1.0-ubuntu1_all.deb
selene_2.4.4+nmu1_i386.deb
selene-build-deps_2.4.4_all.deb
skippy-xd_0.5.1~hg-1_i386.deb
soundkonverter_2.1.1-1.1_i386.deb
soundkonverter-build-deps_2.1.1-1_all.deb
taglib-build-deps_1.9.1-2.1_all.deb
ted-2.23-i386.deb
ted_pt_BR-2.23.all.deb
xfce4-whiskermenu-plugin_1.3.2-1_i386.deb
xfce4-whiskermenu-plugin-build-deps_1.3.2-1_all.deb
yarock_20140717-1_i386.deb

Os meta-pacotes de dependências (pacote-buil-deps), são interessantes também porque ao removê-los, todos os pacotes instalados por ele também serão removidos, o que tornará o sistema mais enxuto, exemplo:

$ dpkg --get-selections | awk '{if ($2=="install") print $1}' > build-deps.pkgs && cat build-deps.pkgs | grep build-deps | xargs -l1 sudo apt-get --purge remove -y
$ sudo apt-get autoremove --purge

Vejam o log pro caso do compton:

140/2023MB	0.70 0.70 0.68 1/291 15544
[15474:15469 0:818] 05:07:55 Sex Ago 01 [edps@debian: +1] ~ 
(1:818)$ dpkg --get-selections | awk '{if ($2=="install") print $1}' > build-deps.pkgs && cat build-deps.pkgs | grep build-deps | xargs -l1 sudo apt-get --purge remove -y
Lendo listas de pacotes... Pronto
Construindo árvore de dependências       
Lendo informação de estado... Pronto
Os pacotes a seguir serão REMOVIDOS:
  compton-build-deps* libconfig-dev* libconfig-doc* libdbus-1-dev* libdrm-dev*
  libkms1* xsltproc*
0 pacotes atualizados, 0 pacotes novos instalados, 7 a serem removidos e 1 não atualizados.
Depois desta operação, 3.095 kB de espaço em disco serão liberados.
(Lendo banco de dados ... 222745 ficheiros e directórios actualmente instalados.)
Removendo compton-build-deps ...
Removendo libconfig-dev:i386 ...
Removendo libconfig-doc ...
Removendo libdbus-1-dev ...
Removendo libdrm-dev ...
Removendo libkms1:i386 ...
Expurgando arquivos de configuração de libkms1:i386 ...
Removendo xsltproc ...
Processando gatilhos para man-db ...
Processando gatilhos para install-info ...
182/2023MB	0.80 0.71 0.69 1/291 18902
[15474:15469 0:818] 05:08:28 Sex Ago 01 [edps@debian: +1] ~ 
(1:818)$ sudo apt-get autoremove --purge
Lendo listas de pacotes... Pronto
Construindo árvore de dependências       
Lendo informação de estado... Pronto
0 pacotes atualizados, 0 pacotes novos instalados, 0 a serem removidos e 1 não atualizados.
182/2023MB	0.57 0.67 0.67 1/291 18916
[15474:15469 0:815] 05:08:45 Sex Ago 01 [edps@debian: +1] ~ 
(1:815)$ 

Ou algo sério pra valer:

remove-build-deps-DEBIAN by edps

E em imagens a economia de espaço em disco gerada pela remoção manual desses pacotes:

Este slideshow necessita de JavaScript.

Para que a remoção dos meta-pacotes e das dependências para compilação seja automática, será necessária a inserção da linha abaixo em seu arquivo /etc/apt/apt.conf:

APT::Get::AutomaticRemove "1";

BUILD_PACKAGES-004

acho que está bom por hoje!

How-To :: tornando seu Debian muito mais poderoso!

6 comentários sobre “How-To :: tornando seu Debian muito mais poderoso!

    1. edps disse:

      Eu queria saber um pouco mais sobre empacotar no Debian, seguindo o método padrão dos desenvolvedores, mas como um típico usuário, acho que está bom por enquanto.

      Um abraço.

      Curtir

Deixe um comentário