Responsive Ad Slot

Mostrando postagens com marcador debian. Mostrar todas as postagens
Mostrando postagens com marcador debian. Mostrar todas as postagens

Instalando o básico para programar em Python no Linux (Ubuntu, Mint e Debian)

Nenhum comentário

segunda-feira, 16 de outubro de 2017

Dando continuidade a uma pequena série de artigos que vai te ensinar a criar ambientes básicos de programação em linguagens variadas que começou com este artigo falando de Java, hoje vamos mostrar como criar um ambiente bacana para você desenvolver Python no Ubuntu, Linux Mint, Debian e seus derivados, o que inclui Deepin, elementary OS, entre outros.

Montando ambiente para programar em Python





Este artigo foi desenvolvido em parceria com Tiago Funk, ele vai te ajudar a entender melhor como criar uma ambiente ideal para começar a programar em Python em algumas das distribuições Linux mais famosas.

Começando


Se você está com dúvidas sobre o que é necessário para poder programar em Python na sua distro Linux, este artigo tem a pretensão de lhe instruir em seus primeiros passos. Antes de tudo, é importante dizer que o Python é uma linguagem interpretada, ou seja, todas as instruções que você for programar nela são, na verdade, instruções que um outro software seguirá.

O mais legal nessa história é que distros Linux utilizam Python para muitas coisas, assim esse interpretador já vem instalado na sua distribuição, mas há um porém, em geral as distros utilizam uma versão antiga do Python, a 2.7, enquanto que hoje existe a 3.5 (Essa versão também já vem instalada em alguns casos). Para ver testar o Python, abra o terminal e digite python3.5 e note que o cursor do terminal vai mudar.

Testando Python

Nesse console que se abriu podemos digitar comandos em Python para que ele os execute. Ao digitar  apenas python  o terminal, ele vai usar a versão 2.7 ai invés da mais recente.

É importante definir qual a versão do Python que você quer trabalhar, pois existem diferenças na sintaxe entre as versões, ou seja, para fazer a mesma ação, existem comandos diferentes em cada versão.

Instalando uma IDE


Para poder programar em Python, em teoria, você já teria o suficiente só com o que vem pré-instalado, entretanto, para ganharmos tempo, vamos instalar um IDE, que é um software que vai automatizar muito dos processos que você teria que fazer para poder executar o programa que você acabou de escrever.

Talvez a melhor opção para Python seja o PyCharm, é muito completo, leve, e bastante bonito. 


No site de download escolha a versão da comunidade, que é gratuita, porém mais básica, para o nosso propósito, vai servir perfeitamente. Se não me engano há um pacote Snap para Ubuntu (e qualquer distro) dele, se você usa o Deepin, ele está na Deepin AppStore.

Site do PyCharm

Após o finalizado o download, você terá uma arquivo .tar.gz, descompacte-o, entre na pasta que foi criada e entre na pasta bin.

Instalando o PyCharm

Dentro dessa pasta existe um arquivo chamado pycharm.sh, esse arquivo é o instalador, para executa-lo, abra o terminal, navegue até a  pasta do arquivo e digite ./pycharm.sh, e a instalação vai iniciar.

Instalando o PyCharm

A primeira janela que vai se abrir é a janela que pergunta se você vai querer restaurar dados de instalações passadas, no nosso caso não vamos fazer isso, depois aceitamos o termos de utilização e por último, uma janela aonde podemos personalizar a interface vai se abrir, podemos deixa-la no padrão.

O próximo passo é criar um projeto, escolhendo o local onde serão guardados os nossos arquivos Python.

Configuração do PyCharm

Não esqueça de escolher a versão do Python com que você quer trabalhar. Agora, vamos criar um novo arquivo.
Novo arquivo no PyCharm

Clique em file (no menu superior) e depois em new…, vai-se abrir uma pequena janela, selecione Python file, nomeie-o e escreva o seguinte:
print(“Olá para todos !!”)

PyCharm Indexando

Talvez você tenha que esperar um pouco se esta for a sua primeira vez abrindo o PyCharm, é necessário esperar um pouco. Como na imagem acima, o Pycharm estará indexando alguns arquivos, assim, é bom esperar um pouco e deixar que isso ocorra.

Para executar o seu código, vá até o menu Run e clique em Run novamente, a execução será semelhante a isso:

Rodando o programa no PyCharm

Finalizando


Basicamente está tudo pronto e funcionando, mas temos mais duas dicas para você:

1 - Para escolher a versão do Python do seu projeto vá em: File (no menu superior), default settings, e na janela que se abrir selecione project interpreter e  então selecione a versão desejada.

Configurando o Interpretador no PyCharm

2 - Se você é do tipo que gosta de usar atalhos, vá em help (menu superior), keymap references e vai se abrir um PDF como todos os atalhos da IDE. Dê uma estudada nele, pois eles podem ajudar a agilizar o seu trabalho.

Agradecemos ao Tiago pela contribuição, agora você já tem o básico para começar os seus trabalhos e estudos.


Até a próxima!


_____________________________________________________________________________
Viu algum erro ou gostaria de adicionar alguma sugestão a essa matéria? Colabore, clique aqui.


Entrevistamos Chris Lamb, atual líder do projeto Debian

Nenhum comentário

sábado, 8 de julho de 2017

Atendendo aos pedidos de vocês na entrevista com Hualet Wang, líder do Deepin, vamos continuar falando com os líderes dos projetos e distribuições Linux mundo à fora. Hoje temos nada mais, nada menos, do que líder do projeto Debian, uma das maiores e mais importantes distribuições Linux da história, Chris Lamb, que aceitou o meu pedido e falou sobre coisas muito interessantes à respeito da distro lendária.

