Otimizando o seu Slackware pra valer com o SlackBuild

Você tem um Athlon-XP ou um Pentium-4 e os pacotes são otimizados para 486? Aqui vai um tutorial para usufruir de uma ferramenta que o Patrick disponibilizou para tornar seu Slackware tão otimizado quanto qualquer Gentoo.

[ Hits: 37.021 ]

Por: José Luiz Litvay em 11/10/2005


Introdução



O SlackBuild é um script que descompacta, recompila e empacota um programa fonte dos CDs SOURCE do Slackware.

Como é um script, você pode alterar livremente as configurações afim de obter uma melhor otimização do programa, adicionando ou alterando flags para melhorar o desempenho.

Onde obter: Nos CDs 3 e 4 do Slackware, junto com os sources dos programas está um arquivo de texto chamado: nomedoprograma.SlackBuild

Cada SlackBuild é feito para aquele programa, e só para aquele.

Pré-requisitos


Ter conhecimento básicos de Linux, já ter ouvido falar ou conseguido instalar algum programa a partir do fonte.

Como sou curioso como a maioria e não um programador, na dúvida tenha instalado todos os programas da pasta "d" do seu Slackware, assim vai evitar ter que sair instalando coisas.

Por quê?
O SlackBuild é um script, uma máquina não muito pensante, ou seja, se der algo errado durante o processo ele vai continuar a compilar e empacotar o programa e se o erro ocorrer, vai gerar um pacote .tgz problemático, que pode ferrar com o seu Slackware se você instalar sem verificar antes.

O que verificar: o tamanho do pacote.
Geralmente quando alguma dependência de compilação não foi satisfeita, o SlackBuild gera um pacote de tamanho significativamente menor. Então tenha em mãos o CD 1 e 2 do Slackware para comparar os tamanhos dos pacotes.

    Próxima página

Páginas do artigo
   1. Introdução
   2. Alterando o SlackBuild
   3. Executando e conclusões
Outros artigos deste autor

Quebrando os mitos do software de código aberto

Benchmark de hardware e CFLAGS usando o ubench

Otimizando o KDE com o Slackbuild

Leitura recomendada

Configurando DHCP com DNS (Bind9) na rede local - Debian Linux

Instalação Minimalista do Void Linux

Instalação Apache + PHP + phpMyAdmin + MySQL no Arch Linux

Instalando Slackware através de outro HD corrigindo os pacotes

Funcionalidades do Eclipse no Vim - Usando o Eclim

  
Comentários
[1] Comentário enviado por cvs em 11/10/2005 - 09:55h

muito bom, ja ta nos favoritos, vou aplica-lo em casa e aqui no trampo... parabens =)

[2] Comentário enviado por cvs em 11/10/2005 - 10:13h

Agora que terminei de ler... Tenho que ir fazendo isso, programa por pograma? Trabalhoso hein.. hehehe

E se eu quiser instalar tudo assim, desde o inicio, não tem jeito, só dessa maneira, compilando e atualizando?

[3] Comentário enviado por FDL em 11/10/2005 - 10:26h

Legal o artigo mas ae deve ser muito xato fazer isso com todos programas. Deve se gastar uma semana. Ae o gentoo ainda tem vantagem.

[4] Comentário enviado por rafael_r em 11/10/2005 - 10:45h

Você pode jogar as informações da compilação num arquivo de texto:
"sh -x gimp.SlackBuild &> teste.txt". Depois é só verificar no arquivo "teste.txt" e procurar os erros, todas as informações da compilação vão estar lá.

[5] Comentário enviado por fabio em 11/10/2005 - 10:50h

Não sei se há uma forma automatizada pra isso, mas não seria complicado criar um shell script que processasse todos os arquivos de SlackBuild dos CDs.

Deixo aqui minha sugestão para os slack-maníacos :)
Criem o script, enviem pro VOL e publiquem o link em forma de comentário aqui nesse artigo. Um busca no Google também pode resolver o problema, duvido que já não tenham feito isso antes.

[]'s,
Fábio

[6] Comentário enviado por andrack em 11/10/2005 - 11:58h

Virei um Gentoo-maníaco...

Mas dei uma pesquisada no Googlão, e achei esse projeto aqui:
http://freaknet.org/alpt/Emerde/

Nunca testei... mas pode render um artigo!

Vlw!

[7] Comentário enviado por hdoria em 11/10/2005 - 12:36h

Eu estou tentando usar o emerde aqui. Acho que ele cai bem como ferramenta para optimizar o slack.

O projeto é bem legal, porém ainda tem alguns bugs. Depois que eu conseguir deixar ele redondo eu faço um artigo pra explicar pra galera ae.

