TecnoLoga
Open source em língua portuguesa
2013-03-07
Dwarf Fortress: O jogo mais difícil do mundo?
Ars Technica tem um artigo interessante sobre um jogo que deve ser tão interessante como difícil: Dwarf Fortress.
É um jogo em ascii art de enorme complexidade, e parece ser praticamente impossível começar a realmente percebê-lo sem o jogar pelo menos 120 vezes, segundo reporta um jogador.
2013-02-24
Linux Radical Parte III: Comparar LFS, Gentoo e Arch Linux
Gentoo Linux é a terceira distribuição Linux que vamos rever e possui também as suas potencialidades.
Nos posts anteriores desta série vimos o Arch Linux e o LFS (Linux From Scratch).
A primeira coisa que descobrimos é que Gentoo é de longe a distro mais difícil de instalar!
A ideia é aprendermos alguma coisa com o processo. Mas, será que iremos aprender mais com o Gentoo do que com o Arch?
Existem várias opções para iniciar a instalação - optamos por uma imagem com sistema Gentoo mínimo que, com acesso à net, é usado para realizar a instalação de todo o sistema.
O processo tem algumas semelhanças com o Arch Linux, mas este último é mais fácil de instalar. A grande vantagem do Gentoo é a capacidade de otimização, já que todo o código é compilado durante o processo de instalação.
Agora ficamos em dúvida se é Gentoo ou LFS a distro mais radical de todas!
Com o Virtualbox, criamos uma nova máquina indicando o ficheiro ISO como CD-ROM virtual introduzido no leitor.
O primeiro passo, obtendo a linha de comandos, é aceder à net.
Automaticamente tivemos acesso à net via eth0, embora o computador hospedeiro esteja conetado via wireless em wlan0.
Caso não fosse possível, o comando net-setup eth0 ajudaria.
Para quem tem ligação ADSL e necessita de configurar, os comandos são:
pppoe-setup
pppoe-start
Segue-se a preparação do disco onde será instalado o sistema. Num ambiente Linux moderno, os discos SCSI e Serial ATA, e mesmo IDE, são representados em /dev/sda, /dev/sdb, etc.
Antigamente os discos IDE surgiam em /dev/hd* mas com novo framework no kernel (libata), a designação foi normalizada.
O disco pode ser usado na sua totalidade, mas é normal particioná-lo em vários dispositivos, chamados partições.
As partições recomendadas são:
Uma partição de inicialização /dev/sda1 com sistema de ficheiros ext2, tamanho 32MB.
Uma partição /dev/sda2 de 512M para swap (gravação temporária quando a memória RAM não é suficiente)
E uma partição /dev/sda3 de sistema ext4 para o resto do disco. Esta partição terá o sistema operativo e dados.
Pode-se usar o fdisk ou o parted, mas vamos usar o cfdisk. Ao ser chamado, mostra em cima o nosso disco /dev/sda:
(Entrar no cfdisk:)
cfdisk ENTER
(Criar primeira partição:)
ENTER ENTER
32
ENTER ENTER ENTER
(Segunda:)
CURSOR-DOWN
ENTER ENTER
512
ENTER ENTER
CURSOR-RIGHT (6x até "Type")
ENTER
82 (Linux Swap / Solaris)
ENTER
(Terceira:)
CURSOR-DOWN
ENTER
ENTER
ENTER
(Gravar:)
CURSOR-LEFT (até "Write")
ENTER
yes
ENTER
(Sair:)
CURSOR-RIGHT (até "Quit")
De seguida, temos que criar os sistemas de ficheiros. Cada partição é apenas uma divisão lógica do disco e necessita de ser formatada.
Para a partição boot:
mkfs.ext2 /dev/sda1
Para a partição de sistema e dados:
mkfs.ext4 /dev/sda3
E para ativar a partição de swap:
mkswap /dev/sda2
swapon /dev/sda2
O disco está preparado!
Agora temos que montar as partições. Em Linux não existem letras de drive como no Windows (C:, D: etc), apenas uma única hierarquia de ficheiros.
Um sistema de ficheiros é montado num diretório existente. Para isso podemos criar diretórios vazios e associá-los a dispositivos.
Normalmente, os discos montam-se dentro do diretório /mnt:
mount /dev/sda3 /mnt/gentoo
mkdir /mnt/gentoo/boot
mount /dev/sda1 /mnt/gentoo/boot
Criamos por acaso o diretório /mnt/gentoo pois não existia.
Antes de passarmos a copiar os ficheiros para o novo espaço, convém ver como está a data:
date
Se estiver errada, convém corrigir, usando o seguinte formato:
date MMDDhhmmYYYY
MMDDhhmmYYYY significa: mês em 2 dígitos, dia em dois dígitos, hora em 2 dígitos, minuto em 2 dígitos e ano em 4 dígitos.
Saltamos para o diretório no disco novo:
cd /mnt/gentoo
Isto é para descompactar o arquivo que iremos buscar à net.
Uma "checada" na arquitetura do nosso pc para escolhermos o file certo para baixar.
uname -r
O nosso pc é um i686.
Usamos um navegador web de texto para ir buscar os arquivos:
links http://www.gentoo.org/main/en/mirrors.xml
Com as teclas CURSOR, localizamos um mirror geograficamente mais próximo, no nosso caso o Instituto Superior Técnico, em Lisboa. Normalmente os http são mais rápidos.
Pressionando ENTER, entramos no servidor do instituto para descarregar a "stage3 tarball".
No nosso caso escolhemos a pasta x86 e depois current-stage3.
O nosso arquivo é o stage3-i686-20121213.tar.bz2 correspondendo à arquitetura do computador que vimos atrás.
Com o arquivo selecionado e um ENTER, temos a opção de o baixar para o diretório /mnt/gentoo
São apenas 147 MB.
Para sair do Links, teclas q ENTER
Se fizermos um ls temos aqui o file. Descompacta-se assim:
tar xvjpf stage3-*.tar.bz2
(use a tecla Tab para completar nomes de ficheiros, por exemplo ao escrever stage pressione a tecla Tab)
Uma quantidade de arquivos serão listados à medida que são descompactados.
Passo seguinte: otimizar as opções de compilação.
É aqui que vemos a diferença do Gentoo. Os arquivos que baixamos são código fonte e terão que ser compilados!
Vamos editar um arquivo com o nano:
nano -w /mnt/gentoo/etc/portage/make.conf
Nas CFLAGS, que são parâmetros para o compilador, o -O2 (é letra Ó e não zero) significa o grau de otimização para velocidade. Não vamos mexer aqui porque é o valor ideal.
Para sistemas com muito pouca memória é aconselhável remover o parâmetro -pipe pois ele faz usar pipes nas fases de compilação em vez de arquivos temporários, o que gasta memória e pode quebrar o compilador (gcc).
A arquitetura está correta, é o i686, por isso nada a fazer mais. Saímos do nano com CTRL X
Tudo pronto para a instalação do sistema base, mas antes é melhor escolher um mirror.
O sistema ativo tem uma ferramenta para isso:
mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf
Em alternativa, para escolher um mirror de rsync, usar:
mirrorselect -i -r -o >> /mnt/gentoo/etc/portage/make.conf
(basta usar as teclas CURSOR-DOWN e ESPAÇO para selecionar um mirror próximos de nós)
Com ENTER saimos e a ferramenta configura automaticamente.
Checa-se com ...
nano mnt/gentoo/etc/portage/make.conf
Ao fim surge uma linha adicionada com o nosso mirror.
Estamos prestes a entrar no novo sistema, mas antes é preciso copiar a informação de DNS. Isto é para garantir que vamos manter conetividade:
cp -L /etc/resolv.conf /mnt/gentoo/etc/
E também, para garantir que o ambiente vai funcionar bem, temos que montar os diretórios /proc e /dev
mount -t proc none /mnt/gentoo/proc
mount --rbind /sys /mnt/gentoo/sys
mount --rbind /dev /mnt/gentoo/dev
É agora!
chroot /mnt/gentoo /bin/bash
source /etc/profile
export PS1="(chroot) $PS1"
Isto quer dizer que já estamos no sistema novo, embora a instalação ainda não terminou.
Altura de configurar o Portage. Portage é o gestor de pacotes do Gentoo, a ferramenta que gere quase todo o software instalado.
Ao instalarmos um snapshot de Portage, vamos estar a informar a ferramenta dos títulos de software disponíveis para instalar. A lista varia com o passar do tempo.
É recomendado usar emerge-webrsync para isso:
mkdir /usr/portage
emerge-webrsync
Uma série de arquivos são baixados.
De seguida podemos selecionar que perfil queremos para o sistema, em especial se queremos um sistema desktop ou server:
eselect profile list
eselect profile set 2
Com isto selecionamos um sistema desktop.
A instalação demora! Continuaremos o processo noutro dia.
Entretanto, votos de bom Linux!
Nos posts anteriores desta série vimos o Arch Linux e o LFS (Linux From Scratch).
A primeira coisa que descobrimos é que Gentoo é de longe a distro mais difícil de instalar!
A ideia é aprendermos alguma coisa com o processo. Mas, será que iremos aprender mais com o Gentoo do que com o Arch?
Existem várias opções para iniciar a instalação - optamos por uma imagem com sistema Gentoo mínimo que, com acesso à net, é usado para realizar a instalação de todo o sistema.
O processo tem algumas semelhanças com o Arch Linux, mas este último é mais fácil de instalar. A grande vantagem do Gentoo é a capacidade de otimização, já que todo o código é compilado durante o processo de instalação.
Agora ficamos em dúvida se é Gentoo ou LFS a distro mais radical de todas!
Com o Virtualbox, criamos uma nova máquina indicando o ficheiro ISO como CD-ROM virtual introduzido no leitor.
O primeiro passo, obtendo a linha de comandos, é aceder à net.
Automaticamente tivemos acesso à net via eth0, embora o computador hospedeiro esteja conetado via wireless em wlan0.
Caso não fosse possível, o comando net-setup eth0 ajudaria.
Para quem tem ligação ADSL e necessita de configurar, os comandos são:
pppoe-setup
pppoe-start
Segue-se a preparação do disco onde será instalado o sistema. Num ambiente Linux moderno, os discos SCSI e Serial ATA, e mesmo IDE, são representados em /dev/sda, /dev/sdb, etc.
Antigamente os discos IDE surgiam em /dev/hd* mas com novo framework no kernel (libata), a designação foi normalizada.
O disco pode ser usado na sua totalidade, mas é normal particioná-lo em vários dispositivos, chamados partições.
As partições recomendadas são:
Uma partição de inicialização /dev/sda1 com sistema de ficheiros ext2, tamanho 32MB.
Uma partição /dev/sda2 de 512M para swap (gravação temporária quando a memória RAM não é suficiente)
E uma partição /dev/sda3 de sistema ext4 para o resto do disco. Esta partição terá o sistema operativo e dados.
Pode-se usar o fdisk ou o parted, mas vamos usar o cfdisk. Ao ser chamado, mostra em cima o nosso disco /dev/sda:
(Entrar no cfdisk:)
cfdisk ENTER
(Criar primeira partição:)
ENTER ENTER
32
ENTER ENTER ENTER
(Segunda:)
CURSOR-DOWN
ENTER ENTER
512
ENTER ENTER
CURSOR-RIGHT (6x até "Type")
ENTER
82 (Linux Swap / Solaris)
ENTER
(Terceira:)
CURSOR-DOWN
ENTER
ENTER
ENTER
(Gravar:)
CURSOR-LEFT (até "Write")
ENTER
yes
ENTER
(Sair:)
CURSOR-RIGHT (até "Quit")
De seguida, temos que criar os sistemas de ficheiros. Cada partição é apenas uma divisão lógica do disco e necessita de ser formatada.
Para a partição boot:
mkfs.ext2 /dev/sda1
Para a partição de sistema e dados:
mkfs.ext4 /dev/sda3
E para ativar a partição de swap:
mkswap /dev/sda2
swapon /dev/sda2
O disco está preparado!
Agora temos que montar as partições. Em Linux não existem letras de drive como no Windows (C:, D: etc), apenas uma única hierarquia de ficheiros.
Um sistema de ficheiros é montado num diretório existente. Para isso podemos criar diretórios vazios e associá-los a dispositivos.
Normalmente, os discos montam-se dentro do diretório /mnt:
mount /dev/sda3 /mnt/gentoo
mkdir /mnt/gentoo/boot
mount /dev/sda1 /mnt/gentoo/boot
Criamos por acaso o diretório /mnt/gentoo pois não existia.
Antes de passarmos a copiar os ficheiros para o novo espaço, convém ver como está a data:
date
Se estiver errada, convém corrigir, usando o seguinte formato:
date MMDDhhmmYYYY
MMDDhhmmYYYY significa: mês em 2 dígitos, dia em dois dígitos, hora em 2 dígitos, minuto em 2 dígitos e ano em 4 dígitos.
Saltamos para o diretório no disco novo:
cd /mnt/gentoo
Isto é para descompactar o arquivo que iremos buscar à net.
Uma "checada" na arquitetura do nosso pc para escolhermos o file certo para baixar.
uname -r
O nosso pc é um i686.
Usamos um navegador web de texto para ir buscar os arquivos:
links http://www.gentoo.org/main/en/mirrors.xml
Com as teclas CURSOR, localizamos um mirror geograficamente mais próximo, no nosso caso o Instituto Superior Técnico, em Lisboa. Normalmente os http são mais rápidos.
Pressionando ENTER, entramos no servidor do instituto para descarregar a "stage3 tarball".
No nosso caso escolhemos a pasta x86 e depois current-stage3.
O nosso arquivo é o stage3-i686-20121213.tar.bz2 correspondendo à arquitetura do computador que vimos atrás.
Com o arquivo selecionado e um ENTER, temos a opção de o baixar para o diretório /mnt/gentoo
São apenas 147 MB.
Para sair do Links, teclas q ENTER
Se fizermos um ls temos aqui o file. Descompacta-se assim:
tar xvjpf stage3-*.tar.bz2
(use a tecla Tab para completar nomes de ficheiros, por exemplo ao escrever stage pressione a tecla Tab)
Uma quantidade de arquivos serão listados à medida que são descompactados.
Passo seguinte: otimizar as opções de compilação.
É aqui que vemos a diferença do Gentoo. Os arquivos que baixamos são código fonte e terão que ser compilados!
Vamos editar um arquivo com o nano:
nano -w /mnt/gentoo/etc/portage/make.conf
Nas CFLAGS, que são parâmetros para o compilador, o -O2 (é letra Ó e não zero) significa o grau de otimização para velocidade. Não vamos mexer aqui porque é o valor ideal.
Para sistemas com muito pouca memória é aconselhável remover o parâmetro -pipe pois ele faz usar pipes nas fases de compilação em vez de arquivos temporários, o que gasta memória e pode quebrar o compilador (gcc).
A arquitetura está correta, é o i686, por isso nada a fazer mais. Saímos do nano com CTRL X
Tudo pronto para a instalação do sistema base, mas antes é melhor escolher um mirror.
O sistema ativo tem uma ferramenta para isso:
mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf
Em alternativa, para escolher um mirror de rsync, usar:
mirrorselect -i -r -o >> /mnt/gentoo/etc/portage/make.conf
(basta usar as teclas CURSOR-DOWN e ESPAÇO para selecionar um mirror próximos de nós)
Com ENTER saimos e a ferramenta configura automaticamente.
Checa-se com ...
nano mnt/gentoo/etc/portage/make.conf
Ao fim surge uma linha adicionada com o nosso mirror.
Estamos prestes a entrar no novo sistema, mas antes é preciso copiar a informação de DNS. Isto é para garantir que vamos manter conetividade:
cp -L /etc/resolv.conf /mnt/gentoo/etc/
E também, para garantir que o ambiente vai funcionar bem, temos que montar os diretórios /proc e /dev
mount -t proc none /mnt/gentoo/proc
mount --rbind /sys /mnt/gentoo/sys
mount --rbind /dev /mnt/gentoo/dev
É agora!
chroot /mnt/gentoo /bin/bash
source /etc/profile
export PS1="(chroot) $PS1"
Isto quer dizer que já estamos no sistema novo, embora a instalação ainda não terminou.
Altura de configurar o Portage. Portage é o gestor de pacotes do Gentoo, a ferramenta que gere quase todo o software instalado.
Ao instalarmos um snapshot de Portage, vamos estar a informar a ferramenta dos títulos de software disponíveis para instalar. A lista varia com o passar do tempo.
É recomendado usar emerge-webrsync para isso:
mkdir /usr/portage
emerge-webrsync
Uma série de arquivos são baixados.
De seguida podemos selecionar que perfil queremos para o sistema, em especial se queremos um sistema desktop ou server:
eselect profile list
eselect profile set 2
Com isto selecionamos um sistema desktop.
A instalação demora! Continuaremos o processo noutro dia.
Entretanto, votos de bom Linux!
2013-02-23
ArchBang Linux: configurar teclado português
O ArchBang Linux é uma distribuição fácil de instalar, mas no meu caso tive o problema de configurar o teclado português no Openbox.
Acabei por descobrir que bastou adicionar uma linha a um arquivo de configuração do xorg.
Siga os passos!
Clique com o botão direito no Desktop, selecione Applications, Accessories, LXTerminal.
Escreva:
sudo nano /etc/X11/xorg.conf.d/10-evdev.conf
ENTER
Identifique a seguinte passagem e adicione a linha a vermelho:
Section "InputClass"
Identifier "evdev keyboard catchall"
MatchIsKeyboard "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
Option "XkbLayout" "pt"
EndSection
2013-02-22
Como copiar um disco inteiro, uma pen drive ou cartão SD
É possível fazer uma cópia exata de um disco, CD, DVD, cartão SD ou CF e gravá-lo para um arquivo de "imagem" e depois com esse arquivo (chamado .iso ou .img) gravar um outro disco exatamente igual.
É possível também fazer o mesmo com uma partição de um disco rígido: gravar o seu conteúdo exato para um arquivo e até restaurá-lo em caso de perda de dados.
Para isso existem ferramentas que pegam num arquivo .iso (ou .img) e reproduzem uma cópia total noutro local ou vice-versa.
Hoje vamos falar de um comando potente em Linux para esse efeito, o dd.
Exemplo:
dd if=~/Desktop/imagem.iso of=/dev/sdb bs=1m
Neste exemplo é gravada a imagem.iso que você tem no seu Desktop para um dispositivo que o sistema acessa em /dev/sdb. O til (~) significa "diretório do utilizador atual".
Como descobrir o dispositivo que inseriu no pc?
A questão é saber, quando introduz um cartão SD ou pen, que dispositivo ficou atribuído a esse cartão, pois poderá ser /dev/sdc, /dev/sdd etc. E se houver engano, você pode destruir uma grande quantidade de dados!
Para isso, introduza o drive e faça o comando dmesg para descobrir lendo o que surge no final. Confira com o comando df -h, que lhe mostra inclusivé o tamanho do drive que ligou ao PC.
Tenha ainda em conta que /dev/sdc1 por exemplo é relativo a uma partição, enquanto que /dev/sdc (sem o número) é relativo ao drive na totalidade. Ao gravar, provavelmente quererá usar sem o número porque o seu arquivo iso é imagem de todo o drive.
O comando dd é muito versátil, e provavelmente você já está a magicar, ele faz a operação inversa, também copia discos ou partições inteiras para um arquivo de imagem:
dd if=/dev/sda1 of=/home/pedro/backup_sda1.img
Aqui uma partição inteira é reproduzida para um arquivo do utilizador "pedro".
E não é por acaso, dd significa "Data Duplicator"!
Muitas vezes se usa a piada que dd significa "Data Destroyer" e é verdade, se não tiver cuidado, vai obliterar o seu disco!
É possível também fazer o mesmo com uma partição de um disco rígido: gravar o seu conteúdo exato para um arquivo e até restaurá-lo em caso de perda de dados.
Para isso existem ferramentas que pegam num arquivo .iso (ou .img) e reproduzem uma cópia total noutro local ou vice-versa.
Hoje vamos falar de um comando potente em Linux para esse efeito, o dd.
Exemplo:
dd if=~/Desktop/imagem.iso of=/dev/sdb bs=1m
Neste exemplo é gravada a imagem.iso que você tem no seu Desktop para um dispositivo que o sistema acessa em /dev/sdb. O til (~) significa "diretório do utilizador atual".
Como descobrir o dispositivo que inseriu no pc?
A questão é saber, quando introduz um cartão SD ou pen, que dispositivo ficou atribuído a esse cartão, pois poderá ser /dev/sdc, /dev/sdd etc. E se houver engano, você pode destruir uma grande quantidade de dados!
Para isso, introduza o drive e faça o comando dmesg para descobrir lendo o que surge no final. Confira com o comando df -h, que lhe mostra inclusivé o tamanho do drive que ligou ao PC.
Tenha ainda em conta que /dev/sdc1 por exemplo é relativo a uma partição, enquanto que /dev/sdc (sem o número) é relativo ao drive na totalidade. Ao gravar, provavelmente quererá usar sem o número porque o seu arquivo iso é imagem de todo o drive.
O comando dd é muito versátil, e provavelmente você já está a magicar, ele faz a operação inversa, também copia discos ou partições inteiras para um arquivo de imagem:
dd if=/dev/sda1 of=/home/pedro/backup_sda1.img
Aqui uma partição inteira é reproduzida para um arquivo do utilizador "pedro".
E não é por acaso, dd significa "Data Duplicator"!
Muitas vezes se usa a piada que dd significa "Data Destroyer" e é verdade, se não tiver cuidado, vai obliterar o seu disco!
Como usar um arquivo ISO
Se alguém lhe diz para "queimar" um arquivo ISO, o que significa isso?
Os arquivos ISO são "imagens", elas permitem reproduzir com rigor uma sequência de dados exatamente igual.
Embora se trate de um arquivo normal, ele serve para ser usado na reprodução exata de um sistema de arquivos e não para ser copiado diretamente como faz com as suas fotos!
Para simplificar, imagine que se trata de um disco virtual, onde todos os dados do disco estão exatamente representados nesse arquivo. É como um carimbo, você pode reproduzir um disco as vezes que quiser, ele sai sempre perfeito!
É possível gravar um arquivo .iso (às vezes chamado .img) para um CD-ROM, DVD-ROM, cartão SD/CF ou pen drive.
Isso é realizado através de uma função especial dos softwares de gravação que permitem indicar uma fonte (arquivo de imagem ISO), um suporte de destino e ter essa imagem gravada no suporte.
Se tem um arquivo ISO e pretende gravar...
... em pen USB ou cartão SD ou cartão CF em Windows, use o Win32DiskImager.
... em CD ou DVD em Windows, use o Ashampoo Burning Studio ou o seu software gravador de DVD favorito (procure uma função do género "Burn image to disc")
... em pen USB ou cartão SD ou cartão CF em Linux, aprenda um pouco sobre o comando dd, é muito fácil (mais informação, clique aqui)
... em CD ou DVD em Linux, instale o Brasero ou o K3b através do seu gestor de pacotes favorito (Synaptic, etc.)
Se o seu arquivo ISO é um sistema operativo, pode usá-lo ou experimentá-lo diretamente no Virtualbox, indicando nos dispositivos de armazenamento esse disco virtual.
Isso permite testar ou conhecer um sistema antes que "queime" um DVD!
Os arquivos ISO são "imagens", elas permitem reproduzir com rigor uma sequência de dados exatamente igual.
Embora se trate de um arquivo normal, ele serve para ser usado na reprodução exata de um sistema de arquivos e não para ser copiado diretamente como faz com as suas fotos!
Para simplificar, imagine que se trata de um disco virtual, onde todos os dados do disco estão exatamente representados nesse arquivo. É como um carimbo, você pode reproduzir um disco as vezes que quiser, ele sai sempre perfeito!
É possível gravar um arquivo .iso (às vezes chamado .img) para um CD-ROM, DVD-ROM, cartão SD/CF ou pen drive.
Isso é realizado através de uma função especial dos softwares de gravação que permitem indicar uma fonte (arquivo de imagem ISO), um suporte de destino e ter essa imagem gravada no suporte.
Se tem um arquivo ISO e pretende gravar...
... em pen USB ou cartão SD ou cartão CF em Windows, use o Win32DiskImager.
... em CD ou DVD em Windows, use o Ashampoo Burning Studio ou o seu software gravador de DVD favorito (procure uma função do género "Burn image to disc")
... em pen USB ou cartão SD ou cartão CF em Linux, aprenda um pouco sobre o comando dd, é muito fácil (mais informação, clique aqui)
... em CD ou DVD em Linux, instale o Brasero ou o K3b através do seu gestor de pacotes favorito (Synaptic, etc.)
Se o seu arquivo ISO é um sistema operativo, pode usá-lo ou experimentá-lo diretamente no Virtualbox, indicando nos dispositivos de armazenamento esse disco virtual.
Isso permite testar ou conhecer um sistema antes que "queime" um DVD!
Linux Radical Parte II: Comparar LFS, Gentoo e Arch Linux
Neste segundo post continuamos a série que compara LFS, Gentoo e Arch Linux.
No primeiro post espreitamos o LFS, hoje vamos ver o Arch Linux.
O documento "The Arch Way" começa com a ideia de simplicidade, citando Leonardo da Vinci: "A simplicidade é a derradeira forma de sofisticação", assegurando que a simplicidade é o objetivo absolutamente principal deste projeto.
Descobrimos que, genericamente, Arch Linux é uma maravilha, um sistema muito elegante, independente, versátil e minimalista.
Das três distribuições em análise, Arch Linux parece ser a mais prática: ela instala um sistema básico e rápido, que podemos extender com um gestor de pacotes estilo yum ou apt chamado pacman.
A sua elegância é conseguida evitando ferramentas redundantes e dando privilégio à linha de comandos para a configuração de todo o sistema.
Afinal, se as interfaces gráficas manipulam estas configurações, porque não evitar problemas com ferramentas intermediárias e realizar as configurações manualmente? Pode ser menos intuitivo mas aprende-se muito mais!
Além disso, a ideia de "intuitivo" é cheia de falsidade: qualquer coisa é intuitiva sob efeito do hábito. Mas... basta de filosofia! Para quem usa Ubuntu ou Fedora e está farto de ver o computador lento, o Arch Linux é ar fresco e puro!
Se a instalação manual for demais, ainda assim pode beneficiar da leveza do Arch: há uma distribuição derivada chamada Archbang, com um instalador mais fácil e um ambiente gráfico preparado.
O Arch Linux existe para arquiteturas i386 e x86_64, ou seja, PC's de 32 bits e 64 bits. Parte do interesse que tenho pelo Arch, é que há também um projeto paralelo que distribui o Arch em plataforma ARM.
Tudo começa com o descarregamento do ficheiro ISO, que pode ser "estampado" num CD-ROM, gravado para um cartão SD ou pen com o comando "dd", ou usado como CD virtual introduzido no VirtualBox. O mesmo ficheiro permite instalar tanto em arquitetura 32 bits como 64 bits.
Ao iniciar o live system um menu de arranque diz-nos: "Uma distribuição linux leve e simples".
E é verdade, especialmente para quem gosta de mexer em sistemas, porque o sistema de arranque deixa-nos numa linha de comandos para que o possamos instalar!
Mas não é difícil: o wiki no site do Arch tem tudo o que é preciso, todos os passos para terminarmos com êxito a instalação, que é feita comando a comando. É só seguir o guia de instalação.
Teclado maluco? Para muitos países, o teclado não vai a funcionar bem logo à partida: alguns carateres vão aparecer trocados, por isso faz-se um:
cd /usr/share/kbd/keymaps/i386/qwerty
(no meu caso é i386 porque é um pc 32 bits, e qwerty porque é um teclado QWERTY obviamente)
Fazendo um ls, vemos que o teclado português usa o mapeamento de teclas pt-latin9:
loadkeys pt-latin9
O guia de instalação inicia com um conjunto de passos que são explicados em detalhe em páginas próprias. A ideia foi seguir com rigor as instruções, saltando para as páginas de detalhe sempre que necessário e retomando no ponto em que se ficou.
Basicamente o sistema "live" serve para ter os comandos necessários para criarmos um sistema de ficheiros iniciável com o Arch.
Daí que o próximo passo lógico foi criar um sistema de ficheiros, com partições e formatar as partições.
Aqui é preciso saber se o PC usa UEFI ou BIOS. O meu é mais antigo, usa BIOS e, como tenho interesse nas plataformas ARM, o UEFI é coisa que pessoalmente não me interessa.
De qualquer forma, achei que o melhor foi usar o comando cfdisk, que permite rapidamente apagar partições, adicionar novas, marcá-las para boot, e definir o tipo de cada partição, neste caso Linux.
Criei uma partição primária de 8GB e nenhuma de swap. A ideia é que vou preferir usar um ficheiro de swap, que é de tamanho variável e por isso mais adaptado a sistemas com pouca capacidade de disco.
Marquei a partição como "bootable". No meu caso, o disco ficou acessível em /dev/sda e, ao criar partições, o sistema atribui números a cada uma, /dev/sda1 para a primeira, /dev/sda2 para a segunda, etc.
Significa que, ao trabalharmos numa partição usamos o número, mas se estamos a trabalhar ao nível de disco, não usamos o número.
No cfdisk, não esquecer de fazer "Write" antes de sair, ou todas as alterações que fazemos ficam perdidas.
De seguida foi preciso formatar a partição: mkfs -t ext4 /dev/sda1
E começa a parte interessante: a ideia é usar o nosso sistema live para instalar o novo sistema nessa partição.
No Linux não existem drives, o que se faz é "montar" um sistema de ficheiros num diretório qualquer. No nosso caso montamos a nova partição em /mnt:
mount -t ext4 /dev/sda1 /mnt
Se fizermos cd /mnt e depois ls vemos um diretório "lost+found", o que significa que já estamos a navegar no nosso novo sistema de ficheiros.
O Arch já vem com um serviço DHCP para obter um ip na rede local - se há um cabo de rede ligado ele entra na net automaticamente. Senão, é preciso usar o comando wifi-menu para ligar à net.
Isto porque o novo sistema será totalmente obtido da net.
O passo seguinte é a instalação do sistema-base. E para isso é boa ideia editar /etc/pacman.d/mirrorlist para colocarmos em primeiro lugar um "mirror" geograficamente perto de nós e assim tudo ser mais rápido.
O vi antigo é muito limitado mas vamos usá-lo por enquanto:
vi /etc/pacman.d/mirrorlist
(No Linux, use a tecla Tab para completar os comandos à medida que os escreve)
Localiza-se a linha com o "Server" que queremos, colocando lá o cursor de texto. Basta escrever /Portugal ENTER para encontrar.
2dd
(Isto corta fora as duas linhas a que se refere o servidor em Portugal. O cursor deverá estar localizado na primeira linha a cortar).
Movemos o cursor para o topo do ficheiro e tecla p - as duas linhas aparecem nesse sítio.
Para gravar:
:wq ENTER
Tudo a postos para instalar o sistema base:
pacstrap /mnt base base-devel
E começam a chegar os files...
Confirma-se: o Arch Linux é muito, muito leve! A ideia aqui começa a ficar mais clara: estamos a usar um sistema para criar um sistema!
Em 3 minutos o sistema de ficheiros ficou instalado, basta ver com ls /mnt
Para que o sistema seja encontrado ao iniciar o pc, de seguida temos que instalar o boot loader e é preciso ter em conta se o pc é 32 bits, 64 bits, BIOS ou EFI.
No meu caso (BIOS, 32 bits), em vez do GRUB usei o syslinux, por nenhum motivo em especial:
arch-chroot /mnt pacman -S syslinux
arch-chroot /mnt /usr/sbin/syslinux-install_update -i -a -m
Seguidamente gerei o ficheiro fstab:
genfstab -p /mnt >> /mnt/etc/fstab
A ideia agora é "entrar" no novo sistema para acabar as configurações. Isso é feito com o comando arch-chroot, que muda a raíz do sistema para o novo sistema:
arch-chroot /mnt
Isto permite-nos "ver" e funcionar como se já estivéssemos a usá-lo.
Fazendo ls estamos a ver o novo sistema de ficheiros.
vi /etc/hostname
(tecla i)
teste
(tecla Esc)
:wq
ln -s /usr/share/zoneinfo/Europe/Lisbon /etc/localtime
vi /etc/locale.conf
(tecla i) Adicionar:
LANG="en_US.UTF-8"
LC_COLLATE="C"
LC_TIME="pt_PT.UTF-8"
(tecla Esc)
:wq
ENTER
vi /etc/locale.gen
/pt_PT
ENTER
Aqui, remover carater # movendo para lá o cursor e carregando na tecla x.
/#en_US
ENTER
Remover # também com a tecla x.
(em caso de erro, a tecla "u" desfaz sucessivamente as alterações)
Gravar com:
:wq
ENTER
Gerar locais:
locale-gen
ENTER
Agora temos que definir o mapa de carateres para as consolas (terminais).
cd /usr/share/kbd/keymaps/i386/qwerty
cp pt-latin9.map.gz personal.map.gz
...e declarar a configuração:
vi /etc/vconsole.conf
(tecla i)
KEYMAP=personal
(tecla Esc)
:wq
ENTER
Gerar o ramdisk inicial:
mkinitcpio -p linux
Criar uma password para administrador de sistema (root):
passwd root
Sair do ambiente chroot:
exit
ENTER (ou CTRL+D)
Desmontar partição do novo sistema:
umount /mnt
Com isto temos todo o sistema pronto e basta remover o CD ou drive com o sistema live para que não inicie mais.
shutdown -h now
A ideia é que o novo sistema vai ser iniciado, e não o "live" que estivemos a usar até agora.
Resultado? Mau!
O sistema está a tentar iniciar em /dev/sda3 e tenho-o em /dev/sda1...
Se alguma coisa correr mal, como é o caso, é simples: basta voltar a iniciar o sistema "live" e montar a partição do sistema novo para resolver algum problema.
Foi o que fizemos:
loadkeys pt-latin9
(Nota: a tecla de - está no lugar de apóstrofe!...)
mount -t ext4 /dev/sda1 /mnt
O problema é óbvio: configuramos mal o syslinux (boot loader).
cd /mnt/boot/syslinux
vi syslinux.cfg
(no sítio de /dev/sda3, por cima do caracter 3 faz-se r1 para substituir o carater por 1)
:wq
shutdown -h now
(remover o live system)
Done!
Em user colocamos root
Agora temos que criar um user normal:
useradd operador
passwd operador
A partir de agora... é conhecer o pacman para instalar tudo o que precisamos.
São milhares de pacotes à disposição que fazem do Arch o sistema completo para o que necessitamos.
Depois da instalação...
Depois de todos estes passos, verifiquei que o sistema não estava a conetar à internet e dois pacotes seriam úteis.
Como não tinha acesso à net para instalar pacotes, voltei ao live system para fazer:
loadkeys pt-latin9
mount -t ext4 /dev/sda1 /mnt
arch-chroot /mnt
pacman -S dialog
pacman -S net-tools
exit
reboot
Isto é mais um exemplo de como nunca ficamos prisioneiros do sistema! Temos sempre a versão live que serve de emergência.
2013-02-19
Linux Radical Parte I: Comparar LFS, Gentoo e Arch Linux
Embora Ubuntu seja a distribuição Linux mais conhecida para o utilizador final, os profissionais e hobbyistas extremos optam por distribuições menos conhecidas mas com outras grandes vantagens.
Porquê gastar tempo com isso? Quais são os problemas principais de distribuições como Fedora, Debian e Ubuntu?
Por um lado elas têm um processo que não incentiva a conhecer o sistema mas apenas a usá-lo, por outro instalam quase tudo o que você não usa. E utilizam quantidades relativamente grandes de recursos, numa altura em que a poupança energética é importante.
A vantagem principal destas distribuições é óbvia: apresentam um sistema com tudo pronto a funcionar.
Nesta série de posts vamos analisar três distribuições "extremas" que são muito apetecíveis: são elas a LFS, Gentoo e Arch, cada uma diferente mas aliciante.
Neste post vamos resumir a LFS, que, como veremos não é propriamente uma "distro".
Leia também: Parte II: Arch Linux e Parte III: Gentoo (em breve).
LFS (Linux From Scratch)
Adeptos da LEGO(tm), rejubilem!
O LFS é um projeto educativo, uma distribuição em forma de... documentação (!!!) que mostra como construir o sistema peça por peça e passo a passo. É a mais radical de todas e a que mais "abre os olhos" aos novos administradores de sistema!
OK, pode ser batota dizer que é uma distribuição, mas considere que é uma distro "manual" pois acaba por ter o sistema instalado completo.
O projeto evoluiu de um livro para vários livros, que ensinam como criar um sistema seguro, um LiveCD, etc.
O sistema é construído usando uma distribuição já existente que providencia as ferramentas necessárias: um compilador, um linker, um terminal, etc. Afinal é preciso um programa para fazer um programa e um sistema para fazer um sistema!
Tudo começa com a criação de uma partição de disco, onde será construído o sistema.
Depois é baixado o código fonte das seguintes utilidades: autoconf, automake, bash, binutils, bison, bzip2, check, coreutils, dejaGNU, diffutils, e2fsprogs, expect, file, findutils, flex, gawk, gcc, gdbm, gettext, glibc, gmp, grep, groff, grub, gzip, iana-etc, inetutils, iproute2, kbd, kmod, less, lfs-bootsctipts, libpipeline, libtool, linux, m4, make, man-db, man-pages, mpc, mpfr, ncurses, patch, perl, pkg-config, procps, psmisc, readline, sed, shadow, sysklogd, sysvinit, tar, tcl, tzdata, textinfo, systemd, udev-lfs, util-linux, vim, xz e zlib.
Conforme se compreende, não são usados pacotes pré-compilados, aqui os pacotes são código-fonte puro e baixados do seu "fabricante" original.
Alguns patches são também descarregados e os programas são todos colocados num diretório /tools usando um utilizador normal para compilar, de forma a não destruir o sistema por engano.
A maioria dos pacotes traz um conjunto de testes que é boa ideia executar. Com tudo isto é criado um sistema temporário mínimo em dois passos: primeiro é construída uma cadeia de ferramentas independentes para compilação (compilador, assemblador, linker, bibliotecas e algumas outras utilidades). O segundo passo é construir as restantes ferramentas essenciais.
O pacote binutils contém um linker, um assembler e outras ferramentas. O GCC contém uma coleção de compilador C e C++.
De seguida são disponibilizados os headers do Linux, que é código que expõe a API do kernel para ser usada pela bilblioteca C. Isto é preciso logo de início porque as utilidades necessitam desses dados para que possam compilar.
Glibc é o pacote principal que contém a biblioteca C, providenciando as rotinas básicas para alocar memória, procurar diretórios, abrir e fechar ficheiros, ler e escrever em ficheiros, manipular strings, busca de padrões, aritmética, etc. É também essencial ter isto disponível à partida.
Binutils contêm um linker, um assembler e outras ferramentas para manipular ficheiros-objeto e GCC significa Gnu Compiler Collection.
Assim, sucessivamente, e por determinada ordem, as ferramentas são compiladas a partir diretamente do código-fonte. É comum cada pacote ter várias ferramentas. Por exemplo, util-linux contém as seguintes:
addpart, agetty, blkid, blockdev, cal, cfdisk, chcpu, chkdupexe, chrt, col, colcrt, colrm, column, ctrlaltdel, cytune, delpart, dmesg, fallocate, fdformat, fdisk, findfs, findmnt, flock, fsck, fsck.cramfs, fsck.minix, fsfreeze, fstrim, getopt, hexdump, hwclock, i386, ionice, ipcmk, ipcrm, ipcs, isosize, ldattach, linux32, linux64, logger, look, losetup, lsblk, lscpu, mcookie, mkfs, mkfs.bfs, mkfs.cramfs, mkfs.minix, mkswap, more, mount, mountpoint, namei, partx, pg, pivot_root, prlimit, raw, readprofile, rename, renice, rev, rtcwake, script, scriptreplay, setarch, setsid, setterm, sfdisk, swaplabel,
swapoff (link to swapon), swapon, switch_root, tailf, taskset, tunelp, ul, umount,
unshare, uuidd, uuidgen, wall, whereis, wipefs, e x86_64.
Bom, então depois de compilar isto tudo, passa-se a scripts de sistema que vão estar coordenados para funcionarem na altura em que se liga o computador. As tarefas destes scripts é serem a "cola" que liga todo o sistema. Eles tratam de ligar à rede, detetar dispositivos ligados ao PC, no fundo fazer todo o sistema funcionar como se fosse um só. Mas como sabemos, os sistemas baseados em UNIX são muito, muito modulares e por isso muito apelativos.
Parte da questão é o carregamento de módulos do núcleo do sistema. O Linux é um kernel modular e que permite carregar módulos "a quente". Também nesta fase é tratada a configuração dos "serviços", que são automaticamente iniciados quando se faz o boot e automaticamente desligados quando se encerra o sistema.
É preciso também tornar o sistema "bootável", criando o ficheiro /etc/fstab.
Depois obviamente é preciso compilar o núcleo, o "Linux" propriamente dito. Isso envolve vários passos, a configuração, compilação e instalação. Depois é preciso especificar a ordem de carregamento dos módulos do núcleo.
É preciso também tornar o sistema "bootável", criando o ficheiro /etc/fstab.
Depois obviamente é preciso compilar o núcleo, o "Linux" propriamente dito. Isso envolve vários passos, a configuração, compilação e instalação. Depois é preciso especificar a ordem de carregamento dos módulos do núcleo.
Por fim, um sistema não funciona sem um bootloader. É preciso configurar o GRUB para que o sistema possa iniciar.
Com isto o sistema fica instalável!
Este é apenas um pequeno resumo. As 352 páginas do Linux From Scratch ensinam tudo o que é preciso.
Se parece muito, a verdade é que o LFS é apenas o início. O site também tem:
- BLFS (Beyond Linux From Scratch), que começa onde acaba o LFS para ajudar os utilizadores a instalar uma quantidade de pacotes sobre o LFS a partir do ponto em que este ficou;
- ALFS (Automated Linux From Scratch), que desenvolve um framework para um construtor de sistema e gestor de pacotes
- CLFS (Cross-Linux From Scratch), que ensina como criar um cross-compiler e portar o Linux para outras plataformas como x86_64, mips, alpha, sparc, hppa, arm.
- HLFS (Hardened Linux From Scratch) - é uma variante de LFS que ensina a criar um sistema especialmente adaptado para segurança.
No próximo post vamos ver o Arch Linux.
Happy hacking!
No próximo post vamos ver o Arch Linux.
Happy hacking!
2013-02-15
Como fazer uma distribuição Ubuntu Linux
Gostaria de ter um sistema operativo criado só para si, com tudo o que gosta e sem nada que não queira?
Se usa Ubuntu ou uma das suas variantes (como Lubuntu) é muito fácil.
Para isso, a primeira coisa a fazer é configurar o sistema exatamente como o quer, seja em aspeto visual, aplicações, configurações de cada aplicação, etc.
Quando tudo estiver perfeito...
No final poderá executar o Bleachbit para limpar todos os arquivos temporários. Se não o tem instalado encontra-o no Synaptic.
Depois instale o Remastersys:
1. Obtenha a chave em http://www.remastersys.com/ubuntu/remastersys.gpg.key
2. Abra o Synaptic
3. Vá a "Settings" - "Repositories", selecione "Authentication" e "Import Key File" indicando esse arquivo com a chave"
4. Ainda no Synaptic, vá a "Other Software", clique em "Add", e adicione:
deb http://www.remastersys.com/ubuntu codename main
Substitua codename pelo nome de código da sua distro Linux. Se não sabe qual é, abra um terminal e execute: lsb_release -a
Em codename encontra a palavra certa. Exemplo:
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 11.10
Release: 11.10
Codename: oneiric
É importante que coloque o codename certo, ou o seu sistema poderá não funcionar.
Saia dos repositórios e clique no botão "Reload" do Synaptic.
Agora que tem o Remastersys, ele vai tratar do resto. Instale o pacote remastersys-gui.
Se usa Ubuntu ou uma das suas variantes (como Lubuntu) é muito fácil.
Para isso, a primeira coisa a fazer é configurar o sistema exatamente como o quer, seja em aspeto visual, aplicações, configurações de cada aplicação, etc.
Quando tudo estiver perfeito...
No final poderá executar o Bleachbit para limpar todos os arquivos temporários. Se não o tem instalado encontra-o no Synaptic.
Depois instale o Remastersys:
1. Obtenha a chave em http://www.remastersys.com/ubuntu/remastersys.gpg.key
2. Abra o Synaptic
3. Vá a "Settings" - "Repositories", selecione "Authentication" e "Import Key File" indicando esse arquivo com a chave"
4. Ainda no Synaptic, vá a "Other Software", clique em "Add", e adicione:
deb http://www.remastersys.com/ubuntu codename main
Substitua codename pelo nome de código da sua distro Linux. Se não sabe qual é, abra um terminal e execute: lsb_release -a
Em codename encontra a palavra certa. Exemplo:
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 11.10
Release: 11.10
Codename: oneiric
Saia dos repositórios e clique no botão "Reload" do Synaptic.
Agora que tem o Remastersys, ele vai tratar do resto. Instale o pacote remastersys-gui.
Abra o remastersys e escolha "Distribution".
O Remastersys vai criar um ficheiro ISO com uma imagem de CD/DVD que pode "queimar" para ter o seu novo sistema pronto a instalar em qualquer PC.
O Remastersys vai criar um ficheiro ISO com uma imagem de CD/DVD que pode "queimar" para ter o seu novo sistema pronto a instalar em qualquer PC.
2013-02-13
Tem conta no Hotmail? Mude já para o Gmail
Se tem conta no Hotmail não espere receber todas as mensagens que lhe enviam. O Hotmail é bastante menos profissional e inteligente do que o Gmail.
Isto acontece porque o Hotmail decide antes de você se um remetente é lixo ou não. Se decidir que é lixo você nunca receberá a mensagem, nem mesmo na pasta de Spam (Correio não solicitado).
As políticas do Hotmail classificam facilmente como lixo as mensagens que gostaria de receber. Porque no Hotmail, o sistema controla imenso o que é mensagens de lixo e o que são mensagens normais ao ponto de ignorar mensagens importantes que necessita de receber.
O problema não existe se adicionar o contacto à sua lista de contactos no Hotmail mas, se não souber disto ou não se lembrar de o fazer, irá com certeza ter problemas.
A melhor forma de receber todas as mensagens de email que necessita é adotar um sistema mais profissional como o Gmail, onde você pode controlar bastante melhor o que deseja e não deseja receber.
Entretanto, se espera "aquele email", pode ficar na dúvida se já lhe foi enviado.
Isto acontece porque o Hotmail decide antes de você se um remetente é lixo ou não. Se decidir que é lixo você nunca receberá a mensagem, nem mesmo na pasta de Spam (Correio não solicitado).
As políticas do Hotmail classificam facilmente como lixo as mensagens que gostaria de receber. Porque no Hotmail, o sistema controla imenso o que é mensagens de lixo e o que são mensagens normais ao ponto de ignorar mensagens importantes que necessita de receber.
O problema não existe se adicionar o contacto à sua lista de contactos no Hotmail mas, se não souber disto ou não se lembrar de o fazer, irá com certeza ter problemas.
A melhor forma de receber todas as mensagens de email que necessita é adotar um sistema mais profissional como o Gmail, onde você pode controlar bastante melhor o que deseja e não deseja receber.
Entretanto, se espera "aquele email", pode ficar na dúvida se já lhe foi enviado.
Subscrever:
Mensagens (Atom)