Chris Lamb




Temos o prazer de apresentar uma entrevista exclusiva do atual líder do Debian ao blog Diolinux, muitas perguntas foram inspiradas em questões levantadas pelos próprios usuários do Debian no Brasil, vamos ao bate-papo.

Diolinux: Qual o seu nome e qual a sua função dentro do projeto Debian?

Chris: Meu nome é Chris Lamb e eu sou o atual líder do projeto Debian (DPL) e também o atual representante oficial do Debian. Sou conhecido por "lamby" no IRC e @lolamby no Twitter.

O DPL (Debian Project Leader) tem duas funções principais, uma interna e outra externa.  A função externa é relativamente simples de entender, eu represento o Debian pelos outros integrantes, como nesta entrevista onde falo em nome do projeto. Isso também envolve dar palestras e fazer apresentações sobre o Debian em conferências, bem como criar relacionamentos com outras organizações e empresas.

Internamente o líder gerencia o projeto em si e define a sua visão sobre todas as questões em algum grau. O líder deve conversar com os outros desenvolvedores do Debian para ver como eles pode colaborar entre si, removendo qualquer bloqueio potencial para que isso aconteça, para que assim o Debian seja produzido. Umas das tarefas principais do líder do Debian envolve, portanto, a coordenação e comunicação. "Herding cats", como dizem.

Diolinux: Desde quando você atua nesta função?

Chris: Após um período de campanha e de votação de 6 semanas, fui eleito no dia 17 de abril deste ano.

Diolinux: O que fez você querer fazer parte da comunidade Debian?

Chris: Minha primeira experiência com o Debian foi um "acidente feliz". Eu tinha recebido um conjunto de CDs da Red Hat de um serviço chamado "The Linux Emporium", uma empresa do Reino Unido que enviava CDs de distribuições GNU/Linux como um serviço prestado antes de termos a internet mais rápida para fazer downloads. No entanto eu acabei descobrindo que eu não tinha os 12 MB de RAM necessários para executar o instalador do Red Hat. Irritado eu peguei um CD do Debian "Potato" que estava incluído no kit que eu havia recebido (livre de encargos) no meu pedido, uma versão que já está muito desatualizada atualmente, e assim eu conheci o Debian, que funcionou no meu computador.

Avançando alguns anos, minha primeira contribuição para a comunidade foi trivial (um patch para o software de edição musical chamado Lilypond). Eu era um colaborador entusiasmado do Debian e fui infectado pelo vírus da colaboratividade, o que me levou a contribuir mais e mais com outros pacotes, fazendo com que eu passasse de um simples estudante do Google Summer Code para um desenvolvedor oficial do Debian em 2008. Participei da minha primeira DebConf (conferência anual do Debian) em Edimburgo, na Escócia.

Diolinux: Como você definiria o projeto Debian para as pessoas que já usam Linux, mas não o Debian?

Chris: No momento em que escrevo este texto mais de 10% da internet é alimentada pelo Debian. Quantos sites você poderia hoje sem o Debian? Debian é o sistema operacional de escolha de vários projetos, é o prjeto de escolha da estação espacial internacional (ISS), de inúmeras universidades ao redor do mundo, empresas, órgãos governamentais, todos eles confiam no Debian para prestar seus serviços à milhões de usuários em todo o mundo e além dele (literalmente). O Debian é um grande sucesso.

Penso que seria adequado dizer que o Debian tem a reputação de ser uma distro Linux para especialistas, no entanto, isso é um pouco enganador e injusto também, enquanto existem muitas distribuições que estendem o Debian para melhorar a sua interface e interação com os usuários em várias direções (como Ubuntu, Mint, etc), o núcleo subjacente do Debian não deve ser temido.

Nossos esforços são geralmente focados em liberar uma versão estável do Debian a cada 18 meses (ou mais), entretanto, o Debian também mantém uma distribuição para testes (Debian Testing), que talvez possa ser melhor entendido como a "área de testes" para a próxima versão. Há também a versão "instável", que (apesar do nome enganador!) é completamente utilizável como um sistema do dia a dia. É semelhante as distros Rolling Release.

Diolinux: Todos sabemos que os principais objetivos do Debian são dois: Ter um sistema tão estável quanto possível e ser multiplataforma, incluindo o suporte a diferentes tipos de Kernel que não o Linux. Existe alguma outra meta ou objetivo do Debian que foge desta dualidade amplamente difundida? Existe alguma outra meta que você estão trabalhando para cumprir?

Chris: Você tem razão ao salientar que o Debian suporta também outros Kernels não-Linux, especificamente o kernel kfreebsd e você pode estar ciente também de que é possível ter também o (ainda muito experimental) kernel Hurd do projeto GNU.

A diversidade técnica do Debian se estende para além dos kernels, essa variedade significa que nós podemos disponibilizar o sistema para todo o tipo de equipamento, de pequenos dispositivos a grandes, notavelmente temos o Debian como base do Raspian, um dos principais sistemas operacionais para o Raspberry Pi, além de suportar sistemas gigantescos também, com mais de 100 GB de RAM, versatilidade realmente é um ponto forte do Debian.

Outro objetivo além da escalabilidade é oferecer uma múltipla gama de opções de desktop enviroments que você pode optar na hora da instalação, isso não requer que você baixe um sistema para cada uma delas, ou tenha que fazer uma mudança manual posterior (a menos que você queira, claro), tudo isso o Debian já te oferece.