[]'s

[8] Comentário enviado por redhate em 10/11/2005 - 03:39h

so para acresentar....

Options That Control Optimization

These options control various sorts of optimizations.

Without any optimization option, the compiler's goal is to reduce the
cost of compilation and to make debugging produce the expected results.
Statements are independent: if you stop the program with a breakpoint
between statements, you can then assign a new value to any variable or
change the program counter to any other statement in the function and
get exactly the results you would expect from the source code.

Turning on optimization flags makes the compiler attempt to improve the
performance and/or code size at the expense of compilation time and
possibly the ability to debug the program.

Not all optimizations are controlled directly by a flag. Only opti-
mizations that have a flag are listed.

-O
-O1 Optimize. Optimizing compilation takes somewhat more time, and a
lot more memory for a large function.

With -O, the compiler tries to reduce code size and execution time,
without performing any optimizations that take a great deal of com-
pilation time.

-O turns on the following optimization flags: -fdefer-pop
-fmerge-constants -fthread-jumps -floop-optimize -fcrossjumping
-fif-conversion -fif-conversion2 -fdelayed-branch
-fguess-branch-probability -fcprop-registers

-O also turns on -fomit-frame-pointer on machines where doing so
does not interfere with debugging.

-O2 Optimize even more. GCC performs nearly all supported optimiza-
tions that do not involve a space-speed tradeoff. The compiler
does not perform loop unrolling or function inlining when you spec-
ify -O2. As compared to -O, this option increases both compilation
time and the performance of the generated code.

-O2 turns on all optimization flags specified by -O. It also turns
on the following optimization flags: -fforce-mem -foptimize-sib-
ling-calls -fstrength-reduce -fcse-follow-jumps -fcse-skip-blocks
-frerun-cse-after-loop -frerun-loop-opt -fgcse -fgcse-lm
-fgcse-sm -fdelete-null-pointer-checks -fexpensive-optimizations
-fregmove -fschedule-insns -fschedule-insns2 -fsched-interblock
-fsched-spec -fcaller-saves -fpeephole2 -freorder-blocks -fre-
order-functions -fstrict-aliasing -falign-functions -falign-jumps
-falign-loops -falign-labels

Please note the warning under -fgcse about invoking -O2 on programs
that use computed gotos.

-O3 Optimize yet more. -O3 turns on all optimizations specified by -O2
and also turns on the -finline-functions and -frename-registers
options.

-O0 Do not optimize. This is the default.

-Os Optimize for size. -Os enables all -O2 optimizations that do not
typically increase code size. It also performs further optimiza-
tions designed to reduce code size.

-Os disables the following optimization flags: -falign-functions
-falign-jumps -falign-loops -falign-labels -freorder-blocks
-fprefetch-loop-arrays

If you use multiple -O options, with or without level numbers, the
last such option is the one that is effective

Intel 386 and AMD x86-64 Options

These -m options are defined for the i386 and x86-64 family of comput-
ers:

-mcpu=cpu-type
Tune to cpu-type everything applicable about the generated code,
except for the ABI and the set of available instructions. The
choices for cpu-type are i386, i486, i586, i686, pentium, pentium-
mmx, pentiumpro, pentium2, pentium3, pentium4, prescott, nocona,
k6, k6-2, k6-3, athlon, athlon-tbird, athlon-4, athlon-xp, athlon-
mp, winchip-c6, winchip2 and c3.

While picking a specific cpu-type will schedule things appropri-
ately for that particular chip, the compiler will not generate any
code that does not run on the i386 without the -march=cpu-type
option being used. i586 is equivalent to pentium and i686 is
equivalent to pentiumpro. k6 and athlon are the AMD chips as
opposed to the Intel ones.

-march=cpu-type
Generate instructions for the machine type cpu-type. The choices
for cpu-type are the same as for -mcpu. Moreover, specifying
-march=cpu-type implies -mcpu=cpu-type.

-m386
-m486
-mpentium
-mpentiumpro
These options are synonyms for -mcpu=i386, -mcpu=i486, -mcpu=pen-
tium, and -mcpu=pentiumpro respectively. These synonyms are depre-
cated.

slkcflags se orientam pelo gcc entao.... sejam felizes..
qualquer coisa msn: [email protected]

abracos [']sss

[9] Comentário enviado por bones_pf em 19/09/2006 - 23:11h

Aeee galera, fiz um script em perl que altera e processa todos os SlackBuild's, deêm uma olhada ae:
http://www.vivaolinux.com.br/scripts/verScript.php?codigo=2265


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts