Por que é melhor compilar do que instalar a partir dos repositórios

Neste pequeno guia, vou explicar (e ensinar a você) porque é melhor que você compile um programa (digamos Firefox, Vlc, etc) a partir de seu código-fonte, do que baixá-lo (do The Software Center, Yumex, Pacman, etc. ) e instalar.

Primeiro vamos com a teoria:

O que é "compilar"?

Compilar é transformar o código-fonte (código escrito em uma determinada linguagem de programação, digamos C, C ++, etc.) em um programa executável para sua operação por meio do uso do processador para converter a linguagem usada para gerar o código em binário e montador. Também é freqüentemente chamado de embalagem.

Por que é melhor "compilar"?

Primeiro você precisa saber o seguinte para entender o porquê. Dito de forma «bruta» (simples, pouco profissional, etc), cada raça (Pentium, Core, Atom, etc) e suas espécies (Intel, AMD, ARM, etc.) de processador possuem instruções (software escrito em assembler que processa o código) de seu modelo (Core i7, Core i5, Atom x2, Phantom x8, Arm, etc.) e também tem instruções gerais que todos os seus tipos possuem.

Quando você baixa dos repositórios através do Centro de Software / apt-get / Yumex / Yum / Pacman / etc, um programa que instala automaticamente diz que este pré-compilado para operação em todos os processadores possíveis (Intel e Amd). Por se tratar de um programa pré-compilado, aquelas instruções típicas daquele modelo de processador específico se perdem (pense que se um programa como Firefox ou Chrome, que tem mais de 7 ou 8 milhões de linhas de código, eles teriam que colocar todas as instruções específicas para cada processador no mercado, a quantidade de código seria tão grande que aquele programa não seria mais eficiente) restando nada mais do que os gerais de sua marca criadora (Intel, Amd, Arm).

Quando você baixa, descompacta e compila o código-fonte de um programa, ele é compilado com as instruções específicas de TU processador, (o que não significa que não funcionará em uma máquina diferente, apenas que será otimizado especificamente e exclusivamente para o seu processador), libertando e libertando assim toda a potência que o seu processador é capaz de dar graças às suas instruções específicas.

Em detalhes mais técnicos, essas instruções específicas estão intimamente ligadas ao que é conhecido como o chipset de sua placa-mãe, o que é a grande dor de cabeça para quem tem Intel quando queremos atualizar o processador e a placa-mãe.

Você ficaria surpreso com o poder que seu AMD Atom x2 ou voce Intel Core por dentro, 2 Core Duo, i3, etc. do seu PC antigo. Agora você entende por que se fala tanto no mundo Linux sobre a compilação do famoso Kernel (coração de todo sistema operacional)? Imagine se você compilar um sistema completo (ambiente gráfico (Gnome, Kde, etc), Kernel, programas comumente usados ​​(Firefox, Vlc, Chrome, Wine, etc.) especialmente para o seu pc) toda a velocidade e nível de otimização que você teria.

Este princípio de compilação para obter um código otimizado especialmente para sua máquina é aquele usado por distros como Gentoo e derivados (sobre os quais não vou falar agora, uso Fedora minimal com compilação de Gnome 3, kernel e outros programas) onde o sistema, suas atualizações e seus programas são sempre compilados.

Contras da compilação:

Já expliquei todas as vantagens, mas como tudo no universo tem uma contra.

No caso de compilação, eles são;

  • O tempo necessário para isso (Firefox com um i7 4790K (sem overclock porque sou muito ruim com voltagens) leva 3 minutos, o Gnome Shell (a barra nada mais) com Gnome-Control-Center me levou cerca de 2 minutos, ambos sendo compilados em ao mesmo tempo no Fedora. Mas em uma máquina com um processador menos potente, este tempo pode ser desproporcionalmente longo).
  • O processador usa 100% de sua potência com todos os seus núcleos no máximo, então o consumo e o calor disparam (leve isso em consideração se você tiver overclock ou se for principalmente um notebook), por isso é conveniente que você prepare um mate ou um café para a ocasião.
  • Talvez esteja faltando uma biblioteca (ferramenta) que usa um programa para que não haja erros na compilação. Em geral, todas as distros possuem pacotes ou conjuntos deles para evitar isso (eles vêm embalados com várias bibliotecas e outras coisas que permitem que o kernel se comunique como deveria com o processador durante o processo).

Como posso compilar?