Para todos que se importam com coisas como esta... é perfeitamente possível usar o Debian sem o systemd...  *g* 

Diolinux: Recentemente nós tivemos a informação de que houveram vários problemas e bugs nas ISOs live do Debian, o que é algo realmente incomum, aos poucos os problemas estão sendo solucionados, entretanto, observando as listas de e-mail do Debian nós podemos observar que a problema destas falhas estava muito relacionado a falta de testadores para estas ISOs. Eu gostaria de saber, como o público pode ajudar a debugar o Debian e fazê-lo melhor?

Chris: Claramente o problema com as ISOs live mostra que existem algumas lacunas no nosso processo de desenvolvimento, no entanto, a equipe está introduzindo novas métricas de desenvolvimento, tanto técnicas, quanto não-técnicas, para que isso não aconteça novamente.

Em termos de como a comunidade pode ajudar; testar novas versões betas das ISOS, dos instaladores, é algo que nós sempre apreciamos. Enquanto a atenção para o funcionamento do ambiente de usuário do Debian acaba recebendo muita atenção, eventualmente o instalador tem menos "globos oculares" sobre ele.

Diolinux: Você utiliza apenas Debian ou utiliza outras distribuições e sistemas operacionais? Qual o seu ponto de vista sobre sistemas proprietários?

Chris: Atualmente não uso apenas sistemas operacionais de software livre, mas todos rodam Debian!

Diolinux: Ouvindo os nossos leitores, alguns comentaram que não existe um forma de "fácil acesso" ao desenvolvedores do Debian, não existe um canal claro entre o Debian e o dito "usuário final", isso pode se dever ao fato de realmente isso não existir ou a pura falta de divulgação e informação destes meios. Qual é a melhor forma de se envolver com o projeto? Que tipo de profissionais e entusiastas podem fazer parte da comunidade de desenvolvedores do Debian?

Chris: Existem várias formas para o público começar a participar. Para usuários comuns, existe a página de "Welcome" da Wiki: https://wiki.debian.org/Welcome/Users

Para pessoas interessadas em contribuir a nível de código, basta dar uma olhada aqui: https://www.debian.org/devel/

Mas também é possível observar a nova página de "Guia para mantenedores": https://www.debian.org/doc/manuals/maint-guide/

Diolinux: Como você imagina que o Debian será daqui a 10 anos?

Chris: Primeiramente eu gostaria de me imaginar ainda como um contribuidor ativo do projeto Debian, não necessariamente líder, claro, acredito também que muitos dos desenvolvedores atuais do projeto continuarão nele neste período.

Em termos da "distribuição Debian", acredito que o projeto sempre teve uma tradição bem moldada pela demanda dos usuários e desenvolvedores, bem como pelos esforços gerais e padronização na comunidade de software livre.  Nunca há uma imposição "vinda de cima" em um projeto como o Debian, acredito inclusive que esta é uma das principais razões para as pessoas escolherem o Debian para começar.

Não há razão para pensar que seria algo muito diferente disso em uma década, porém, mudanças sempre podem acontecer e é muito difícil de prever.

Diolinux: Deixe uma mensagem final para os nossos leitores e fãs do Debian no Brasil.

Chris: Eu apenas gostaria de agradecer a todos pela leitura da entrevista.

Finalizando


Eu gostaria de aproveitar a oportunidade para agradecer ao Chris pelo tempo dispensado na entrevista, ela foi toda feita por e-mail em inglês, então eu tive que fazer a tradução e adaptar alguns sentenças, contudo, gostaria de deixar claro que uma das respostas do senhor Lamb acabou ficando um pouco ambígua para mim, pois apensar de entender o que ele disse, não consegui interpretar ela completamente, por isso vou colocar aqui a resposta em inglês da pergunta "Você utiliza apenas Debian ou utiliza outras distribuições e sistemas operacionais? Qual o seu ponto de vista sobre sistemas proprietários?":


"Currently, I not only exclusively use free software operating systems, they are all running Debian!"

Acho que poderia ser interpretado de diversas formas, você pode colocar como você entendeu a questão. No meu entendimento, a resposta pode dizer que ele não usa apenas Linux, mas Windows ou macOS também, mas que quando usa software livre é sempre Debian, ou que ele usa sempre Debian mas não apenas software livre. Se você tiver uma interpretação diferente, compartilhe nos comentários.

Edit: Troquei mais alguns e-mails com o Chris para entender melhor o que ele quis dizer. Ele me falou que quis dizer que "todos os seus computadores e servidores rodam Debian, ainda que não sejam 100% software livre", devido a drivers e programas proprietários que ele usa, ou seja, fica mais pela minha segunda interpretação.

Gostaria de informar que já entrei em contato com Daniel Foré, desenvolvedor do elementary OS, estou aguardando a resposta dele também, pois até o momento ele não respondeu meu e-mail, se vocês puderem importuná-lo no Twitter para que ele responda eu agradeço. 😅

Deixem também sugestões para entrevistas, prometo sempre fazer o possível para conseguir o contato com as pessoas indicadas.

Até a próxima!
_____________________________________________________________________________
Viu algum erro ou gostaria de adicionar alguma sugestão a essa matéria? Colabore, clique aqui.






Como compilar um Kernel Linux passo a passo [TUTORIAL COMPLETO]

Nenhum comentário

quarta-feira, 5 de julho de 2017

