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!

Anúncios
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

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s