Para Debian (Ubuntu, Mint, Elementary, etc, eles são todos derivados disso, então siga este

Aqui estou falando sobre compilar um programa para uso normal, não um kernel.

aptitude install build-essential dh-make devscripts fakeroot debhelper debian-policy ccache dh-autoreconf autotools-dev build-dep ardor

Eu coloquei debian-policy, mas se sua distribuição não for Debian e der um erro de que tal pacote não existe, apenas ignore. Devo esclarecer que não uso esses sistemas há muito tempo, então se um pacote não estiver mais nos repositórios, não se preocupe.

Para Fedoras:

sudo yum -y instalar cabeçalhos do kernel
desenvolvimento do kernel
sudo yum groupinstall "Ferramentas de Desenvolvimento"
sudo yum groupinstall "Bibliotecas de Desenvolvimento"

Aqui tenho que pedir desculpas a quem usa Arch (não conheço bem a distro) e OpenSuse, pois não conheço essas distros ou os respectivos pacotes para fazer uma compilação correta (e não corroborei o que está na rede, de modo que para esses dois não sei se funcionam).

Agora que você tem todos os requisitos necessários, você só precisa baixar o código-fonte do programa que deseja compilar, dependendo da extensão que você descompactou usando o terminal (não se preocupe, deixarei os comandos) e quando você vai para a pasta (sempre com o terminal) você faz o mesmo a seguir:

Se você tem a possibilidade de se configurar para escolher os componentes e outros:

./configure

Então você digita:

make

E finalmente para instalar o programa no seu linux:

make install

Tudo isso sempre com root (su no Fedora, sudo su no Ubuntu e seus derivados (Mint, Elementary Os, etc)

Comandos para descompactar usando o terminal (o arquivo é descompactado em uma pasta onde o arquivo está localizado):

Arquivos .Tar (tar) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Pacote | tar cvf arquivo.tar / arquivo / * Descompacte | tar xvf file.tar Exibir conteúdo | tar tvf file.tar
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .tar.gz - .tar.z - .tgz (tar com gzip ) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Pacote e zíper | tar czvf archive.tar.gz / archive / Descompacte e descompacte | tar xzvf file.tar.gz Exibir conteúdo (não extraído) | tar tzvf arquivo.tar.gz
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .gz (gzip) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Compressa | arquivo gzip -q (o arquivo é compactado e renomeado como "arquivo.gz") Descompacte | gzip -d file.gz (O arquivo descompacta-o e deixa-o como "arquivo" Observação: o gzip compacta apenas arquivos, não diretórios
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .bz2 (bzip2) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Compressa | arquivo bzip2 | arquivo bunzip2 (o arquivo é compactado e renomeado como "arquivo.bz2") Descompacte | bzip2 -d file.bz2 | bunzip2 file.bz2 (O arquivo o descompacta e o deixa como "arquivo") Observação: bzip2 compacta apenas arquivos, não diretórios
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .tar.bz2 (tar com bzip2) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Compressa | arquivos tar -c | bzip2> file.tar.bz2 Unzip | bzip2 -dc file.tar.bz2 | tar -xv | tar jvxf file.tar.bz2 (versões recentes do tar) Ver conteúdo | bzip2 -dc file.tar.bz2 | tar -tv
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .zip (zip) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Compressa | zip file.zip / mayo / archives Descompacte | descompacte arquivo.zip Exibir conteúdo | descompacte -v arquivo.zip
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .rar (rar) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Compressa | rar -a file.rar / may / archives Descompacte | rar -x file.rar Exibir conteúdo | rar -v file.rar | rar -l file.rar

E isso é tudo. Saudações de Buenos Aires, Argentina. Boas Festas e Ano Novo! :).


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.

  1.   Gonzalo dito

    O problema da compilação é que nem sempre funciona na primeira vez e é mais tedioso

    1.    Cristian dito

      O problema com a compilação é que, a menos que você tenha um PC antigo e limitado, as melhorias não serão perceptíveis ... bem, talvez em um computador com uso intensivo seja uma opção, mas para a maioria dos usuários é apenas um processo tedioso.

      1.    Daniel dito

        Acho que esse é o cerne da questão. A melhoria de desempenho que será perceptível ao compilar os pacotes é tão importante que levaria o tempo e o incômodo dessa tarefa em segundo plano?

      2.    joaco dito

        O mesmo se você tiver uma compilação i7 é conveniente, porque é mais rápido e calculo que funcione melhor. Agora, com um pc com átomo da Intel, não é conveniente, a menos que você realmente precise daquele poder extra que a compilação oferece, mas pode levar horas para compilar um programa com um processador menos poderoso.

    2.    Avrah dito

      Concordo plenamente, já me aconteceu de compilar e depois de um tempo descobrir que falta uma biblioteca, rastreá-la e ter que enfrentar o processo de novo ... É raro que tudo funcione na primeira tentativa ... xD

  2.   FerGé dito

    Muito interessante!

    Se você compilar um programa, como as atualizações funcionam depois? São automáticos ou temos que estar atentos se uma nova versão foi lançada?

    1.    Antonio Campos dito

      Você tem que atualizá-lo manualmente, ou seja, compilar a versão mais recente que é outra digamos "desvantagem" para a qual também faz algo tedioso

    2.    Jlbaena dito

      Como não existem atualizações, de fato, as distribuições Linux e suas diferentes formas de empacotar o software e os gerenciadores de pacotes correspondentes eliminam a inconveniência de recompilar a cada nova atualização (e resolver dependências).

      Saudações.

    3.    joaco dito

      Se você compilá-lo baixando o código-fonte de qualquer página, terá que fazer isso manualmente e aprender a instalá-lo, porque nem todos são instalados da mesma forma.
      Agora, se você tem o Gentoo ou alguma distro com portas, então você o faz a partir dos repositórios quase automaticamente.

    4.    Fermin dito

      No Gentoo, seu gerenciador de pacotes, Portage, cuida das atualizações e dependências; Não sei em outras distros. Claro, cada atualização envolve recompilar, obviamente.

  3.   tanrax dito

    Houve um tempo em que compilava tudo o que podia. Depois cansei, principalmente pelo tempo que dediquei ao trabalho da máquina (45 min para o kernel, 10 min para o cromo ...) e pelo tempo que gastei consertando problemas que surgiam na hora. Além disso, pessoalmente não encontrei um aumento de desempenho, tive a sensação de que estava tudo igual. Por esses motivos agora utilizo tudo pré-compilado, tudo é instantâneo e sem conflitos. Embora eu tenha aprendido muito naquela época, fiquei com o desejo de usar o gentoo 🙂

  4.   Emmanuel dito

    Mesmo, e é algo que tenho visto pouco, ele pode ser compilado de sistemas como o apt. Adicione um sinalizador de construção ao apt-source e voila. Claro que, antes disso, instalar os pacotes necessários para realizar as compilações, caso contrário não funciona ... embora seja uma forma de compilação mais direta e que envolva menos passos, pois, apenas na primeira vez que ocupa a instalação de pacotes e o seguinte, as dependências encontradas e o pacote como tal.

    Saudações.

    1.    joaco dito

      Tem a funcionalidade apt-build, embora eu ache que não compila as dependências, mas instala binários pré-compilados.

  5.   xikufrancesc dito

    Desde o primeiro momento que vi a manchete, não pude deixar de pensar a mesma coisa, e depois de ler todo o excelente artigo, tenho a ideia em mente, dando a volta mil vezes, Gentoo ... Gentoo, onde está você?
    compilar é maravilhoso, poder desfrutar de certos recursos e usá-los não tem preço, mas o tempo e as "necessidades atuais" são imperdoáveis, pois não se aplicam.
    Talvez precisemos de algo no meio, onde nem as bibliotecas nem os detalhes na mudança de versão desperdiçarão tanto tempo. Veremos o que acontecerá então, ou se realmente nos aplicaremos para compilar no próprio aptitude, uprmi e zypper que já instalamos.

  6.   anônimo dito

    3 minutos firefox! .... Você quis dizer 30?

    Isso demorou muito no meu pc com um 8350G fx4.5, eu uso o gentoo.
    $ genlop -t firefox | tail -n3
    Sábado, 6 de dezembro, 20:00:00 2014 >>> www-client / firefox-34.0.5-r1
    tempo de fusão: 16 minutos e 35 segundos

    Essas instruções específicas de cada processador são chamadas de mnemônicos e são fisicamente implementadas dentro do microprocessador, são elas que compõem a linguagem da máquina, compilando-as de forma que um programa possa rodar em vários tipos de microprocessadores, se ou se eles tiverem que ser limitados aos menor quantidade de mnemônicos comuns suportados por todos aqueles microprocessadores ... desperdiçando a capacidade real dos microprocessadores mais atuais e poderosos.
    É assim que as empresas e as distros binárias GNU / Linux fazem isso.

    1.    Shyancore dito

      Para mim, com um Intel i7 4790K com 18 gb de RAM, levou-me o que eu disse antes

      1.    anônimo dito

        Eu entendo que o micro que você tem é superior, mas a diferença é abismal, a verdade deve ser uma savana nessa velocidade. Talvez seja algo relacionado a dependências ou USEs, que são iguais às opções de configuração ao compilar manualmente.

      2.    Jhonny dito

        Pequeno detalhe que você evitou dizer 18GB de Ram além do i7, nem todo mundo tem essa máquina, mas você poderia fazer um benchmarking então a diferença é perceptível, porque a teoria é boa mas vamos ver se compensa.

      3.    Cristian dito

        Outro grande detalhe, o processador é Intel, pois possui o melhor ponto flutuante independente do modelo, recurso muito relevante para realizar este tipo de processo

    2.    Ezequiel dito

      É verdade que compilar é tedioso. Mas você aprende muito negando Makefiles, bibliotecas, etc. É algo bom de se fazer até algumas vezes. Eu uso tudo pré-compilado pelo mesmo motivo que Tanrax citou.

      Saudações da Argentina!

  7.   Eric Carvajal dito

    O problema que geralmente tenho quando tento compilar programas com versões totalmente novas é sempre devido a dependências, às vezes é necessário compilar todos (para chegar às últimas versões) e depois pensar em poder compilar o que quiser.

    Problemas de PATH e FLAGS são as coisas que ainda me impedem de querer compilar tudo (embora eu geralmente faça da maneira que posso). Uma das ferramentas que costumo consultar para poder compilar as dependências é a seguinte web - http://www.linuxfromscratch.org/ -

    #LinuxFromScratch é um projeto que fornece instruções "passo a passo" para compilar o código-fonte que você precisa para usar no sistema .. (98% do que eu precisava para compilar eu consegui me guiando daqui e gradualmente Aprendendo).

    Como ponto positivo, acho que compilar um sistema a partir de 0 seria interessante especialmente para ambientes de desenvolvimento ou servidores, entre outras coisas que dizemos "geralmente não são tão mutáveis" quanto um computador pessoal no qual estamos constantemente instalando e alterando tudo (é meu ponto de vista) além do fato de que o mínimo de desempenho que se obtém neste tipo de aplicações de uso é muito importante.

    São pontos dos quais muito pouco se fala hoje em dia e só os “estudiosos” conseguem, mas é interessante dar a este tipo de coisas os tutoriais de que precisam para que a cada dia encontremos mais pessoas que contribuem ajudando às diferentes comunidades onde participam e Não só o Gnu / Linux permanece no tempo devido ao fraco desempenho dos colaboradores, embora até agora "funcionou assim" não é muito saudável ter apenas Usuários finais.

  8.   Rabuda Eagle dito

    Permitam-me um pequeno acréscimo. Para obter as vantagens que você expõe aqui, você deve configurar adequadamente o conhecido make.conf. Lá, a família do processador e os sinalizadores de compilação são indicados. Da mesma forma, você pode especificar o número de núcleos a serem usados ​​durante a compilação. Quando você usa todos os núcleos do seu microfone, o tempo de compilação é drasticamente reduzido.

    Uma saudação

  9.   Sebastian dito

    Artigo muito bom. Eu gostaria de um exemplo também ou gostaria diretamente, um post sobre como compilar no archlinux ou como usar o AUR. Feliz Ano Novo de Mendoza.

  10.   O Guillox dito

    Há muito tempo ... Eu sempre compilei o kernel, mas é muito tedioso ter que esperar 40min: / de qualquer maneira ... Eu não compilei nada exceto os drivers de vídeo por muito tempo (apenas para configurações especiais).

  11.   Alexander dito

    O artigo é muito interessante, mas não senhor, empacotar e compilar não é a mesma coisa;) ..

  12.   c4explosivo dito

    Postagem muito boa. Concordo com a compilação de certos programas, mas às vezes é um tanto entediante que leva a máquina para fazer o processo. Mas, fora isso, aprende-se muito, especialmente quando bibliotecas ou pacotes são necessários.
    Eu acho que para o Archlinux, para compilar você precisa do seguinte pacote: base-devel
    pacman -S base-devel

  13.   Ratakill dito

    A informação é muito boa, mas a verdade é que não é necessário compilar, se você é um usuário padrão e só quer que algo funcione assim, nem toque nisso. É tedioso estar compilando, sempre, eu sempre digo que você está faltando uma biblioteca, você se depara com um ou outro problema, diga-me para compilar o servidor minecraft para que tudo seja o melhor possível e eu tomo seu tempo…. além de que toda vez que uma atualização ou patch ou o que for lançado, comece a compilar o xd novamente

    1.    kik1n dito

      Exatamente, compilar é para programas muito específicos que você precisa para um uso otimizado, porque compilar tudo, e como você diz, sempre há atualizações, principalmente distribuições de lançamento, é chato. Eu recomendaria apenas seus grãos.

  14.   FedoraUserName dito

    Hoje quase todos os processadores que as pessoas usam suportam as mesmas instruções, portanto a compilação só é favorável quando se trata do kernel e em um sistema como um servidor, que, e obviamente quando não há pacotes pré-compilados, todo o resto é uma perda de tempo.

  15.   John Mer dito

    Boa contribuição, vou tentar ver no que dá, até agora na maioria das vezes (quase sempre) instalo a partir dos repositórios ...
    Pequena observação: as opções do comando rar não têm script e bunzip2 apenas descompacta.

  16.   santiago dito

    O máximo que compilei foi um kernel para debian wheezy e demorou cerca de 2 horas (tenho uma CPU dual-core amd e450 1.6 ghz) e é precisamente por isso que não instalei o gentoo, o tempo de compilar e baixar todo o sistema me levaria umas 18 horas, e que se não tiver problema, é verdade que é melhor compilar, mas na maioria das vezes o tempo gasto é muito e acho que não vale a pena. Você tem um aumento de velocidade, mas não é muito e acho que não justifica todo o tempo investido. Embora se um dia eu tiver um pc com um processador tão bom quanto o seu, tentarei instalar o gentoo 😛

  17.   Vampiro dito

    Pessoas:

    Sem intenções de fogo nem nada, os preguiçosos veem como natural compilar, gerar o binário, instalá-lo com o gerenciador de pacotes relevante (que resolve dependências obviamente, slapt-get, swaret, slackyd e / ou vários outros), com tudo otimizado para nosso equipe e como se nada, não é nada para escrever sobre a física quântica.

    Assistir um DVD sem tropeçar em um P3 750MHz com 192 MB de RAM não é impossível nem difícil de conseguir com o Slackware. Eu atesto, e é mais rápido do que compilar um Gentoo. Mas não é a mesma coisa, eu também uso o Gentoo.

    A diferença entre hacker e consumidor é que o consumidor diz “Gostaria que funcionasse assim” e o hacker “Tenho uma chave de fenda e alguns minutos” - Rael Dornfest

  18.   pimenta-do-reino dito

    Existe realmente uma melhoria de desempenho perceptível?
    Com uma última geração i7 e 18 Gb de ram, como você percebe a diferença entre pacotes compilados e binários?

    Eu sempre odiei a adequação de pacotes de auto-compilação, mas acho que nos ambientes de desktop atuais é muito complexo sustentá-los, especialmente devido à complexidade das dependências, as atualizações contínuas e a enorme dependência de não-livres fontes., como no caso de drivers proprietários, que sem dúvida influenciam o desempenho muito mais do que qualquer aspecto que possa ser compilado ...

    lembranças

    1.    Shyancore dito

      Considerando que Gnome 3 apenas o compila (direi os nomes grosseiramente já que os nomes dos pacotes não me lembro): o shell (a barra), gnome-control-center (completo, com suas dependências, etc), o miniaplicativo por enquanto e cerca de 2 ou 3 dependências para o shell funcionar. Obviamente, o shell exigia mais dependências para que todas as suas funções funcionassem, mas isso me levou a compilar o GDM, entre outros, resolvi isso modificando-o com GConf uma vez que o shell foi compilado.
      Agora, quando eu logar (via terminal) o ambiente leva muito menos tempo para carregar do que quando foi instalado pré-compilado. Jogando um momento no ar, de forma pré-compilada acho que demorou uns 3 ou 4 segundos para carregar o shell (com uns 5 em que o papel de parede é mostrado, nunca entendi porque demorou tanto, me parece que é por causa do driver com o GT 630) e compilei assim que entrei a senha, o X org inicia e o ambiente é carregado (com pré-carregamento e pré-link eu fiz eles muito mais rápidos, me parece que é porque eles foram passados para o cache; https://www.google.com.ar/search?q=preload+y+prelink+fedora&ie=utf-8&oe=utf-8&gws_rd=cr&ei=iXaqVPykO4qYNpbTgdAP )

    2.    mario dito

      O fato de o i7 ter instruções ss4 e ss3, que são ignoradas por compilações genéricas de várias distros (compilações debian para 486, ubuntu para 686) pode dar uma ideia de quando o hardware é desperdiçado tentando abranger um processador de 20 anos - talvez obrigado por apoiar meu antigo pentium mmx-. Se você precisar de "drivers proprietários" como mencionou, o kernel oferece a capacidade de carregar firmware específico no momento da compilação. Não há mais problemas estranhos com o xorg.

  19.   Fabian Alexis dito

    Obrigado pela informação, é sempre bom aprender (ou reaprender) (:

  20.   Javier dito

    Debian com prazer para Gentoo 🙂
    http://crysol.org/es/node/699

  21.   Yuan seis dito

    Outra desvantagem é que a compilação por terminal é para usuários que conhecem ou já possuem algum conhecimento sobre Linux. Existe uma ferramenta gráfica que não gerencia a compilação, instalação e atualização de programas, mas graficamente?

    1.    mario dito

      Calculate linux faz isso, é um gentoo com ferramentas gráficas prontas para compilar. Em Phoronix eles geralmente recomendam.

  22.   Joseph dito

    Eu sou um usuário linux, às vezes quando quero instalar um programa do repositório as versões antigas do programa são instaladas, simplesmente porque as novas não são compiladas para a distro em questão, acho que saber compilar é essencial, ainda mais quando são utilizadas distros raras.

  23.   joan dito

    Tudo o que diz no post está bem e não tenho dúvidas de que é verdade, mas a diferença de desempenho entre instalar um pacote binário e compilar você mesmo é imperceptível para o usuário.

    E as desvantagens da compilação são muitas e se elas são claramente perceptíveis ao usuário. Portanto, eu pessoalmente passo para compilar.

  24.   NauTiluS dito

    Onde mais notei o desempenho ao compilar o kernel, foi em um laptop com processador AMD 64. A mudança entre o kernel de fábrica e o compilado foi brutal.

    No momento, tenho um kernel de fábrica no meu sistema, pois como se fala muito por aqui, teve um tempo em que compilava quase tudo e ficava cansado.

    No momento, eu apenas compilo alguns programas de vital importância, como usar um pequeno servidor ou brincar com emuladores. Há pouco tempo fiz um post sobre como compilar a versão mame. Esses programas geralmente percebem quando você o otimiza para o seu sistema.

    Eu só preciso experimentar aquela distro gentoo e ver como está o desempenho.

  25.   NauTiluS dito

    Esqueci de acrescentar, para as pessoas que demoram muito para compilar o kernel, mais de 30 minutos, existem vários truques para fazer em menos tempo.

    Um desses truques é que, apenas compilar os módulos do seu equipamento, no máximo, talvez 70 módulos no máximo é o que te parece e se adicionarmos o suporte de iptables com todos os seus requisitos, acho que aumentaria para 300 módulos. Vamos lá, é muito melhor do que compilar 3000 módulos ímpares, uma figura que está atualmente em execução se os módulos do kernel forem compilados conforme vêm de fábrica ou, como dizem, vanilla.

    O programa que o ajudará a saber quais módulos o kernel reconhece atualmente em seu sistema é "localmodconfig" ou usando este script "streamline_config.pl" que se encontra dentro do diretório de origem do kernel, no caminho "/ scripts / kconfig / »

    Claro, certifique-se de ter todos os seus dispositivos USB conectados, uma vez que o kernel reconhece todos os seus módulos, é apenas uma questão de compilar.

    O kernel ficará bem leve e você sentirá um certo ar de frescor no sistema, além de acelerar ainda mais a inicialização e desligamento do sistema.

    Saudações.

  26.   tabris dito

    A vida não é assim tão fácil! existem programas que usam cmake ou outras coisas, e manter tudo atualizado e compilado leva tempo. E tendo uma CPU assim, que diferença isso fará para você?

  27.   Yoyo dito

    O problema com a compilação é que alguns dos programas que instalamos com esse método não são desinstalados ou apresentam erros ao fazer isso, portanto, não podemos desinstalá-los.

    1.    anônimo dito

      Você deve salvar a pasta com as fontes compiladas, quando quiser desinstalar, basta ir para a pasta de fontes e de um terminal como root execute:

      #faça a desinstalação

      Claro, os pacotes compilados manualmente por padrão em todas as distros sérias são instalados separadamente, ou seja, em / usr / local / bin e não em / usr / bin onde o gerenciador de pacotes da distro os coloca por padrão, assim. está entrelaçado.

  28.   freebsddick dito

    O artigo levanta várias coisas interessantes, mas carece de uma qualidade terrível em seus termos e estrutura lógica.

    «Num programa executável para o seu funcionamento através da utilização do PROCESSADOR para a conversão da linguagem utilizada para gerar o código para o binário e assembler. Também é freqüentemente chamado de embalagem. "

    Falso. é realmente usado um compilador é responsável por passar as instruções de uma determinada linguagem de programação para seu correspondente em linguagem assembly e, em seguida, traduzir isso para a linguagem de máquina.

    A linguagem assembly é um mnemônico que reflete um grupo de instruções residentes nos registradores do chip.

    "Quando você baixa, descompacta e compila o código-fonte de um programa, ele é compilado com as instruções específicas do SEU processador"

    A compilação de um programa será feita simplesmente com as instruções comuns à arquitetura, cabendo a cada usuário ativar os respectivos flags do compilador de forma a otimizar um programa para um determinado processador.

    Sobre o que você comenta sobre a compilação do kernel:
    Ao compilar o kernel, você está procurando ativar ou desativar recursos que podem ou não ser úteis em um determinado momento, o que não necessariamente se refletirá na relação de tamanho e velocidade na carga de execução.

    Quando você se refere à seguinte seção:

    dh-make devscripts fakeroot debhelper debian-policy ccache dh-autoreconf autotools-dev build-dep

    Esses programas não são essenciais para compilar um programa. Como você estava tentando dizer no início, a quantidade de linguagens de programação impede que você saiba com certeza quais ferramentas você deve ter instaladas para poder compilar programas em GNU / linux ... você saberá disso somente consultando a documentação do programa que deseja executar. Os programas que você menciona são usados ​​para DEBIANIZAR e empacotar neste formato um programa que pode ou não ser compilado.

    Existem outras questões no artigo que se revelaram um tanto ambíguas na maneira como são tratadas. Seria difícil abordar todos eles.

    Sugiro a revisão do artigo na medida do possível por seu criador e preconizo um melhor controle de qualidade das publicações.

    1.    pimenta-do-reino dito

      Cara, também não é isso.

      O artigo não é para a revista Science, é simplesmente um artigo introdutório e acredito que, nos termos em que está escrito, é suficientemente profundo para que um usuário novato compreenda os conceitos-chave.

      Se formos acadêmicos, três quartos do que é publicado na internet não valeriam absolutamente nada.

      Não sejamos tão puristas ... é impossível concordar 100% com um artigo, mas não podemos avaliar continuamente a qualidade "técnica", como se estivéssemos avaliando um doutorado.

      Meu total apoio ao autor deste artigo

  29.   sem nome dito

    artigo interessante

    É sempre bom para os amantes da liberdade usar unar em vez de rar para descompactar rars livremente. ( https://packages.debian.org/jessie/unar )

  30.   Jumi dito

    Encontrei o bug com esse problema ... Comecei a pesquisar no google, mas não consigo encontrar um tutorial para compilar o firefox no ubunto 14.04 amd64 bits ... caso contrário, esta noite recebo o kernel com o seguinte tutorial: http://www.redeszone.net/2014/11/28/como-instalar-el-ultimo-kernel-de-linux-en-ubuntu-14-04-lts/

  31.   carlos ferra dito

    bom artigo, estou aprendendo muito. mas eu usaria isso apenas para algum programa específico que consome muitos recursos, como editores de vídeo, por exemplo. Saudações.

  32.   babel dito

    Entre este artigo e o Gentoo que publicaram alguns dias atrás, eles me tentaram a instalar o Gentoo no meu PC. Há muitos anos usei o Sabayon, que facilitou todo o processo de instalação, mas manteve a base de compilar do código-fonte. Sinceramente não me lembro de ter notado nenhuma diferença no desempenho do meu Laptop (naquela época eu dei uma volta) com o Sabayon ou o Ubuntu, então não sei se devo me jogar todo o trabalho de deletar meu Arch que funciona muito bem para instalá-lo. Não tenho certeza se alguns milissegundos por programa valem a pena.

    1.    anônimo dito

      Dos 4 pcs com gentoo que instalei e atualizei, o notebook que tinha archlinux foi adicionado .... Systemd me cansou, já tive que usá-lo com startx porque na última atualização ambos os núcleos dispararam para 85% de uso, sem fazer nada, estava pesquisando e parece que algo mudou no systemd para fazer o slim enlouquecer e comer o microprocessador.
      Chega, foi o suficiente com o arch ... aguentou muito tempo, mais de dois anos, agora estou instalando o gentoo, vou para a atualização de teste do stage3, hoje à noite vai um openbox com batatas fritas.

  33.   Leão dito

    Bom artigo, me dá vontade de compilar o Qupzilla, mas com um sempron vai levar dias, bem, não sei muito tempo, mas ainda dá uma sensação ruim.

  34.   Manuel Aponte dito

    Outra desvantagem da compilação é que quando há uma atualização é necessário compilar e instalar a atualização novamente, o que é um problema considerando que alguns programas têm ciclos de desenvolvimento curtos e para eles as atualizações são feitas com freqüência, 2 a 3 meses, com todos isso o usuário casual fica entediado e o usuário constante consome muito tempo para manter seu sistema atualizado.

  35.   Manuel Aponte dito

    Gostaria de saber quais aplicativos são mais recomendados para compilar. de acordo com sua utilidade, frequência de atualização e melhoria de desempenho.

  36.   Alex Pol dito

    Isso é um absurdo, se você precisa compilar sozinho, você está usando a distribuição errada. A única razão para compilar é adicionar opções de depuração para diminuir sua velocidade, em troca de uma melhor correção dos bugs de outras pessoas.
    Seu sistema não está lento porque precisa de -O3, está lento porque há algum programa lendo muito no disco ou pintando muito na tela.

    Minha recomendação: em vez de micro-otimizar nosso sistema, vamos trabalhar como uma comunidade para melhorar o software que todos nós temos.

  37.   Javier Fernández dito

    Você não explicou como otimizar a compilação, por exemplo, no Gentoo, as opções de USE são usadas para otimizar o código gerado, você também deve indicar o processador, etc. Como isso é feito no UBUNTU / Debian ou Arch?, Artigo interessante.

  38.   José Manuel dito

    Bom!

    Na falta de ler os comentários abaixo tenho um novato no linux:

    Eu uso o Fedora 20, já tenho algumas coisas instaladas, por exemplo, o navegador Firefox, para compilá-lo para minha máquina, posso apenas fazer? Ou seja, sob o código e compilá-lo, ou tenho que primeiro elimine o programa que já baixei para compilar o novo ...

    O mesmo com o kernel Linux e tal….

    Talvez eu esteja perguntando algo absurdo, mas eu já disse que sou bastante novato em coisas sérias de Linux rs

    Uma saudação!

    1.    KoprotkGenericName dito

      Acho que o kernel não é necessário, mas você deve criar uma entrada para cada kernel no GRUB, com o firefox não sei se é recomendado ter 2 firefox, pessoalmente prefiro ter 1 só kernel e 1 só firefox

  39.   St-avapxia dito

    A única coisa que compilei na minha vida foi uma versão em desenvolvimento do Musique, gosto muito desse app, valeu todo o tempo que levou para o processo. Para um usuário final como eu, quando terminei, me senti realizada.

    Saudações, excelente blog.

  40.   Ecosslacker dito

    Olá, eu uso o Slackware e compilar os aplicativos é a coisa mais normal do mundo.
    O sistema é instalado a partir de uma ISO já pré-compilada, e os aplicativos pré-compilados que você pode usar do repositório oficial são poucos, embora se você quiser, pode baixar o código-fonte do sistema (e os scripts originais com os quais toda a distro é compilada ) e compile você mesmo, que é como eu imagino que o Gentoo funcione.
    No entanto, o projeto SlackBuilds fornece scripts (semelhantes à distro oficial) para muitos aplicativos de terceiros, nos quais você baixa o código-fonte do que deseja instalar e o converte em um pacote tgz ou txz que é posteriormente instalado com ele. gerenciador de pacotes oficial da distro. Portanto, a vantagem é que você evita usar os comandos configure, make, make install e pode atualizar, reinstalar ou remover o pacote como qualquer outro e com muita facilidade.
    A desvantagem é que no Slackware as dependências não são resolvidas automaticamente como em outras distros, então você deve compilar as dependências necessárias primeiro e o aplicativo que deseja instalar por último. Os programas compilados que utilizo são do LibreOffice, Texmaker, Spyder, Qt5, QtCreator, VLC, Wine, GRASS, QGis, entre outros. Dependendo do aplicativo e de seus requisitos, a compilação e a instalação podem levar de 5 minutos a várias horas. Mas se você quiser, pode encontrar e usar um pacote pré-compilado para economizar tempo.
    Não tive tempo de verificar se há muita diferença entre pacotes compilados e pré-compilados, mas meu sistema é muito estável. Mas acho que pelo menos no meu laptop não há muita diferença porque não é tão potente, tem um processador i3 e 4 GB de RAM.
    Saudações e boa sorte na compilação.

  41.   KoprotkGenericName dito

    Atualmente estou usando o Funtoo, para ser honesto, não vejo nenhuma diferença de desempenho entre compilar um programa ou instalar o pré-compilado, faço isso puramente para fins educacionais, mas se houver diferenças entre compilar o kernel e não fazê-lo, sim. Quando estava usando o debian e queria compilar algo, usei a seguinte sequência:

    . / Configure
    Faça -j3 (número de núcleos + 1)
    Alien

    Usei alíen porque cria um binário do programa compilado e assim você pode instalá-lo em seu sistema como qualquer binário, e então, se quiser desinstalar, pode simplesmente usar o synaptic ou outro gerenciador de pacotes, que é a vantagem de criar o pacote e instalá-lo como tal, em vez de fazer "make install"

    1.    yukiteru dito

      Eu vejo uma melhoria, pelo menos com pacotes grandes e pesados, por exemplo, o Libreoffice no Funtoo leva muito menos tempo para carregar do que no Debian, o mesmo aconteceu comigo com VLC ou com mpv e MKV FullHD e arquivos multi-áudio, o o carregamento é muito mais rápido.

      Outro que também passou pela mudança é o Firefox, no Debian ter 10 ou 15 abas com meu PC passa a ser uma tortura, mas com o Funtoo consegui ter até 30 abertas e continua como se nada e o consumo de ram é bem menor e menor Com tendência a congelar para arquivos JS, acho que depende mais do contexto de como certas tarefas e programas são executados.

  42.   Marco Sarmiento dito

    O problema é que quando baixamos ele pré-compilado estamos transformando qualquer distro Linux em uma cópia crua do Windows

  43.   Fermin dito

    Mais do que um aumento espetacular de desempenho, vejo a vantagem na possibilidade de compilar os pacotes com os componentes que se deseja: por exemplo, se você não tem uma impressora pode indicar que os pacotes com suporte para CUPS não estão compilados -os pacotes que eles usam CUPS, obviamente, se você compilar o Hunspell com ou sem CUPS não importará- apenas -pelo menos no Gentoo- indicando no arquivo make.conf, onde todas as opções para construir pacotes são centralizadas "-cups "; se você usar KDE5 ou Plasma 5, como eles o chamam agora, você pode especificar as tags "-kde", "-qt4", que eram tags válidas para o KDE 4, mas desnecessárias no KDE 5 e aplicativos transferidos para a nova área de trabalho, "-gnome", "-Gtk" e assim por diante com qualquer componente que você sabe que não precisa. Se por algum motivo um programa específico precisar, digamos GTK, então você pode, em um arquivo chamado package.use, indicar que ele usa GTK, por exemplo, para Pidgin com o mesmo rótulo, mas sem o sinal de menos, ou seja, " gtk »:« Net-im / pidgin gtk ».
    Desta forma, um sistema consegue várias centenas de megabytes de binários mais leves e menores e mais eficientes, por não ter código desnecessário. Eu fui do Ubuntu para o Gentoo através do Opensuse, Kubuntu, Debian, Arch, Chakra ou KaOS, e o Gentoo é o sistema mais rápido que já tive, e ainda tenho o mesmo Core 2 Duo que tinha 7 anos atrás. Claro, deixo as compilações para a noite, porque compilar QT5, por exemplo, leva várias horas. Se você definir o parâmetro "niceness" para o Portage em make.conf, você pode instalar pacotes ou atualizar enquanto continua trabalhando com a máquina e dificilmente notará muita lentidão, embora obviamente o tempo de compilação aumente; mas vamos lá, com colocá-lo para instalar ou atualizar quando vou jantar, e se necessário deixá-lo funcionando durante a noite, meu antigo computador funciona melhor do que o I3 da minha namorada com Kubuntu.

    Outro aspecto cada vez mais importante é que ao compilar a partir dos arquivos fonte, a segurança que o pacote que estamos instalando é o original, que não foi manipulado por terceiros, é quase total. Eu acho que o Debian está implementando um sistema de verificação de compilação que vai garantir um pouco mais do que a pré-compilação que instalamos realmente vem da fonte original, mas nunca haverá tanta certeza quando aquele pacote for compilado em nossa máquina com nossa configuração.
    Na minha opinião, com um processador moderno, não uma catraca como a minha, hehe, e, se quisermos acelerar o processo, com 8 GB de RAM para poder montar / var / tmp -a pasta temporária que o Portage usa para compilação- em RAM, que sempre será mais rápido que um disco rígido ou um SSD, hoje não vejo muito sentido em usar pacotes pré-compilados. Se meu computador Firefox leva cerca de 40 minutos para compilar, quanto tempo pode demorar para um I5 ou um I7 que está atualmente no mercado, 5 minutos, até menos? Estou falando sobre o firefox fonte, não firefox-bin, que é um pacote binário pré-compilado que pode ser instalado no Gentoo se você tiver uma máquina muito lenta - existem vários pacotes grandes que já são oferecidos pré-compilados por este motivo, não é obrigatório compilar tudo -. Não posso falar porque minha namorada não me deixa mexer no computador dela, hehe, e o meu está indo tão bem que não sinto necessidade de renová-lo, mas se estiver certo, acho que vale a pena perder alguns minutos compilando para ter um sistema feito sob medida. Mais ajustado e adaptado à nossa máquina, não acho que nada possa ser alcançado sem entrar nesses métodos do Linux do zero, o Linux do zero, que acho que já está reservado para cientistas da computação ou conhecedores de Linux muito avançados.

    Saudações.

  44.   Pato dito

    Muito bom!
    uma única coisa não existe o «Amd Atom x2»
    ni existira é uma marca comercial da intel
    lembranças