A compilação do Kernel é algo cheio de místicas no mundo da tecnologia, mas na verdade ela não chega a ser um processo "super" complicado, requer um pouco de atenção, sim, mas nada que algumas tentativas e alguns Kernel Panic não deixem você "manjador". Hoje vamos aprender como compilar um Kernel para a sua distribuição.

Como compilar Kernel Linux




Vamos falar um pouco sobre compilação de Kernel e se você deve ou precisa fazer esse tipo de coisa. 

Como comentei antes, a compilação do Kernel está envolta em uma mística muito grande onde "apenas os entendidos" conseguem fazê-lo, de fato, é necessário um pouco de conhecimento avançado no seu hardware para otimizar o Kernel, mas não para compilá-lo necessariamente.

Encare este tutorial de forma didática, acredito que os maiores beneficiados serão os que querem aprender um pouco mais sobre Linux e sobre informática, a maior parte dos usuários (comuns e avançados) não realmente necessitam de um Kernel compilado, digamos que este seja um "luxo" que você pode se dar ou não.

As distribuições Linux fazem um grande esforço para entregar para você um Kernel genérico que consiga lidar com praticamente qualquer hardware e ainda extraia um bom desempenho do seu computador. Se você conhecer direito o seu processador, sua placa mãe, memórias, etc, em fim, se conhecer bem o seu Hardware, é possível ajustar alguns módulos para deixar o Kernel mais enxuto e otimizado. Em minha experiência a diferença não chega a ser gritante mas pode ajudar. Eu mesmo costumo utilizar o Kernel oferecido pela distribuição que eu estiver utilizando, só vou pensar em mudar caso algo não esteja funcionando adequadamente e isso pode ser feito de diversas formas, compilando é apenas uma delas.

Você também pode querer usar um Kernel mais antigo em uma máquina mais velha também por questão de melhor suporte ao hardware, se a sua distro não oferece este kernel, compilar ele pode ser a única solução para trazer à vida o seu "dinossauro de estimação". 😁

Veja também: Atualizar ou não atualizar o Kernel?

Já está ganhando coragem?

Compilando o seu Kernel Linux


Linus Torvalds liberou no kernel.org recentemente o Kernel 4.12 que traz várias melhorias e pelo que me consta, melhores drivers de vídeo para placas da AMD é o principal destaque. Se você usa Arch, Fedora, Manjaro, openSUSE Tumbleweed, versões instáveis do Debian, entre outras distros que costumam manter pacotes recentes, provavelmente você receberá esse Kernel muito em breve (isso se já não recebeu), no entanto, outras distros tendem a usar o Kernel LTS para melhor estabilidade, o Debian Stable, Ubuntu, Mint, entre outras. Estas mantém um Kernel em uma versão mais "antiga" e muitas vezes uma versão modificada também, com inclusão de drivers extras e outras otimizações e perfis que dizem respeito à distro em específico.

Leia também: Conheça o gestor de Kernel gráfico para Ubuntu

Caso você se sinta inseguro ao fazer este tipo de coisa, ou se for a primeira vez que você vai fazer isso, eu recomendo que você se foque em quatro pontos.

1º - Leia todo o material antes de começar a fazer qualquer coisa.

Acredite, se você não tiver paciência para ler este artigo por completo, provavelmente você não vai ter paciência para compilar o kernel. Não tenha medo de aprender, este artigo não vai fugir de você, então leia com calma mais de uma vez e use-o como guia no seu processo.

2º - Faça o processo no VirtualBox uma vez ao menos para você entender como tudo funciona.

Aprenda a fazer testes antes de colocar as coisas em produção, aprenda a errar e tirar conhecimento dos seus erros. Fazer a compilação no VirtualBox pode levar mais tempo por conta da potencia do seu computador ficar dividida, mas permite que você teste várias coisas diferentes. Outra boa opção é você testar em um computador de reserva que você tenha, assim você pode tentar otimizar o kernel para ele.

3º - Não tenha medo, mas seja responsável.

Algumas pessoas acham que para compilar o kernel você precisar ser o "Chuck Norris" no Linux, mas a verdade é que "qualquer um com o toddy em um quarto escuro" faz isso, basta prestar atenção.

Se você estiver fazendo em uma máquina virtual ou de testes, não há com o que se preocupar. Na verdade, mesmo fazendo na sua máquina de trabalho, sabendo voltar ao "normal", não tem muito com o que se preocupar também.

Uma vez o kernel compilado, entenda que tudo o que funciona e não funciona no seu sistema no que diz respeito ao gerenciamento de hardware é "culpa" sua, os patches de segurança, atualizações e coisas do tipo serão aplicados somente se você o fizer. Provavelmente a sua distro continuará a prover atualizações no Kernel que ela traz por padrão através do repositório, mas no que diz respeito ao kernel que você compilar, bom, ele depende só de você.

4º - Pegue o seu café. Sempre tenha um café! ☕

Pode ser chá também.

Começando a compilar o Kernel Linux


O primeiro passo é, sem dúvida, baixar o Kernel que você quer instalar. Observe sempre a versão, pois essa informação será importante no futuro. Neste exemplo vamos usar o mais recente (no momento), o Kernel 4.12. Acesse o kernel.org e baixe a versão mais recente disponível:

Kernel Linux Download

Clique no botãozão  amarelo e faça o download para o diretório que você quiser, por exemplo, a sua pasta Downloads. Para fins de organização (afinal você pode ter muitas pastas e arquivos ali), sugiro que crie uma pasta com qualquer nome e coloque o arquivo que você baixou dentro, vou usar o nome "kernel" neste exemplo, conforme a imagem abaixo:

Compilação de Kernel Linux
Veja o exemplo acima da pasta "kernel" dentro de "Downloads"
Depois disso, abra o seu terminal e agora vamos começar a "brincadeira". Já pegou um café aí (ou chá, se você estiver em processo de descafeinação)?

Este processo pode demorar um pouco, seja paciente, leia com atenção e tudo deverá ocorrer bem.

Antes de mais nada, vamos instalar alguns pacotes que serão úteis para a nossa compilação. No exemplo eu estou utilizando o Linux Mint, mas os comandos servirão para todas as distros baseadas em Debian, incluindo o Ubuntu, lembrando que você tem que fazer o processo como root ou utilizando "sudo" onde for possível. Neste caso, podemos usar o "sudo" sem problemas:

Compilando Kernel Linux

Comando:
sudo apt install build-essential libncurses5-dev
Os pacotes tem o mesmo nome em praticamente todas as distros, então basta você usar o gerenciador de pacotes da sua. Alguns comandos que vamos utilizar são coisas básicas do Bash, como o "ls" para listar os arquivos e pastas nos diretórios e o "clear" para limpar a tela (ou CTRL+L), então, fique à vontade para utilizá-los, como agora, você deve estar com o seu terminal cheio de informações, apenas limpe a tela digitando: clear.


O nosso próximo passo é extrair o conteúdo do arquivo compactado do Kernel que você baixou para uma pasta específica.

Mude para a pasta de download

Lembra que eu tinha comentado para colocarmos o arquivo dentro de uma pasta chamada "kernel", que por sua vez estava dentro da pasta "Downloads"? Vamos precisar ir até ela com o comando:
cd ~/Downloads/kernel/
Uma vez dentro dela, rode o "ls" para ver se o arquivo está ali. No nosso exemplo o arquivo se chama linux-4.12.tar.xz, este tipo de arquivo é um arquivo compactado como qualquer outro .rar ou .zip, porém, ele usa a compactação tar.xz, vamos precisar extrair os arquivos dele e vamos fazer pelo terminal, assim já podemos direcioná-lo diretamente para a pasta /usr/src/ que é onde ele deve ficar para continuarmos. À partir de agora, vamos entrar em modo root e fazer tudo desta forma, então rode o comando:
su root
Digite a sua senha e você já deve estar como root, se você estiver usando o Bash, o indicativo para isso é que você terá um "#" no lugar do "$" no terminal:

Compilando Kernel

Agora vamos extrair o conteúdo do arquivo e direcioná-lo para o diretório desejado:

Dica: use o tab para autocompletar os comandos, por exemplo, ao invés de digitar linux-4.12.tar.xz, apenas digite "li" e pressione tab. Funciona em vários outros momentos também.


Compilando Kernel

Comando:
tar -xvf linux-4.12.tar.xz -C /usr/src/
Se tiver dúvidas sobre o comando tar, você pode verificar a sua página de ajuda digitando: tar --help. A extração deverá demorar alguns segundos, então aguarde o processo terminar, quando isso acontecer você deverá ver uma tela semelhante a esta:

Compilando Kernel

Agora vamos conferir se realmente os arquivos foram parar no lugar certo. Até agora você poderia ter feito tudo em modo gráfico, mas metade da graça de compilar o Kernel está em usar comandos até pra descompactar arquivos, certo? 😂

Arquivos para compilação do Kernel

Comandos:
cd /usr/src/
ls
Você deverá ver um diretório com o nome de "linux-4.12".

Aqui vai uma dica que pode facilitar um pouco, e se ao invés de ficar digitando toda a vez "linux-4.12" você chamasse ele apenas de "linux" ou de "kernel", ou ainda de "meganfox"? Vamos criar um link símbolo pra ele, assim você não precisa digitar mais de uma palavra ou perder tempo digitando mais caracteres:

Criando link simbólico

Comando:
ln -s linux-4.12 linux
Olha que beleza? Agora quando você acessar o diretório "linux" ele vai entrar dentro de linux-4.12. Se você der um novo "ls" vai perceber a existência de um diretório chamado "linux". Vamos entrar nele também:

Dica: O Linux é "Case sentivive", isso significa que o seu sistema operacional diferencia letras maiúsculas de minúsculas, um diretório chamado 'Linux" é diferente de outro chamado "linux", que por sua vez é diferente de outro chamado "LInux" e por aí vai. Então preste atenção para digitar os comandos e diretórios exatamente como são os seus nomes.

compilando Kernel Linux

Comandos:
ls
E observe a presença do link "linux".
cd linux
Para mudarmos para dentro do diretório "linux"
ls
Novamente para listar os arquivos contidos dentro da pasta.

Agora é que começa a compilação propriamente dita. O próximo passo é um dos mais importantes e determinantes da hora de compilar um Kernel Linux:

Configuração do Kernel

Comando:
make menuconfig
Esse comando irá rodar e carregar uma espécie de interface onde você poderá fazer vários ajustes, se você quiser, é claro:

Dica: Nesta opção, você pode escolher copiar o arquivo de configuração do seu kernel atual também, bastando confirmar quando o utilitário lhe pedir, entretanto, neste artigo nós vamos dar uma explorada a mais nele.

Compilando Kernel

Aqui, para mim, vale o mesmo conceito do overlock. Você pode ir testando opções até encontrar alguma que fique realmente estável e otimizada para você. Fica difícil eu dizer qualquer coisa aqui para você configurar porque eu não sei exatamente qual o hardware você possui, quais dispositivos você conecta no seu computador, não sei o modelo da sua placa mãe, etc, etc. 

Vale muito à pena você fazer este processo várias vezes e conhecer o seu harware para fazer modificações e testar como tudo vai funcionar. Aqui você pode habilitar e desabilitar drivers por exemplo. Um exemplo que eu posso dar é que você pode, na sessão de drivers, desabilitar o suporte para blobs de drivers proprietários no Kernel, desmarcando a opção, isso talvez agrade quem gosta apenas de software livre.

Compilando Kernel

Cabe a você explorar todas as essas opções (que são muitas), mas atenção, minha recomendação é:

Pesquise tudo o que você deseja alterar para entender o que a opção faz e entender a consequência da sua ação, evite fazer esse tipo de coisa em máquinas de trabalho que não podem ficar paradas e sempre mantenha um kernel extra que você sabe que funciona, como o que veio junto com a sua distro, não o remova, assim você pode voltar pra ele caso tenha algum problema. Estude o seu hardware e veja que recursos você pode habilitar e desabilitar. 

Otimizar um Kernel para você e tê-lo estável por levar algum tempo e algumas tentativas de compilações.

✅ Dica: Leia com atenção a legenda que aparece nesta tela, ela te informa como você navega pelos menus e como marcar e desmarcar as opções.

Como eu não sei qual o seu hardware e nós queremos continuar a nossa experiência com a compilação, vamos apenas usar todas as opções que são padrão. Para isso, sem fazer nenhuma alteração, vamos até a opção "Save" e pressionamos a tecla "Enter".

Compilando Kernel Linux

Ao salvar uma nova tela aparecerá onde você pode escolher o nome do seu arquivo de configuração (esse que você estava editando, ou não, no passo anterior), você pode deixar o padrão mais uma vez ".config" e pressionar "enter" para confirmar:

Compilando Kernel

Depois da configuração estar pronta, uma nova tela vai se abrir com uma única opção para sair, apenas confirme pressionando "enter" mais uma vez.

compilando kernel

Isso vai te levar para a primeira tela do menu de configuração, agora é só você sair, selecionando a opção "Exit":

compilando kernel

Voltamos ao nosso terminal mais uma vez, você pode dar um "clear" para deixar ele limpo novamente. O que vamos fazer agora é puramente para informação e praticidade. 

Vamos alterar um pouco o nome do Kernel, nada demais, de "leve na neve", só pra gente saber que essa é a nossa versão compilada.

Uma informação importante que você pode inserir aqui é qual a versão da compilação que você está fazendo, assim dá pra ir testando várias formas diferentes e iniciar pelo Kernel que você quiser depois pelo GRUB.

Você pode usar aqui qualquer editar de texto (em modo texto ou gráfico), eu estava na intenção de usar o VIM, porém, ele não vem instalado no Linux Mint (talvez na sua distro ele venha), em compensação eu tenho pré instalado o nano e o vim.tiny (versão mais enxuta do dito cujo), que vai servir também, afinal, eu só quero mudar uma linha no arquivo de configuração. Se você quiser pode instalar o VIM ou qualquer outro.

Escolha o que você preferir e vamos editar o arquivo:

compilando Kernel

Comando:
vim.tiny /usr/src/linux/Makefile
O que eu quero mudar neste arquivo é a descrição em EXTRAVERSION:

Configurando Makefile

Navegue com o seu teclado até lá e coloque a informação que desejar, eu vou colocar diocomp1, que para mim significa "Diolinux Compilação 1", afinal, como eu disse, eu posso fazer várias compilações do mesmo kernel e ir testando, assim na próxima vez que fizer poderei colocar diocomp2 e assim por diante, ficando mais simples para identificar cada uma.

Para salvar e sair no VIM você deve pressionar a tecla "ESC" até que a palavra "INSERT" suma ali de baixo, e digitar:
:wq
Não esqueça dos dois pontos, o W serve para salvar a sua edição e o Q para sair. Se você quiser aprender mais sobre o VIM e sobre o terminal, confira o nosso curso de Bash no Diolinux EAD, ele tem um módulo bônus somente sobre o VIM.

Próximo passo, gerando a imagem bzImage:

gerando imagem

Comando:
make bzImage
Se liga aí no "I" maiúsculo. Nesta parte eu tive esse problema, como você pode ver, só ocorreu no Linux Mint/Ubuntu, no Debian foi de boa. Isso era a falta de um pacote no sistema que você resolve com:
apt install libssl-dev
Essa parte demora meu jovem, então vá dar uma caminhada ou tomar aquele seu café, deixe apenas o terminal trabalhando, procure fechar as outras aplicações pois a compilação consome recursos da máquina, memória e processador especialmente, e quanto mais livre ela estiver, mais rápido tende a ser. Sugestão, aproveita e assiste um episódio de Bates Motel na Netflix, a série é muito legal. 

Ao terminar o processo, você deve ver uma tela semelhante a esta:

Compilação do Kernel Linux

Se tudo deu certo, você deverá ter uma imagem dentro do diretório de boot, que é um subpasta dentro da sua pasta "linux", para verificar isso rode o seguinte comando:
ls /usr/src/linux/arch/x86_64/boot/
A arquitetura ali no meio do comando (x86_64) depende do tipo do kernel que você está compilando, de 32 ou 64 bits. Você deverá ver algo como isto:

Compilando Kernel

O próximo passo vai compilar os módulos do seu Kernel, o que inclui os drivers que você selecionou lá no menu de configuração:

make modules

Comando: 
make modules
Dependendo da quantidade de módulos habilitados esse processo também pode demorar pra caralho um bocado, espere pacientemente. (Ou fique louco, mas acho que isso não vai ajudar em nada). No meu caso demorou pouco mais de 1 hora e meia, mas isso depende da potência do seu hardware. Ao término você deverá ver uma tela como esta:

Compilando Kernel

 É bom você deixar um bom espaço livre também na sua partição / ou na /usr, dependendo de como você particionou, essa compilação genérica gerou quase 14 GB de dados.

Agora com os modulos compilados, vamos precisar instalá-los:

Make modules_install

Depois do processo terminar, você verá uma tela semelhante a esta:

Compilação do Kernel

Agora vamos instalar o Kernel que você acabou de compilar:

Instalando o kernel compilado

Comando:
make install
Ao terminar de executar esta tarefa, você deverá ver uma imagem semelhante a esta:

instalando o novo kernel
Alguns erros que aparecem nessa tela ocorrem por conta do VirtualBox
Agora precisamos mudar de diretório para rodar mais um comando que vai criar a nossa imagem de inicialização do Kernel:

configurando imagem de inicialização

Comando:
cd /boot
Uma vez dentro deste diretório, rodaremos os seguintes comando:

nome do kernel

Comandos:
ls /lib/modules/
Esse comando vai servir pra termos certeza do nome do nosso kernel, como você pode ver na segunda linha da  imagem acima, o kernel que compilamos tem o nome de "4.12.0diocomp1", vamos precisar deste nome no comando a seguir, que é:
mkinitramfs -o initrd.img-4.12(use o tab para completar) (nome do kernel) 
No meu exemplo ficou como na imagem acima:
mkinitramfs -o initrd.img-4.12.0diocomp1 4.12.0diocomp1 
Preste atenção, pois este comando deve ser rodado dentro do diretório /boot.

Este comando não deve te retornar nada no terminal, ele apenas vai "rodar", por assim dizer.

Estamos chegando perto do final, precisamos fazer com que o GRUB reconheça o nosso novo kernel para que possamos reiniciar a máquina utilizando ele, para que isso aconteça é necessário atualizar a lista de sistemas/kernels que estão listadas no menu do GRUB (Aquele carinha que aparece na inicialização do computador). 

Esse passo pode variar um pouco de acordo com o sistema que você estiver utilizando, Debian, Ubuntu, Mint, etc tem uma shell script nativo do sistema que faz essa atualização através do comando:

Compilando Kernel

Comando:
update-grub
Eventualmente a sua distro pode ter outro método de fazer este mesmo passo, então vale a pena consultar a documentação do sistema caso o comando não funcione. 

Repare na imagem acima, nós já temos a imagem do kernel e do initrd encontradas com a nossa compilação, esse comando não demora muito e ao terminar, nós já temos tudo pronto para começar a utilizar e testar o nosso kernel compilado.

Agora você pode reiniciar o computador para testar o novo Kernel compilado por você mesmo, se funcionar eu sei que você vai estar se sentindo um Elliot da vida, mas vamos para o teste definitivo. 

Reinicie como você preferir, se quiser fazer pelo terminal, apenas digite:
reboot
Se o seu computador tem apenas um sistema operacional instalado, ele deve carregar automaticamente o seu kernel, caso ele seja o mais recente instalado, caso você tenha mais de um sistema, você verá o GRUB, onde fica fácil de você identificar se o seu novo kernel está listado para iniciar.

GRUB com kernel compilado

Caso o GRUB não apareça para você, basta ficar pressionando a tecla "Shift" na inicialização do computador, depois selecione o modo avançado e você verá uma imagem semelhante a esta, com o seu kernel como opção para inicializar.

Bastar pressionar "enter" para inicializar pelo Kernel desejado.

Se tudo deu certo, seu computador vai funcionar normalmente, uma vez na área de trabalho você pode conferir se você está usando o Kernel correto rodando o seguinte comando:

verificando o novo kernel compilado

Comando:
uname -romi
ou
uname -r 
Pronto meu amigo ou minha amiga, você acabou de compilar o Kernel Linux! Não foi tão difícil foi? 

É só preciso de um pouco de atenção e paciência. 😎

Como eu quero deixar as coisas mais completas, eu vou te ensinar a voltar para o kernel da sua distro e remover o seu kernel compilado, caso você queira. Existem várias formas de editar o GRUB para você escolher com qualquer kernel ou sistema você quer inicializar por padrão, mas vamos tomar de exemplo que por qualquer motivo você não queira mais o seu kernel compilado e você queira usar o a sua distro te oferece.

Removendo o seu kernel compilado

Reinicie o seu computador mais uma vez e na tela do GRUB selecione outra versão do Kernel que não seja a sua compilação, dê preferência pela mais recente, fora a sua.

grub customizer

No meu caso seria a versão "4.8.0-53-generic", que é a entrada que está marcada logo acima no meu GRUB, selecione a opção e dê "enter", assim você vai inicializar por este kernel. Essa dica é bacana em vários casos, existem opções de recuperação do sistema que aparecem ali que nem todos conhecem. Eu recomendo que você veja este vídeo onde eu expliquei como funcionam estas opções, vale a pena.

Seu sistema deve iniciar normalmente e está pronto para fazermos a remoção. Como nós fizemos a compilação "na unha", como se diz, a remoção vai ter que ser também, existem alguns arquivos e diretórios que você precisa apagar, que são os arquivos do seu kernel compilado, são eles:

/boot/vmlinuzNOME-DO-SEU-KERNEL 
/boot/initrdNOME-DO-SEU-KERNEL
/boot/System-mapNOME-DO-SEU-KERNEL
/boot/config-NOME-DO-SEU-KERNEL
/lib/modules/NOME-DO-SEU-KERNEL/
/var/lib/initramfs-tools/NOME-DO-SEU-KERNEL/ ou /var/lib/initramfs/NOME-DO-SEU-KERNEL/

Entre como root novamente, como você fez para compilar e rode os seguintes comandos:

removendo kernel compilado

Comandos (como root):
cd /boot
Vamos entrar em /boot para limpar os arquivos ali primeiro, depois use o "ls" para listar os arquivos e diretórios dentro desta pasta, assim você pode ver o nome do kernel que você compilou, fica fácil de reconhecer por conta da modificação que fizemos no nome "lá atrás", quanto editamos o arquivo de configuração. Todos os arquivos tem a versão do nosso kernel compilado (4.12 no nosso exemplo) e as informações que colocamos em EXTRAVERSION, no exemplo eu coloquei diocomp1. 

Para remover vamos usar o comando ''rm", como está na imagem acima, sendo assim, o comando ficaria:
rm vmlinuz-4-12.0diocomp1 inird.img-4.12.0diocomp1 System.map-4.12.0diocomp1 config-4.12.0-diocomp1
Lembre de colocar a SUA VERSÃO do kernel, com o nome que você deu pra ele.

Rodando o comando e dando um novo "ls" você verá que os arquivos foram apagados:

removendo kernel compilado

Precisamos remover mais algumas coisas ainda antes de atualizamos o GRUB novamente. 

Precisamos mudar de diretório primeiro:

removendo kernel antigo

Comandos:
cd /lib/modules/
Primeiro mudamos para o diretório dos módulos, uma vez dentro dele, rodando o "ls" para vermos o conteúdo novamente. Certamente você encontrará outro diretório com o nome da sua compilação do kernel, no exemplo temos "4.12.0diocomp1", temos de removê-lo também:
rm -rf NOME_DO_SEU_KERNEL 
No meu exemplo ficou:
rm -rf 4.12.0diocomp1/ 
Repare que diferente de quanto apagamos os arquivos no diretório /boot, aqui usamos um parâmetro para o "rm", o "-rf", ele serve para apagar pastas e arquivos de forma recursiva, se você usar apenas o "rm", o comando não consiguirá apagar a pasta porque ela não está vazia.

Se você der um novo "ls" depois de apagar a sua pasta, você verá que ela não existe mais.

Agora só falta pagar mais um arquivo.

removendo kernel compilado

Comandos:
cd /var/lib/initramfs/
ou
cd /var/lib/initramfs-tools/
Aqui eu tive uma "surpresa", da última vez que eu tinha compilado um kernel o diretório se chamava apenas de "initramfs", mas acabei descobrindo que ele ganhou um sufixo extra "initramfs-tools", não sei dizer quando isso mudou, mas pesquisando eu encontrei referências de 2014/2015, também não sei dizer se isso é uma particularidade do Linux Mint, que eu estou usando neste tutorial, de qualquer forma achei o diretório e você também o achará.

Dentro dele você pode dar mais um "ls" para ver o há por ali, mais uma vez você deve encontrar o seu kernel compilado, basta remover o arquivo como você fez com os arquivos em /boot.
rm NOME_DO_SEU_KERNEL
No meu exemplo:
rm 4.12.0diocomp1 
Depois, precisamos atualizar o GRUB novamente para que ele remova a entrada do kernel compilado, caso contrário ao tentar iniciar o computador por ele você terá uma bela tela de erro.
 update-grub

Como atualizar o grub

Ao fazer a atualização do GRUB, repare que o kernel compilado sumiu das entradas.  Ao reiniciar você pode até olhar no GRUB para conferir que o kernel compilado não existe mais.

grub sem kernel compilado

Se tiver ainda dúvidas, ao chegar na sua área de trabalho consulte novamente via terminal:

uname -r

Como você pode ver, voltamos ao kernel generic.

Finalizando


Este é provavelmente um dos maiores tutoriais que eu já pude escrever aqui no blog e também um dos assuntos mais "complexos" abordados. A maior parte das vezes que vi tutoriais à respeito do assunto eles não eram tão "passo a passo" e raramente ensinavam a remover o kernel compilado, espero que eu tenha conseguido cumprir o meu objetivo de desmistificar um pouco essa questão e mostrar que não é tão complicado quanto a maior parte das pessoas pensa.

Não precisa ser nenhum gênio para compilar um kernel, como você pôde ver, entretanto, a parte diferencial pode ser a otimização para o seu hardware e neste caso você terá de fazer um estudo particular sobre a sua situação e entender o que você pode alterar que poderá te dar algum benefício.

Eu escrevi este artigo com muita dedicação e carinho, porém, ele não está isento de erros, mesmo que eu tenha conferido algumas vezes todo o processo (em mais de uma distro), caso você encontre erros de português, erros no processo da compilação ou tenha sugestões, use os comentários para colaborar e engrandecer o material, certamente será de grande ajuda.

Compartilhe para os seus amigos como forma de pagamento pelo conteúdo e até a próxima! :)

Matamos mais um leão, hein? 😁

_____________________________________________________________________________
Viu algum erro ou gostaria de adicionar alguma sugestão a essa matéria? Colabore, clique aqui.




Confira:
Blog Diolinux © all rights reserved
made with by templateszoo