Ubuntu no ASUS K45VM

Faz muito tempo que não posto nada no meu blog, e quem me conhece sabe o porque… Partciularmente não gosto de postar nada que seja simplesmente “por postar”. 

Recentemente, troquei meu antigo notebook STi IS 1214 (que substituiu meu velho MIRAX mm6610) por um ASUS K45VM-VX105M, em especial por causa de um curso que estou fazendo online que exige o uso de uma VM que estava sobrecarregando o velho STi.

Essa máquina é uma máquina Parruda, com as seguintes especificações:

  • Processador: Core i7-3610QM (2.30 Ghz);
  • Memória: 8 GB;
  • HD: 500 GB;
  • USBs: 1×2.0, 2×3.0;
  • Vídeo: nVidia GeForce GT 430M (2GB de RAM) +  Intel 3rd Gen Core processor Graphics Controller (Optimus system)
  • Sistema Operacional: Windows 7 Home Basic 64 bit
  • HDMI: 1;

Portanto, uma máquina potente, para aplicações como desenvolvimento e para rodar jogos bastante razoáveis, como os que estão vindo aí com o Steam para Linux. Mas claramente meu objetivo é usar o Linux. Vamos então falar sobre como instalar o Linux no mesmo. Por segurança, o instalaremos em dual boot, uma vez que essa máquina possui o UEFI (Unified Extensible Firmware Interface), que vem substituindo o antigo sistema baseado no BIOS (chamada de legacy). 

Para começar, vamos ao básico: suba no Windows (sim, vamos começar pelo Windows…) e dê uma bela desfragmentada na máquina (em especial na partição principal do Windows). Além disso, por via das dúvdias, gere os discos de recuperação usando a ferramenta AI Recovery Burner que vem instalada (pode ser útil no caso de você apagar por acidente sua partição Recovery ou Windows ou, em casos extremos, a partição EFI boot do sistema). Normalmente são cinco discos. Aproveite e baixe o Ubuntu 64 bits e  grave-o em DVD ou ainda gere um USB bootável conforme as instruções na Net.

Reboote a máquina com o DVD ou pendrive na máquina e mande ele subir. Mande ele ir para o modo de LiveCD, não diretamente para o modo de instalação (você vai precisar realizar algumas tarefas com ele em modo de LiveCD a posteriori). Tão logo o LiveCD tenha subido, inicialize o instalador, e escolha a opção de Particionamento avançado. Selecione a partição onde fica a NTFS geral e apague-a, em seguida redimencione a partição principal NTFS para os valores que você deseje (aconselho em torno de 100GB para o Windows, pois pode ser que vocẽ acabe precisando de algum software específico). Enfim, não apague NENHUMA outra partição, pois pode comprometer coisas que não deve…  Em especial, atente para as partições com labels SYSTEM, OS e Recovery, SYTEM e Recovery não devem ser apagadas, enquanto OS é a que será dimensionada. Depois do redimensionamento ser confirmado (vai demorar um pouco) defina o esquema de particionamento que você desejar e continue a instalação do Ubuntu como normalmente. Porém, ao terminar de instalar os pacotes e tudo o mais, NÃO REBOOTE AINDA! 

Vamos resolver o primeiro problema, que é fazer o UEFI enxergar o Ubuntu… Para isso, você vai precisar de um programa chamado Boot Repair, que você irá instalar ainda em LiveCD… Abra um terminal, clicando no ícone do Ubuntu no canto da interface gráfica e digitando Terminal. Siga as seguintes instruções para adicionar e instalar o Boot Repair:

Boot-Repair – Community Ubuntu Documentation

  • sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update
  • sudo apt-get install -y boot-repair && boot-repair

Em seguida, siga todas as instruções da página Boot Repair, clique no botão Configurações Recomendadas e faça tudo como o programa sugerir. Em alguns momentos, você precisará digitar comandos em terminal: digite-os exatamente como o programa sugerir. Após o Boot Repair ser encerrado, você pode então rebootar a máquina e, tudo tendo corrido bem, você será capaz de subir um GRUB corretamente configurado. Use Windows 7 UEFI para inicializar o Windows 7. Haverá uma demora adicional nesse momento devido ao chkdisk provocado pelo redimensionamento da partição Windows… Mas tudo correndo bem, você irá receber o Windows… Reinicie a máquina e suba o Ubuntu… A partir daqui, você pode fazer todo o postinstall segundo qualquer site indica (particularmente recomendo esse). Não vamos nos focar em cada detalhe,mas sim em algumas coisas que você precisará fazer para ter um ambiente estável e funcional…

Primeiro, vamos instalar o xorg-edgers:

UbuntuUpdates – PPA: xorg-edgers

  • sudo add-apt-repository ppa:xorg-edgers/ppa
  • sudo apt-get update

Antes de seguir adiante, porém, instale um outro window manager (aconselho o KDE), pois de imediato você terá problemas do Unity parar de funcionar como deve. Por isso, vá para o KDE (o lightdm continuará funcionando normalmente). Escolha o KDE e passe para ele e atualize todos os pacotes. Nesse momento, seu Unity parará de funcionar… Você precisará instalar o pacote compizconfig-settings-manager, como abaixo:

drivers – Unity Doesn’t run after upgrading via xorg-edgers – Ask Ubuntu

  • sudo apt-get install compizconfig-settings-manager

Agora, seu Unity funcionará normalmente. Porém, ainda terá um problema… Sua placa nVidia estará “desativada”: na verdade, isso se deve ao sistema optimus da nVidia, onde (no Windows) os jogos solicitam a placa nVidia conforme suas necessidades. No Linux, essa funcionalidade em princípio está “desativada”, mas é possível ativá-la por meio do pacote bumblebee. Instale-o usando seu gerenciador favorito de pacotes. Uma vez instalado, você pode usar o : comando optirun no shell do Linux, seguido pelo programa que você desejar (por exemplo, optirun /usr/local/games/Shatter/Shatter.bin.x86), que fará com que o jogo funcionará na nVidia (não se preocupe que o próprio Ubuntu já instala os drivers corretos para isso). Considerando todos os jogos que testei, apenas o jogo Anomaly (parte do Humble Bundle For Android 3) demandou OBRIGATORIAMENTE o uso de optirun. ATENÇÃO: apesar de tudo, não é recomendável o uso do optirun para qualquer aplicação, pois isso irá “derreter” a duração da sua bateria. A placa Intel consegue dar conta do recado para a grande maioria das aplicações: coisas como reprodução de vídeos e afins. Apenas alguns jogos demandam esse tipo de uso.

Em um sumário, podemos dizer que, à exceção dessas coisas que disse nesse post, não existe nada que impeça o uso do Linux nessa máquina… Uma máquina muito poderosa, que funciona muito bem… Posso afirmar que todo o hardware dessa máquina é funcional sob linux, à exceção do HDMI (que não testei). O USB 3.0 tem uma boa performance. Não tive nenhum tipo de problema, com uma grande quantidade de dispositivos USB, como HDs externos, gravadores de DVD externos, hubs, etc… Se vocẽ está pensando em adquirir esse equipamento, não tenha medo, pois ela funciona muito bem.

twittering-mode: usando Twitter no EMACS

Faz tempo que não posto aqui… E tem alguns motivos isso:

O primeiro foi o início de mais um projeto pessoal, o Aulas de C, que visa ensinar a base de C para os interessados em tal linguagem de programação. A idéia é aprender-se o que é mais interessante primeiro, e deixar tecnicidades e detalhes mais exóticos para depois, conforme forem sendo necessários. Não é um curso mesmo, mas sim uma forma de se aprender fazendo.
Mas o mais importante é bem mais simples: falta de algo útil para escrever.
Bem, isso acabou agora.
Recentemente, perdi o suporte ao Echofon na minha antiga estação de trabalho Linux… Os clientes modernos nenhum pegava e os que pegavam eram antigos e/ou sobrecarregavam meu sistema…
O que fazer?“, pensei
Como eu uso EMACS para várias atividades no meu dia-a-dia profissional, me ocorreu pesquisar por meios para usar o mesmo como um cliente de Twitter. E acabei encontrando o twittering-mode, um modo que permite ao EMACS navegar no Twitter de forma extremamente rápida e eficiente, com ícones, RT e a possibilidade de abrir-se timelines de outros usuários e ver-se hashtags.
A idéia aqui é explicar o básico sobre como utilizar o twittering-mode e algumas dicas de uso que me ocorreram no uso diário.

Instalando

Você vai precisar pegar o pacote do twittering-mode. Nesse caso, existe tanto a opção de baixar um tarball em http://twmode.sf.net quanto a que considero mais recomendável. Para isso, você precisará do git instalado na sua máquina. Faça um clone do repositório do github.com do twittering-mode na sua máquina com o comando:

git clone git://github.com/hayamiz/twittering-mode.git

Isso permitirá que você tenha os recursos mais atuais e correções de bugs, como a possibilidade de usar o migre.me como encurtador de URLs e uma correção no caso do uso de um arquivo de avatares que obrigava você a limitar o número de avatares a serem armazenados.
Seja como for, vamos começar a instalação. Antes, porém, você precisará do EasyPG para o EMACS. No EMACS a partir da versão 23 o EasyPG é parte do mesmo. Para trás do 23, é necessário baixar ele no link mostrado anteriormente. Além disso, você precisará instalar no seu ambiente os pacotes wget, curl, openssl e/ou gnutls, além do ImageMagick para os avatares e do GnuPG, que será usado para que não precisemos fazer autenticação OAuth toda santa vez. Sugiro que, por via das dúvidas, instale todos eles. Uma coisa a se mencionar, antes de seguirmos adiante, é que o twittering-mode só é compatível com EMACS 21.3 ou melhor, e ainda assim suas funcionalidades totais só estão disponíveis em ambientes a partir do EMACS 22. Adianto que não existe nenhuma perda perceptível de performance ou funcionalidades reais em ambientes de EMACS 21.3 até 22. Uso ele em um EMACS 21.4 e funciona de maneira muito boa, apenas com algumas “facilidades” ausentes, mas sem maiores problemas.
OK, vejamos a instalação:
Descompacte o tarball do twittering-mode em algum lugar no seu load-path (o caminho onde o EMACS busca suas extensões). Caso não saiba qual o caminho, descompacte-o em qualquer caminho que nós iremos explicar como adicionar o mesmo no load-path. Vamos assumir como exemplo o caminho ~/twittering-mode. Se seu EMACS for anterior ao 23, também baixe o pacote EasyPG e o descompacte em algum lugar (consideraremos como exemplo ~/epg).
Bem, antes de começarmos a usar o Twitter no EMACS, vamos fazer algumas configurações. Abra o EMACS e carregue seu arquivo de configuração .emacs (~/.emacs). Antes de começarmos, vamos adicionar no início do .emacs as seguintes linhas:

(add-to-list 'load-path "~/twittering-mode")

Essa linha avisa ao EMACS a procurar novos modos no caminho adicionado. No caso, estamos adicionando o pacote básico do twittering-mode ao load-path do EMACS, de modo que ele possa ser usado. Além disso, nas versões antigas do EMACS (anteriores à 23), precisamos adicionar o EasyPG:

(add-to-list 'load-path "~/epg")

Então adicionamos o comando que irá carregar no EMACS o módulo do twittering-mode:

(require 'twittering-mode)

Com isso, já fizemos uma configuraçao rápida. Salve o .emacs, feche o EMACS e abra-o novamente.

Navegação básica

Use o atalho M-x (Meta-x) para ir ao minibuffer e abra o modo com o comando twittering-mode. Uma série de cargas serão feitas e aparecerá uma mensagem pedindo o OAuth Authorization PIN. Uma janela de navegador será aberta pelo EMACS pedindo que você autorize o twittering-mode (twmode) no seu usuário do Twitter. Confirme a autorização e copie no EMACS o número que irá aparecer após a confirmação. Esse número é o PIN que você precisa. Aguarde alguns instantes que o EMACS irá carregar, com a ajuda dos utilitários instalados anteriormente, sua Timeline em um buffer chamado :home.
Cada Timeline aberta, seja sua, seja de um usuário ou hashtag, fica em um buffer do EMACS separado. Embora o twittering-mode disponibilize atalhos específicos para navegar entre as TL, particularmente prefiro usar os atalhos do próprio EMACS, que continuam funcionando normalmente.
Você move-se normalmente pelo buffer (que é read-only) usando os comandos de movimentação padrão do EMACS ou as setas  e PgUp e PgDn se você tiver o modo pc-select. Alguns atalhos bem úteis (lembrando que os atalhos são case-sensitive):

  • j – Desce para o tweet anterior (em termos de tempo). Se chegar no final da Timeline carregada, irá carregar tweets mais antigos. Normalmente são carregados de 20 a 20 twits, mas esse valor pode ser configurado através de uma variável do EMACS. Veremos customizações mais adiante;
  • k – Avança para o próximo tweet (em termos de tempo);
  • n – volta para o tweet anterior postado pelo mesmo usuário do tweet onde você está;
  • p – avança para o próximo tweet postado pelo mesmo usuário do tweet onde você está;
  • H – vai para o topo da Timeline;
  • G – vai para o final da Timeline;
  • g – carrega novos tweets à Timeline. O twittering-mode tem auto-update para a Timeline, mas esse pode ser desligado se necessário, e então usa-se esse atalho para carregar-se novos tweets. Esse atalho pode ser usado com o auto-update ativo;
  • r – mostra replies ao tweet onde você está;
  • C-c C-e – limpa o buffer da Timeline em questão;
  • q – fecha a Timeline;
  • v – sobre uma hashtag ou o nome de usuário, abre em um novo buffer a Timeline da hashtag ou usuário (Nota: em alguns casos, os acentos em uma hashtag poderão aparecer como caracteres randômicos… Isso se deve a um problema na tratativa das hashtags e não há previsão para correção)
  • V – permite você abrir uma Timeline de qualquer usuário que você quiser, bastando digitar o nick do usuário (lembrando que ele não abrirá TLs protegidas, exceto se você seguir o usuário). Além disso, existem alguns nomes especiais que ele usa para TLs relacionadas ao usuário:
  1. :home – sua timeline;
  2. :replies – respostas a seus tweets (incluindo RTs “editados”);
  3. :direct_messages – mensagens diretas que você recebeu;
  4. :favorites – tweets que você marcou como favoritos;
  • u – Postar um twit – Abrirá uma janela de edição onde você poderá escrever o seu tweet normalmente. Para enviar o tweet, use o atalho C-c C-c. Caso deseje cancelar o twit, use o atalho C-c C-k. [F4] irá encurtar qualquer URL que esteja no tweet;
  • [Enter] – Permite editar um reply ao tweet apontado pelo cursor. Em cima de um link, abre-o no navegador padrão do sistema. Sobre um nome de usuário, abre seu profile no Twitter. Sobre uma hashtag, abre uma pesquisa sobre ela no Twitter;
  • C-c [Enter] – Permite dar um RT “antigo” (como Reply) do tweet apontado pelo cursor;
  • C-u C-c [Enter] – Permite enviar um RT “novo” (da API do Twitter) do tweet apontado pelo cursor;
  • d - Permite enviar uma mensagem direta a um usuário. É considerado por padrão que o DM irá para o usuário que postou o tweet onde o cursor está, mas você pode digitar o nick de qualquer usuário;
  • a – Ativa/Desativa a auto-atualização da TLs atual (padrão ativo);
  • i – Ativa/Desativa a exibição de avatares da TLs atual (padrão ativo);
  • s – Ativa/Desativa rolamento da TL atual (padrão desativado);
  • C-c C-t – Permite definir uma hashtag padrão para seus posts – útil na cobertura de um evento;
Esses comandos oferecem uma navegação básica que deve ser o suficiente para o uso cotidiano. Para maiores informações, consulte a entrada do twittering-mode no EMACSWiki.org.

Customizando

Como tudo no EMACS, o twittering-mode é muito customizável. Infelizmente ele não é customizável pelo customize-mode, portanto as customizações normalmente são feitas pelo .emacs ou fazendo eval de setq no *scratch*. Vamos falar então da customização via .emacs.
Abaixo estou copiando o trecho do meu .emacs para definir algumas variáveis padrão, além de usar alguns hooks do twittering-mode para mudar alguns atalhos e para fazer com que o twittering-mode exiba notificações de novos tweets:

;; Configurações do twmode (twmode.sf.net)
(setq twittering-use-master-password t) ;; voce precisara do EasyPG para EMACS (no 23 vem junto)
(setq twittering-timer-interval 300     ; 3 minutos para atualizar as TLs
      twittering-tinyurl-service ‘migre.me
      twittering-url-show-status nil
      twittering-icon-mode t
      twittering-initial-timeline-spec-string ‘(“:home” “:favorites” “:replies”)
      twittering-number-of-tweets-on-retrieval 60
      twittering-scroll-mode t
      twittering-use-icon-storage t
      twittering-icon-storage-limit nil
      )

 (add-hook ‘twittering-mode-hook
           (lambda ()
             (mapc (lambda (pair)
                     (let ((key (car pair))
                           (func (cdr pair)))
                       (define-key twittering-mode-map
                         (read-kbd-macro key) func)))
                   ‘((“F” . twittering-friends-timeline)
                     (“R” . twittering-replies-timeline)
                     (“U” . twittering-home-timeline)
                     (“f” . twittering-favorite)))))

(add-hook ‘twittering-new-tweets-hook (lambda ()
   (let ((n twittering-new-tweets-count))
     (start-process “twittering-notify” nil “notify-send”
                    “-i” “/usr/share/pixmaps/gnome-emacs.png”
                    “Novas mensagens”
                    (format “Tem %d nova%s mensage%s no Twitter!”
                            n (if (> n 1) “s” “”) (if (> n 1) “ns” “m”))))))

A variável twittering-use-master-password t, é muito útil, e ela que exige o EasyPG. Normalmente, o twittering-mode irá lhe obrigar a obter um novo PIN a cada vez que você tentar entrar nele, o que vai chegar um momento e tornar-se muito chato. Ao ativar essa variável twittering-use-master-password, você irá criar uma senha mestra de acesso ao twittering-mode e o mesmo irá guardar o PIN em um arquivo .twittering-mode.gpg, que ele abrirá e lerá ao começar a usar o twittering-mode.
As demais variáveis são:
  • twittering-timer-interval – Define o intervalo de atualização em segundos (padrão 90 segundos – 1,5 minutos);
  • twittering-tinyurl-service - Define qual será o serviço de encurtador de URLs a ser utilizado entre alguns que o twittering-mode consegue usar: ‘tinyurl, ‘bit.ly, ‘goo.gl, ‘is.gd, ‘toly, ‘j.mp e ‘migre.me (esse último apenas na versão do github na época em que esse post foi escrito). Se você desejar utilizar especificamente bit.ly e j.mp precisará definir também duas variáveis (twittering-bitly-login e twittering-bitly-api-key) com informações sobre seu usuário e chave de API do bit.ly. ou do. j.mp Padrão ‘tinyurl;
  • twittering-url-show-status – Mostra o tráfego utilizado depois de uma atualização de TL. Padrão nil;
  • twittering-icon-mode - Ativa o modo de visualização de avatares. Padrão nil;
  • twittering-initial-timeline-spec-string - Uma lista de TLs a serem abertas no momento da inicialização do twittering-mode. O padrão é abrir apenas a TL do usuário (“:home“);
  • twittering-number-of-tweets-on-retrieval - Número de twits a serem obtidos por vez… Padrão 20, com limite máximo de 200.
  • twittering-scroll-mode - define se a TL vai rolar de modo a manter o tweet que está sendo lido como o atual ou se vai fazer com que o EMACS desça os twits não lidos. O padrão é nil, que indica o 2° comportamento. Para ativar o primeiro, basta definir essa variável com qualquer valor não-nil usando setq.
  • twittering-use-icon-storage – Permite que o twittering-mode faça um cache dos avatares que ele consegur carregar, o que aumenta o desempenho, mas consome memória. Padrão nil. Deve ser definido para qualquer outro valor para ser ativado. Por padrão, o cache de avatares fica gravado em .twittering-mode-icons.gz, que é gravado ao sair-se do EMACS e aberto no momento em que chamamos o twittering-mode. É possível mudar-se o nome desse arquivo modificando-se a variável twittering-icon-storage-file;
  • twittering-icon-storage-limit - Se você utilizar o cache de avatares, você pode estipular ou não um valor padrão de avatares a serem usados modificando essa variável. O padrão é 500. Se não desejar limitar o número de avatares salvos no cache, defina essa variável como nil;

Após definirmos todas as variáveis que queremos, também realizamos algumas modificações em dois hooks. Um para fazermos uma modificação de atalhos (no caso, defini f para abrir a TL de favoritos) e a outra para fazer com que notificações sejam exibidas no momento em que houver o recebimento de novos twits. Essas dicas foram coletadas na entrada do twittering-mode no EMACSWiki.org.
Essa é apenas uma introdução ao twittering-mode, e na Internet existe muita coisa sobre ele. Espero que tenha sido útil. Se quiser me adicionar no Tweeter, meu usuário é @hufflepuffbr.

[Update 15:17 2011-08-18] A pedidos, um snapshot do twittering-mode em uso!

Carta aberta ao TRT/RJ sobre a troca de suíte de escritório

Não vou tecer comentários. O que o Jomar diz basta. Meu único objetivo é mostrar o apoio desse blog (além dos meus outros blogs, o +4 e o Aulas de C) ao Jomar e a perplexidade pela atitude tomada.

Foi com perplexidade e tristeza que li hoje a notícia de que o TRT/RJ está trocando a suíte de escritório em software livre BrOffice pelo software proprietário MSOffice, alegando “…limitações,
principalmente em relação ao intercâmbio de informações e arquivos com
órgãos do Poder Judiciário e instituições públicas…
” e ainda que “ …O MS Office é um padrão mundial…”.

Não vou comentar aqui sobre a decisão de não utilizar um Software
Livre, desrespeitando a atual política definida pelo Governo Federal de
utilização prioritária de Software Livre, mas faço questão de registrar
meu questionamento sobre a alegada “falta de compatibilidade” dos
arquivos gerados pelo BrOffice.

Gostaria de iniciar esclarecendo aos responsáveis por tal decisão no
TRT/RJ de que os documentos gerados pelo BrOffice são gerados no padrão
ODF (OpenDocument Format), que além de ser um Padrão Aberto, é ainda uma Norma Internacional – ISO/IEC 26.300 (portanto um VERDADEIRO “Padrão Internacional”) e uma Norma Brasileira, a NBR ISO/IEC 26.300:2008.

O ODF está sendo adotado cada vez mais por governos do mundo todo
como o padrão de armazenamento de informações governamentais,
principalmente por garantir a longevidade no armazenamento das
informações e por não ser dependente de uma única Suíte de Escritório,
sendo suportado atualmente por uma extensa lista de soluções em software incluindo softwares livres e proprietários.

O ODF é desenvolvido de forma totalmente aberta e transparente por um consórcio internacional (OASIS ODF TC) e seu desenvolvimento conta atualmente com inúmeras empresas
como Adobe, Boeing , Google, IBM, Intel, Microsoft, Nokia, Novell e
Oracle, entre outras, além de especialistas do mundo todo, como este
brasileiro que lhes escreve.

A adoção crescente do ODF no Brasil pode ser vista pela lista de signatários do Protocolo Brasília,
um documento publicado em Diário Oficial onde empresas e organizações
se comprometem publicamente com a adoção e promoção do padrão ODF. A
lista de signatários
do Protocolo Brasília, que atualmente envolve mais de 2 milhões de
usuários no Brasil, é composta por empresas e órgãos públicos como
SERPRO, Caixa Econômica Federal, Banco do Brasil, Ministério das
Relações Exteriores, Marinha, Exército, Aeronáutica, DATAPREV,
Correios, INPE, INPI, Itaipu Binacional, ITI, SLTI, CELEPAR, Petrobrás
e Cobra Tecnologia, entre outras.

O Governo do Estado do Paraná sancionou em 2007
uma lei que trata da utilização de ODF como formato de armazenamento de
informações de documentos governamentais e um projeto de lei semelhante
está em análise atualmente no Congresso Nacional (PL-3070/2008).

A arquitetura e-Ping (Padrões de Interoperabilidade de Governo Eletrônico), documento que “…define
um conjunto mínimo de premissas, políticas e especificações técnicas
que regulamentam a utilização da Tecnologia de Informação e Comunicação
(TIC) no governo federal, estabelecendo as condições de interação com
os demais Poderes e esferas de governo e com a sociedade em geral…
“, em sua versão mais recente,
descreve o Padrão ODF como “ADOTADO”, enquanto sequer cita os formatos
proprietários .DOC, .PPT e .XLS e seus sucessores .DOCX, .PPTX e .XLSX,
indicando de forma clara à todo o governo e sociedade que a
recomendação oficial do Governo Federal é a utilização do ODF. Os
formatos .DOC, .XLS e .PPT já foram citados em versões anteriores da
e-Ping e sua utilização foi substituída pelo padrão ODF.

Gostaria ainda de sugerir aos membros do TRT/RJ que entrem em
contato com o TRT da 13° região, pois eles utilizam com sucesso o
BrOffice e o padrão ODF e até onde sei é o único TRT onde 100% dos
processos são eletrônicos no Brasil. Lembro-lhes ainda que nova versão
do padrão ODF (ODF 1.2) tem suporte a assinaturas digitais compatível
com a ICP-Brasil, funcionalidade extremamente importante para o
Judiciário Brasileiro.

Tendo em vista o exposto, gostaria de solicitar aos responsáveis no
TRT/RJ a revisão de tal decisão, pois considero que a decisão é
retrógrada e deixa, mesmo que de forma involuntária, a mensagem de que
as Normas Brasileiras não devem ser respeitadas por todos, o que torna
desnecessário o intenso trabalho de normalização que nós brasileiros
realizamos no Brasil e no cenário Internacional.

Coloco-me desde já á disposição do TRT/RJ para esclarecer os
benefícios da adoção do Padrão ODF e quaisquer outras dúvidas que
tiverem sobre este assunto.

Jomar Silva

Diretor Executivo - ODF Alliance América Latina

Convertendo vídeos do Decodificador de TV Digital/PVR LB-SAT LBDTV10T para AVI no Linux

Com o surgimento da TV Digital no Brasil, no seu padrão ISDB-Tb (ou ISDB-International), vários conversores estão sendo vendidos a preços interessantes com a mais diversa gama de recursos. Um muito popular é o recurso de PVR (Personal Video Recorder – Gravador Pessoal de Vídeo), onde o aparelho grava em um disco rígido externo ou pendrive à programação de TV, como era o caso nos antigos videocassetes. No caso, iremos falar do decodificador LBDTV10T, da empresa LBSat. Esse é um produto a um preço razoável e que pode ser encontrado em boas casas especializadas em equipamento de TV (no caso, comprei em uma loja da Rua Vitória, uma das travessas da Santa Efigênia), e possui as seguintes características.
Características:
  • HDTV e SDTV
  • Instalação automática de canais
  • Menu na tela (OSD) – facilita a configuração do aparelho.
  • Saída HDMI para imagens em alta definição e áudio digital
  • Saídas S-Video, Vídeo Componente, vídeo e áudio estéreo
  • Saída de áudio digital óptica e SPDIF
  • EPG (Guia de Programação Eletrônica) Permite visualizar informações sobre os programas da TV. (Este recurso depende da transmissão pela emissora)
  • Programação de canais favoritos
  • Sintonia automática UHF para TV Digital – Canais 7 ao 69
  • Controle Remoto multifunção
  • Ajustes de Áudio / Vídeo / Volume
  • Seleção automática de voltagem – entre 100 e 240 Vac
  • Idiomas do menu: Português

Observações:
Antes de comprar o conversor, certifique-se de que a sua região já recebe as transmissões da TV Digital. Para captar o sinal digital corretamente é necessária a utilização de uma antena UHF, interna ou externa. A captação é restrita aos sinais da TV aberta, não incluindo, portanto, os sinais de TV por assinatura.
Especificações:

  • Resolução de vídeo : 1080i / 720p / 576i
  • Conexão USB para : MP-3, MP-4, Fotos. Através dela é possível reproduzir arquivos de músicas em MP-3, de vídeo MPEG-2, MPEG-4, e exibir arquivos de fotos JPEG.
  • Formatos de Tela : 16:9 e 4:3

É ótimo poder gravar vídeos em um HD externo, ainda mais se pensarmos que esses arquivos são acessíveis pelo computador como arquivos normais de vídeo. O problema é que a maior parte dos decodificadores (esse incluído) gravam o stream DTV recebido da antena diretamente (como se usasse um tee entre a saídea de vídeo e um arquivo no HD externo), o que envolve formatos proprietátios estranhos e convenções um pouco complexas. Mas com a ajuda do Google e do pessoal do Clube do LBDTV10T no HT-Fórum. Ainda não foi possível automatizar o processo devido a alguns problemas com o arquivo do decodificador, em especial na parte de áudio, mas tentarei fazer o melhor possível para expĺicar detalhadamente o processso de modo que você possa converter adequadamente os seus vídeos para usá-los no computador.
Esse tutorial foi elaborado em um Intel Core 2 Duo 2GHz, 3GB de RAM, 320 GB de disco, Ubuntu Linux Karmic Koala (9.10), com o repositório Medibuntu original e todos os pacotes de vídeos e áudio, incluindo os non-free e restricted. Você precisará ter instalado mencoder, mplayer, VLC e ffmpeg. Uma vez dito isso, vamos começar o processo.

1-) Encontrando o vídeo no disco e preparando-o para codificação

A primeira parte é encontrar e prepara o vídeo. Nesse caso, existe apenas uma sugestão: limpe o disco pelo decodificador (MENU -> Meu de Função -> Função PVR -> Formatar HDD). Caso contrário, você terá que descobrir o arquivo em meio aos diversos vídeos gravados e o modo como os vídeos são nomeados internamente pelo decodificador não ajuda. Os arquivos ficam gravados em uma pasta dentro do HD chamada PVR, em diretórios com o nome PVRXXXXX, (onde X são números hexadecimais), Dentro dessas pastas, existem pastas ~DATA/, onde vários arquivos DATAXX.trp (onde X são números normais). Esses arquivos são as várias partes do vídeo gravadas pelo decodificador. Isso ocorre pois, como ele formata os discos em FAT32 para maior eficiência, o tamanho máximo do arquivo é de 2 GB. Quando esse valor é superado, o decodificador cria um novo arquivo. Nesse caso, iremos fundir os arquivos com o seguinte comando em um terminal, dentro da pasta ~DATA/ do vídeo: cat DATA00.trp DATA01.trp DATA02.trp ... DATAXX.trp > convert.trp. Caso o vídeo tenha menos partes, basta usar menos arquivos. É só lembrar de listar todos os arquivos DATAXX.trp nesse comando. PS: não faça isso no disco do PVR! Copie os arquivos para uma partição Ext3/ext4/NTFS ou outro formato de arquivos mais avançado, caso contrário continuará com a limitação do tamanho de arquivo e não funcionará. Um comando alternativo seria cat DATA*.trp > convert.trp, mas não existe como garantir a seqüência dos arquivos.
Trabalharemos no caso com esse arquivo convert.trp. Ele é um arquivo em um formato chamado Transport Stream (TS), um encapsulamento do MPEG-2 para a transmissão contínua de arquivos, E conterá vídeo e áudio. Esse tutorial não irá aprofundar nos mecanismos de extração de áudio, uma vez que o TS permite vários canais de áudio e isso é usado em especial em vídeos (onde você pode colocar um canal de áudio em porutugês e um no idioma nativo do programa). No caso, nos restringiremos ao uso mais simples possível desse tutorial.

2-) Demultiplexação do vídeo original:

Um problema com o sistema de TV Digital Brasileiro é que ele utiliza na camada de áudio o formato HE-AAC, que não é muito bem suportado tanto por FFMpeg quanto por MPlayer/mencoder, os principais mecanismos de codificaçaão/decodificação/reprodução de vídeos e áudios em Linux. Porém, ele funciona muito bem no VLC e isso permite que utilizemos tal player para codificar o áudio.
A primeira parte então é demultiplexar o vídeo original, ou seja, separar as partes de vídeo e áudo do TS para que possamos trabalhar calma e corretamente com cada arquivo sem maiores problemas. No final desse processso, teremos um arquivo .mp4 (MPEG-4 AVC H264) e um outro arquivo de áudio .aac (MPEG-4 HE-AAC). Para esse processo, utilizaremos o Mplayer. Abra um terminal e, dentro da pasta ~DATA/ do vídeo desejado, use os seguintes comandos:
mencoder convert.trp -o convertVideo.mp4 -demuxer lavf -nosound -ovc copy
mplayer -dumpaudio -dumpfile convertAudio.aac convert.trp

Nesse momento, podemos reproduzir o vídeo no sistema para (1) testar se a demulplexação foi bem-sucedida e (2) verificar se o arquivo é o desejado. Para isso, digite mplayer convertVideo.mp4 e veja se está OK. Tudo OK, vamos para começar a trabalhar os arquivos.

3-) Codificação do áudio:

Um problema de fazer o processo de demultiplexação dos arquivos é que precisaremos optar por formatos de vídeo e aúdio individuais dos formatos de vídeo desejados, sem podermos recorrer a templates e outros esquemas que associem o vídeo e áudio a um formato. No caso, utilizaremos o AVI com vídeo XviD e áudio MP3. Nesse processo, iremos codificar cada parte separadamente e depois iremos multiplexar os arquivos no arquivo final, juntando ambos os arquivos de vídeo e áudio em uma saída final.
No caso, vamos focar primeiro na codificação do áudio, que iremos fazer usando o VLC. Esse passo justamente é o que impede criar-se um script para automatizar a codificação do arquivo, uma vez que VLC é um programa em iterface gráfica. Então, vamos ao passo a passo:
  1. Abra o VLC e vá no menu Mídia e escolha a opção Converter/Salvar;
  2. Na Aba Arquivo, clique em Adicionar. Na caixa de diálogo de arquivos, vá até a pasta PVRXXXXX/~DATA do vídeo desejado e escolha o arquivo convertAudio.aac desse ~DATA;
  3. Clique em Converter/Salvar. Na janela que abrir, na seção Configurações, escolha o perfil “Áudio – MP3“;
  4. Copie o conteúdo de Fonte (onde deverá ter o caminho completo para o arquivo de origem convertAudio.aac) para Destino e modifique a extensão para .mp3, de modo que fique convertAudio.mp3;
  5. Clique em “Iniciar“. Se quiser verificar as configurações, clique no ícone de chave de fenda, que irá apresentar as informações de codificação de áudio;

Agora, aguarde o arquivo ser codificado pelo VLC. Se preferir, teste o arquivo de saída com mpg123 convertAudio.mp3. Tudo estando OK, é hora de codificar o vídeo e encerrar o serviço.

4-) Codificar o vídeo e obter o arquivo final:

Agora codificado o áudio de saída em MP3, é hora de codificar o vídeo para XviD. No caso, também usaremos o mencoder para codificar o arquivo de saída de vídeo. Para isso, use o seguinte comando em um terminal na pasta PVRXXXXX/~DATA do vídeo desejado:
mencoder -o convertVideo.avi -ovc lavc -lavcopts vcodec=mpeg4:vhq:vbitrate=5000 -vf scale -zoom -xy 720 convertVideo.mp4

No caso, setei algumas poucas opções, entre elas -vf scale -zoom -xy 720, que permite codificar corretamente o vídeo para 720p. Se você preferir outras opções, dê uma pesquisada na Internet que configurações possam ser ajustadas para melhor resultado. O único objetivo aqui é obter uma saída de qualidade razoável. Atenção: esse comando foi baseado em sugestões para ripping de DVD obtidas em sites na Internet. Não sou um especialista em codificação de vídeos e não saberia informar a melhor combinação de parâmetros.
Se desejar, teste o vídeo no Mplayer como fizemos anteriormente. Uma vez tudo OK, você pode multiplexar (juntar) os arquivos de vídeo e áudio em um arquivo de saída com os comandos abaixo:

ffmpeg -i convertVideo.avi -i convertAudio.mp3 -acodec copy -vcodec copy convertFinal.avi
ou
mencoder -oac copy -ovc copy -o convertFinal.avi -audiofile convertAudio.mp3 convertVideo.avi

O resultado é o arquivo AVI com o nome convertFinal.avi. Esse arquivo é o resultado final, que poderá ser usado em outros formatos e gerar DVD e afins. Não vou entrar nesses méritos, mas muita documantação pode ser encontrada na Internet. Também não foi testado se a saída possui ou não perda de sincronismo entre o áudio e o vídeo. Aparentemente isso pode acontecer ocasionalmente e infelizmente não existe uma solução simples nesse caso. O que pode-se sugerir caso isso ocorra é ajustar-se o arquivo de áudio MP3, removendo alguns milisegundos de seu início e depois multiplexar novamente o vídeo.
Espero que esse tutorial tenha sido útil e que você possa obter o melhor de seu decodificador de TV Digital.

Remasterizando Debian/Ubuntu usando o Remastersys

Olá!

Sempre que tem um lançamento de uma nova versão do Ubuntu em geral é a mesma coisa: fazer backup, baixar o DVD, instalar, configurar repositórios, instalar aplicações adicionais, configurar, etc…
Isso já é um processo irritante em máquinas desktop caseiras que usem apenas aplicações de repositórios, mas as coisas se complicam ainda mais quando você envolve aplicações .deb fora de repositórios e, pior ainda, aplicações que possuem instaladores diferenciados, como Adobe AIR, Firefox e BrOffice.org (quando você os baixa de seus sites). Imagine ainda que você precise fazer instalações de muitas máquinas diferentes. Só por isso você tem uma noção do tempo que se perde ao instalar-se o Ubuntu a cada nova versão do mesmo.
Existem várias formas de criar-se LiveCDs/DVDs que são compatíveis com as mais diversas distros, inclusive por meio de customizações envolvendo o uso de chroot. O problema é que tais métodos não são fáceis e práticos para o dia-a-dia, uma vez que demandam conhecimento e estrutura mais avançados que o normal.
Existe, porém, uma ótima aplicação para Debian e Ubuntu chamada remastersys que permite executar o trabalho de remasterizar, ou seja, criar uma versão customizada do Debian/Ubuntu extremamente fácil, com a grande vantagem de não exigir processos complexos e salvar uma grande quantidade das customizações e informações de sistema do ambiente do usuário.

1-) Por quê customizar?

Ok, essa deve ser sua pergunta agora. Na realidade, existem várias vantagens:

  1. Gerar um pacote previamente configurado com aplicações, configurações e até mesmo aparência ajustada para instalar-se em um grande conjunto de equipamentos. Por exemplo, imagine que você tenha uma empresa e esteja instalando Ubuntu nas estações de trabalho. Ao invés de se dar ao trabalho de configurar uma a uma totalmente, você pode criar pacotes completos de aplicações básicas (pacote office, navegador, etc…) e restringir-se a instalar apenas aquelas aplicações mais específicas de cada estação, poupando tempo e pessoal;
  2. Em Desktops, é útil para criar “pontos de recuperação” em situações onde pode-se potencialmente “quebrar” o sistema (por exemplo, uma atualização ou adição de repositório). Caso algo de errado ocorra, basta-se queimar a ISO da “nova” distro e instalar-se tudo como estava antes.
  3. No caso de (2), quando você está em uma empresa, mesmo essa atividade pode ser custosa em tempo, então você poderá usar uma imagem criada de um desktop para criar uma máquina virtual e testar qualquer alteração necessária (à exceção de coisas como compatibilidade de kernels);
  4. Você pode ter uma espécie de “Estação Portável” que a pessoa poderia usar em Lan Houses ou afins, com as devidas configurações (por exemplo, estabelecer um túnel SSH ou coisas do gênero);

Essas são apenas algumas razões pelas quais você deveria usar o remastersys.

2-) Começando: uma primeira customização rápida e suja

OK, e agora, como customizar?
Primeiro, você deve ter um Ubuntu ou Debian instalado. O remastersys ainda é restrito a sistemas que possuam gerenciamento de pacotes baseados em DPKG/APT.
Segundo, você deve ter instalado todos os pacotes que você deseja, seja via gerenciador de pacotes, seja por compilação ou descompactação. No último caso, é bom lembrar que os pacotes deverão ser adicionados em pastas como /opt e /usr/bin, portanto você precisará de acesso ao superusuário root ou no mínimo ser capaz de executar comandos com sudo.
Primeira coisa, como superusuário, abra um editor de texto de sua preferência e abra o arquivo /etc/apt/source.list. Edite ele conforme indicado no site do remastersys, de acordo com sua distro, seja ela Ubuntu ou Debian. No meu caso, estou usando um Ubuntu Karmic Koala, então inseri as seguintes linhas, conforme indicado para o Ubuntu:

For Karmic, Lucid and Newer with grub2 – version 2.0.13-1 and up

# Remastersys
deb http://www.geekconnection.org/remastersys/repository karmic/

Uma vez que essa linha tenha sido adicionada ao /etc/apt/source.list (ou a linha adequada conforme indicado no site do remastersys), execute os seguintes comandos em um terminal:

sudo apt-get update && sudo apt-get install remastersys

O sistema poderá reclamar a ausência de autenticação do remastersys e ausência de PUBKEY (NO_PUBKEY). Não se preocupe agora: na Internet existem várias formas de resolver-se esse problema localizando-se a PUBKEY do desenvolvedor, então não entraremos nesse momento nesse detalhe. Se ele reclamar a falta de autenticação do remastersys, confirme a instalação. Em alguns instantes, o apt-get instalará o remastersys e suas dependências, definindo também configurações básicas. Por enquanto, aceitaremos elas.
Antes de continuar, é importante que exista espaço adequado nas partições onde ficam os diretórios /tmp e /home. É interessante as partições onde ambas as pastas ficam tenham em torno de 10 GB livres (se ambas estiverem na mesma partição, pode considerar-se por volta de 15 GB). Esses valores não possuem embasamento de documentação ou afins, sendo valores baseados na experiência.
Uma vez que o remastersys esteja instalado, vamos rodar ele. Ele precisa de permissões de super-usuário, portanto iremos usar:

sudo remastersys dist

O remastersys irá iniciar o processo de remasterização baixando pacotes adicionais, como o ubiquity (o programa instalador do Ubuntu), copiar os arquivos necessários e ignorar alguns (como os arquivos de pastas como /home, /tmp, /var e alguns muito específicos da máquina, como /etc/hostname, /etc/fstab e /boot/grub/menu.lst) e compactar eles em um arquivo que na realidade funciona como um filesystem que pode ser montado pela estrutura de LiveCD. Após isso, esse arquivo é juntado aos arquivos de boot básicos do LiveCD e uma ISO é gerada. Nesse momento muito provavelmente a ISO estará em /home/remastersys/remastersys com o nome de customdist.iso (mais para frente veremos como modificar esse nome conforme a necessidade). Copie esse arquivo e o arquivo customdist.iso.md5 que o acompanha (um checksum criado pelo remastersys que pode ser útil para quando o arquivo for enviado via Internet para checar sua integridade). Uma vez que esse arquivo seja copiado para outro local, você pode limpar os arquivos utilizados para a remasterização da do Ubuntu com o comando:

sudo remastersys dist

Você pode queimar a imagem ISO com sua ferramenta de gravação de CD e DVD predileta, independente do sistema operacional. Uma vez gravada a imagem ISO, você poderá rebootar sua máquina e usar ele como LiveCD. No caso, você perceberá que a distro ainda tem aparência de um LiveCD Ubuntu “vanilla” (padrão), mas que as aplicações estarão todas lá, assim como configurações globais do sistema (como listas de repositórios) e afins. Se preferir fazer um teste sem queimar mídia, utilize o VirtualBox para dar boot em uma máquina virtual usando o seu novo LiveCD.
Com isso, já temos um LiveCD útil para muitas coisas, mas podemos melhorar ainda mais isso.

3-) Melhorando as coisas: instalações globais

Uma das melhores formas que existem de melhorar as customizações em uma remasterização é usar instalações globais. Instalações globais dão uma grande vantagem de nos oferecer recursos que, no caso de ambientes multi-usuário, podem ser aproveitados por todos eles e que não precisam de instalação local (lembrando que o remastersys no modo dist, que estamos usando nesse texto, não coppia arquivos do /home).
Quase todos os programas Linux possuem formas de realizar instalações globais de extensões e adicionais. Os ambientes clássicos de Desktop, como KDE e GNOME possuem instalações globais para vários componentes, como fontes e papéis de parede. No caso, não vou me aprofundar em todos os casos, citando apenas algumas que eu testei. Para customizar com instalações globais programas que não serão citados aqui, a Internet está recheada de informações e uma pesquisa rápida no Google irá indicar as mais diversas opções.

Fontes truetype

Essa customização é uma das mais simples e pode ser feita sem necessidade de entrar no terminal. No caso, estarei mostrando o processo usando o KDE. Para GNOME, o processo é similar:
Entre no Centro de Controle do KDE (navegue nos menus normalmente) e vá na opção Administração do Sistema| Instalador de Fontes. Ele irá carregar uma lista com todas as fontes instaladas no sistema. Clique em “Modo Administrador” e na janela que irá aparecer, dê a sua senha (normalmente é uma janela do kdesudo. Se for o kdesu, dê a senha de root). Uma borda vermelha irá se delinear ao redor da área onde está a lista de fontes. Clique em “Adicionar Fontes” e procure o diretório onde estão as fontes a serem instaladas. Selecione-as, dê OK e aguarde alguns instantes. Ele irá copiar as fontes para o diretório /usr/share/fonts/truetype, que é o diretório padrão de fontes do sistema. Todos os programas que forem abertos a partir de então terão acesso a esse pacote completo de fontes.
Caso não esteja usando KDE e/ou prefira fazer isso usando linha de comando, uma sugestão dada na wiki do Ubuntu é a seguinte: vá ao diretório onde está suas fontes e digite os seguintes comandos:

sudo cp *.ttf /usr/share/fonts/truetype
sudo fc-cache -f -v

Com isso, suas fontes estarão habilitadas também!

Papéis de Parede

Papéis de parede são ainda mais facilmente customizáveis: basta como usuário root ou em sudo copiar os arquivos desejados no diretório /usr/share/wallpapers. Apenas tome cuidado para não sobre-escrever nenhuma imagem padrão do ambiente, para não comprometer integridade do sistema.
Se você estiver usando o Kubuntu mais moderno, ou o Debian com KDE 4.0 ou melhor, existe uma pegadinha que pode dificultar ou até mesmo melhorar as coisas:  você pode criar diretórios com os papéis de parede em várias resoluções, o que facilita ajustes de tela sem arquele problema de deformação no papel de parede.
Bem, acho que não existe mais o que falar sobre isso.

Extensões do Firefox

As extensões do Firefox podem ser disponibilizadas globalmente de duas formas diferentes, como pode ser lido no MozillaZine Knowledge Base. Em ambos os casos elas envolvem a cópia de arquivos dentro da pasta /usr/share/mozilla/extensions. A principal diferença é no comportamento final que terá o processo. Se você tiver já configurado o Firefox em um usuário de acordo com suas necessidades, pode ser útil as extensões FEBE e CLEO.

Solução 1: Cópia dos instaladores de extensões

Nesse método, os arquivos serão instalados pelo usuário em sua pasta local na primeira inicialização do Firefox. Nesse caso, o processo é o seguinte:

  1. Baixe as extensões desejadas em seu formato .xpi, os arquivos de instalação das extensões. No caso de as extensões já estarem instaladas em um Firefox de um usuário, utilize a extensão FEBE para realizar um Backup dos arquivos de instalação .xpi das extensões instaladas.
  2. Vá ao diretório onde as extensões .xpi estão guardadas e copie-os para a pasta indicada anteriormente.

A vantagem desse processo é que evita manipulações desnecessárias na estrutura do sistema. Em compensação, torna o processo de atualização do Firefox de maneira global um pouco mais complexo, uma vez que dependerá muito mais da intervenção do usuário.

Solução 2: Cópia das extensões instalada

Esse processo é mais simples, ainda que existam complicadores na usabilidade e/ou na segurança. Uma vez que você tenha configurado corretamente as extensões na pasta local de um usuário, vá ao diretório .mozilla/firefox/<diretorio_profile>/extensions. Se você precisar saber qual é o <diretorio_profile>, abra o arquivo .mozilla/firefox/profiles.ini, localize o nome do perfil desejado (normalmente será o default) e verifique a opção Path da mesma. Dentro desse diretório, use o seguinte comando.

sudo cp -Rvf * /usr/share/mozilla/extensions

Após terminar a cópia, para testar se todas as extensões estão OK, existe um truque: mova temporariamente o diretório .mozilla para mozilla-old com o comando mv .mozilla mozilla-old e execute o Firefox. Se tudo der certo, suas extensões irão aparecer, ainda que você seja obrigado a reconfigurar tudo.

Mas tudo bem: para voltar às suas preferências, faça o seguinte:

  1. remova o diretório .mozilla com rm -rvf .mozilla;
  2. copie o diretório mozilla-old para .mozilla com cp -Rvf mozilla-old .mozilla;
  3. remova o conteúdo da pasta de extensões do usuário com rm -rvf .mozilla/firefox/<diretorio_profile>/extensions/*;

Execute o Firefox. Tudo estando OK, o Firefox estará com as funcionalidades mantidas exatamente como estavam antes do processo. Qualquer coisa, apenas repita o processo mostrado anteriormente à exceção do passo 3 que tudo deve voltar a ser como antes.

Quando falamos sobre o problema na usabilidade e/ou na segurança, deve-se ao fato das permissões de arquivos na estrutra global. Isso ira afetar a localização e instalação de extensões. Nesse caso, existe a opção de deixar o Firefox sem atualizações automáticas, com um usuário sendo atualizado e copiado para as extensões globais com regularidade, ou então por meio da configuração de acesso a escrita às extensões por meio de chmod a+w -Rvf usr/share/mozilla/extensions, Nesse caso, se quiser evitar que algum engraçadinho desinstale as extensões instaladas, você pode usar o comando chmod a+wt -Rvf usr/share/mozilla/extensions, o que irá ativar o sticky bit (bit “colado”), que impede que os usuários apaguem arquivos dentro do diretório das extensões.

Modelos do BrOffice.org

Esse é um tópico que, em especial, será interessante àqueles que estão usando o remastersys para configurar LiveCDs de instalação para máquinas corporativas. Existem algumas formas diferenciadas de instalação global que irá depender do que você deseja.

No caso de apenas copiar alguns poucos modelos, apenas copie os modelos desejados para /usr/lib/openoffice/basis<versao_do_broffice.org>/share/template como super-usuário. Lembrando que os modelos devem estar nos formatos de template OpenDocument (*.ot*).

Já no caso de copiar pastas completas de modelos, existem algumas dificuldades maiores. Mas se for feito com cuidado, é um processo razoavelmente simples.

  1. Copie as pastas de modelos para algum local dentro da hierarquia principal do sistema (sugestões seriam em /usr/share, /usr/local/share e /opt).
  2. Agora, como super-usuário, edite ou crie o arquivo /usr/lib/openoffice/basis<versao_do_broffice.org>/share/registry/data/org/openoffice/Office/Paths.xcu e adicione o seguinte conteúdo nele:

<?xml version="1.0" encoding="UTF-8"?>
<oor:component-data xmlns:oor="http://openoffice.org/2001/registry" xmlns:xs="http://www.w3.org/2001/XMLSchema" oor:name="Paths" oor:package="org.openoffice.Office">
<node oor:name="Paths">
<node oor:name="Template">
<prop oor:name="UserPaths" oor:type="oor:string-list">
<value>$(user)/template file://<diretorio_das_suas_extensoes></value> </prop>
<prop oor:name="WritePath" oor:type="xs:string">
<value>file://<diretorio_das_suas_extensoes></value>
</prop>
</node>
</node>
</oor:component-data>

Onde <diretorio_das_suas_extensoes> deve ser preenchido com o diretório onde você colocou seus modelos. No caso de vários diretórios diferentes, adicione cada um dos diretórios precedidos por file:// nas duas partes (UserPaths) e (WritePath)

Atenção: Caso você edite manualmente esse arquivo, copie o seu arquivo em outro. Caso o BrOffice.org não “suba”, abra novamente o arquivo, copie o conteúdo original do arquivo e tente novamente.

Para saber se está tudo bem, abra o BrOffice.org, vá em Arquivo | Novo | Modelo e Documentos, Na página “Modelos” a sua pasta deve aparecer e os arquivos de modelos deverão estar lá!

OK… Vamos falar apenas desses casos: execute novamente remastersys dist e sua distro deverá estar melhor ainda ao abrir um Mozilla, suas extensões deverão estar lá (ainda que sem configurações), assim como Templates do BrOffice.org e afins.

Mas dá para melhorar ainda mais um tanto, deixando a cara do boot da sua “distro” mehor ainda:

3-) Dando a sua cara: usuário “padrão”

No caso, agora vamos com calma. Tudo começa com você criando um usuário adicional “limpo” que você irá usar para customizar totalmente as opções do ambiente. No nosso caso vamos criar um usuário mykubuntu. Na linha de comando dê o comando sudo adduser mykubuntu, Dẽ uma senha, confirme-a e as demais informações podem ficar em branco.

Agora, saia do seu usuário normal e logue-se como mykubuntu. Ao entrar no ambiente, comece a customizar o ambiente conforme a necessidade, configurando papel de parede, fontes, temas, configurações de extensões do Firefox, etc… Desse modo, você vai ter uma espécie de “modelo” que você irá usar para criar a cara do usuário “padrão” da sua “distro” remasterizada. As customizações podem envolver o que você achar adequado (adicionar ícones, customizar aparência, adicionar Widgets, etc…). Uma vez que você se dê por satisfeito, deslogue-se e retorne ao seu usuário normal.

Uma vez que você tenha logado, abra um terminal e use o comando sudo -s, para abrir um shell de root. Uma vez feito isso, você precisará copiar os arquivos do diretório do usuário criado (no nosso caso mykubuntu) para dentro do diretório /usr/skel. Além disso, será necessário configurar a posse dos arquivos. No caso, digite os comandos abaixo:

cp -Rvf /home/mykubuntu/* /etc/skel

chown root:root -Rvf /etc/skel

Com esses dois comandos, você coloca os arquivos dentro de /etc/skel, um diretório usado para criar diretórios padrão de usuário. Como isso é copiado para os diretórios padrão de usuários, existe a vantagem adicional de permitir-se que definições padrão sejam adicionadas, o que oferece ganhos para aquele que deseja utilizar o remastersys para customizar um Debian/Ubuntu para uso corporativo e também para “Estações Virtuais”.

Como pode-se ver, o remastersys é uma ferramenta de altíssimo nível que, apesar de simples, oferece muitíssimas opções, e que, combinada com conhecimentos simples e pesquisas no google, oferece possibilidades muito interessantes para o usuário, tanto caseiro quanto corporativo. Espero que esse documento tenha sido do agrado de todos os leitores.

sudo remastersys dist

Configurando Ubuntu Linux como media server para Xbox360

Olá!

Já faz algum tempo que eu não posto nada no blog, e o motivo é que realmente não estava com assunto para postar. Porém, agora tem um bom assunto para postar.

XBOX 360Como alguns sabem, tenho vários consoles de videogames, entre eles já citados um Nintendo DS (na verdade agora tenho um Nintendo DSi mais dois Nintendo DS) e um PSP. Como não poderia deixar de ser, tenho meus consoles de mesa: um PS2, um Wii e um XBOX 360.

O último foi uma aquisição que fiz com o objetivo duplo de jogar (obviamente) e de utilizar como Media Center. Mas como tudo que envolve a Microsoft, descobri que existe um trabalho bastante significativo para colocar vídeos para rodar no XBOX 360, quem dirá disponibilizar esse vídeos em modo Media Server (ou seja, de modo que os vídeos estejam no computador caseiro e sejam buscados pelo XBOX via rede)

Em parte isso se deve a problemas de protocolo e em parte a formatos de arquivo. Então iremos dividir o artigo em duas partes. A primeira, sobre como codificar vídeos para o formato do XBOX 360, e a segunda sobre como disponibilizar os vídeos codificados da maneira correta via rede.

Codificando vídeos para o formato do XBOX 360

O XBOX 360 possui formatos muito determinados sobre como os videos devem ser codificados para ele. No caso, adotaremos um enocde para WMV (Windows Media Video), e utilizaremos uma ferramenta gráfica para Linux, o Hyper Video Converter, que nada mais e que um frontend para MPlayer/Mencoder e ffmpeg. Procure e baixe no site o pacote .deb ou .rpm e instale conforme a suia distro. Ele irá criar um ícone no Menu K /Aplicações. Abra o programa. Ao abrir, uma janela como a abaixo irá aparecer.

Primeira coisa: você vai precisar criar um diretório onde você irá jogar seus arquivos encodados. No meu caso: /home/teste/video. Isso será importante no segundo estágio, quando formos disponibilizar os vídeos via rede. Por agora, escolha qualquer pasta. Em encoder, escolha ffmpeg. Iremos trabalhar com ele por enquanto. Clique em “Encoder Settings”. Você receberá uma janela como a seguinte:

No caso, ele já está com todas as informações sobre como o vídeo deve ser codificado, segundo o link apresentado anteriormente.No caso, optamos por encodar o vídeo em formato WMV2 em Video Codec, que é o único que permite encodar vídeos com saída em FullHD para ele. De qualquer modo, utilizaremos a resoloção como 720p, setada em Video Size (perceba que ela foi colocada em Custom e o valor digitado na caixa de texto em baixo). O Aspect foi deixado em 1:1 (acredito que isso permita que o Aspect Ratio original dos vídeos a serem encodados, sem os distorcer). Setamos o Container Format para ASF. Isso é importante pois o formato ASF é o container padrão para o Windows Media Video. O Video Bitrate pode ser definido para qualquer valor, mas acredito que entre 5000 a 10000 kbps é o suficiente. Menor bitrate implica em maior granulação, enquanto um Bitrate menor pode servir apenas para aumentar demais o arquivo (que ficará enorme). Deixe Target em default.pois ele serve apenas para alguns pré-defs relacionados com DVD (portanto, não é uma boa idéia mexer aí). O Audio Format ddverá ser configurado para wma2 (Windows Media Audio versão 2). Audio Bitrate pode ser deixado em qualquer valor, então 128 kbps deve ser um valor adequado (caso encode shows, pode desejar aumentar esse valor, conforme a qualidade das fontes originais). Sample Rate não têm restrições também, então deixamos em 44100 bps, que é o valor padrão para CD ou DVD.

Precisaremos de algumas configurações mais avançada, então clique em Advanced Settings para que a janela pareça com a seguinte:

A única coisa que precisamos deifinir aqui é o Framerate. Clique na caixa correspondente e defina o valor. No caso atual meu, defini como 25 fps. Se desejar, o limite é de 30 fps conforme o link apresentado anteriormente.

Na aba Misc. Video Settings, existem poucas opções interessantes.

Eu uso por costume 2-pass encoding, mas segundo alguns não faz a menor diferença. Se tiver dúvidas, não mexa nessa aba e aceite os padrões, clicando em OK ao terminar. Clique em Open Files para adicionar videos para conversão. Se selecionar mais de um vídeo, selecione a opção convert all input. Mude a Extensão para wmv e clique em Create Command. Ele irá apresentar na caixa de diálogo de baixo a linha de comando a ser executada. Clique em Convert e aguarde.

A conversão demorará significativamente e, além disso, gerará arquivos enormes (700 MB para 20 min), portanto tenha muito HD livre ao tentar isso ou jogue a saída para um pendrive. Na realidade, precisaremos usar um Pendrive depois do vídeo convertido.

Testando o vídeo

Uma vez que você tenha codificado seu vídeo (lembre-se de ter todos os codecs instalados em sua máquina, inclusive – e especialmente – os de WMV), o vídeo será colocado na pasta indicada em Output Directory, com o nome original e extensão definida em Extension (no nosso caso, wmv). Copie o arquivo para um pendrive e leve ao XBOX 360. Conecte o pendrive por uma das entradas USB, seja as traseiras (próximas à entrada de rede) ou as dianteiras (em baixo do botão de força, protegidas por uma tampa). Ligue o XBOX.

No Dashboardo do XBOX 360, escolha a opção “Biblioteca de Vídeo“. Aperte A.

A opção “Dispositivo Portátil” deverá estar acesa. Selecione-a e navegue no conteúdo do pendrive até achar o arquivo codificado. Selecione-o e clique em Executar. Ele deverá ser exibido. Caso não seja, verifique as configurações de vídeo anteriormente citadas e modifique-as até que o resultado final seja de seu agrado.

Para facilitar a vida, o Hyper Video Converter aceita que você salve Profiles de configurações de vídeo. Uma vez que você tenha a opção adequada, salve-a clicando em Save Profile no Encoder Settings e dê um nome ao mesmo na janela que irá aparecer (ele não sobrescreve profiles existentes). Para carregar um profile, clique em Manage Profiles na janela principal.

Escolha o programa utilizado (no nosso caso, ffmpeg) selecione o profile desejado e clique em Load.

Ok… Uma vez que o vídeo esteja funcionando corretamente, você irá se pegar pensando no tamanho do vídeo gerado e em como isso é dose de ter que ser feito o tempo todo. No caso, vamos utilizar o uShare como servidor de mídia (Media Server), por meio do protocolo uPnP A/V.

Cnfigurando o Media Center

Primeiro, instale como padrão o uShare conforme sua distro. A maioria das distros modernas oferecem o uShare a partir de seus repositórios padrão, assim como suas dependências. Use os comandos adequados para instalar o uShare.

Como root (ou usando sudo), abra um editor de arquvios e procure o arquivo /etc/ushare.conf. Será necessárias algumas modificações nesse arquivo para disponibilizar os vídeos via rede. O arquivo irá se parecer com algo como abaixo.

# /etc/ushare.conf
# Edit this file with 'dpkg-reconfigure ushare'
# Configuration file for uShare
# uShare UPnP Friendly Name (default is 'uShare').
USHARE_NAME=hufflepuff
# Interface to listen to (default is eth0)
# Ex : USHARE_IFACE=eth1
USHARE_IFACE=eth1
# Port to listen to (default is random from IANA Dynamic Ports range)
# Ex : USHARE_PORT=49200
USHARE_PORT=
# Port to listen for Telnet connections
# Ex : USHARE_TELNET_PORT=1337
USHARE_TELNET_PORT=
# Directories to be shared (space or CSV list).
# Ex: USHARE_DIR=/dir1,/dir2
USHARE_DIR=/home/teste/videos
# Use to override what happens when iconv fails to parse a file name.
# The default uShare behaviour is to not add the entry in the media list
# This option overrides that behaviour and adds the non-iconv'ed string into
# the media list, with the assumption that the renderer will be able to
# handle it. Devices like Noxon 2 have no problem with strings being passed
# as is. (Umlauts for all!)
#
# Options are TRUE/YES/1 for override and anything else for default behaviour
USHARE_OVERRIDE_ICONV_ERR=yes
# Enable Web interface (yes/no)
USHARE_ENABLE_WEB=yes
# Enable Telnet control interface (yes/no)
USHARE_ENABLE_TELNET=no
# Use XboX 360 compatibility mode (yes/no)
USHARE_ENABLE_XBOX=yes
# Use DLNA profile (yes/no)
# This is needed for PlayStation3 to work (among other devices)
USHARE_ENABLE_DLNA=no

A maior parte das conbfigurações podem ser deixadas no padrão da distro. No caso, vamos falar das configurações que devem ser modificadas.

  • USHARE_NAME=hufflepuff - Essa linha informa o nome pelo qual sua máquina será conhecida como Media Center. Escolha o nome que lhe aprouver;
  • USHARE_IFACE=eth1 - Essa linha indica qual interface de rede será usada como saída para o seu Media Center. A não ser que você tenha várias placas de rede e/ou algum problema com a interface de rede padrão (eth0), pode deixar em branco. Caso contrário, escolha a inferface a ser utilizada, lembrando que o XBOX 360 deve estar conectado fisicamente à estrutura de rede desejada;
  • USHARE_DIR=/home/teste/video - Essa linha é uma das que devem ser obrigatoriamente modificada. Ela indica onde o uShare deverá buscar arquivos de mídia. No meu caso, /home/teste/video. Lembre-se de dar o mesmo caminho dado no Hyper Video Converter, ou então selecionar vários caminhos, separando-os por vírgulas.
  • USHARE_ENABLE_WEB=yes - Essa linha é útli ao administrar os compartlhamentos a serem buscados. Se você ativar essa opção, a janela de administração do uShare estará disponível em http://<servidor&gt;:<porta>/web/ushare.html, onde <servidor> representa o IP ou DNS do servidor uShare (repare que esse nome não precisa ser o mesmo e pode não ter relação com o nome uPnP indicado em USHARE_NAME) e  <porta> é a porta definida pelo uShare para atender (normalmente 49152, modificada em USHARE_PORT);
  • USHARE_ENABLE_TELNET=no - Essa linha tem a mesma funcionalidade e uso da anterior, USHARE_ENABLE_WEB, mas usando Telnet ao invés do navegador. Como isso pode ser um potencial furo de segurança (uma vez que o Telnet não é um protocolo conhecido pela segurança), é recomendável deixar essa opção em no;
  • USHARE_ENABLE_XBOX=yes – Essa opção é a que define o suporte para o XBOX 360 e deve estar obrigatoriamente em yes;
  • USHARE_ENABLE_DLNA=no – Essa opção define o suporte para alguns recursos avançados em uPnP A/V. Essa opção é usada em especial no PS3 e em outros Media Centers, mas usar essa opção no XBOX 360 apenas serve para confundir o sistema. No caso, deixe-a em no se for usar o XBOX 360 como Media Center;

Com isso definimos toda a configuração necessária para o mesmo no Linux. Inicie o servidor conforme a distro (normalmente service ushare start como root). Nota: no Ubuntu por algum motivo o uShare ignora sumariamente a opção USHARE_ENABLE_XBOX=yes, portanto devemos forçar o suporte a XBOX 360. Para isso, inicie o uShare em um terminal ushare -x. Antes disso, pare o servidor uShare (normalmente com sudo service ushare stop). O uShare pode ser iniciado sem obrigatoriedade de superusuário por usar portas TCP altas (acima de 1024). Mantenha o terminal aberto enquanto não estiver o usando. Como opção, pode ser usado o comando nohup ushare -x & para fazer com que o uShare rode em backgroung.

Configuração no XBOX 360:

Primeiro, ligue o XBOX 360 à rede onde o Media Server uShare está ligado (nomralmente conectando um cabo entre o roteador da rede do uShare e o XBOX 360). Em seguida, ligue o XBOX 360 e vá em “Configurações de Sistema“.

Vá em Configurações de Rede.

Selecione Testar Conexão no PC. Ele poderá dar um aviso de desconectar os usuários do videogame. Confirme e aguarde. Ele deverá aparecer uma máquina com o nome dado por voce em USHARE_NAME.

Tudo OK, aperte A e volte para o Dashboard e escolha a opção “Biblioteca de Vídeo“. Aperte A.

Deve ter uma opção com o nome da sua máquina. Escolha-a. Uma lista dos vídeos disponíveis na sua pasta deve aparecer. Atenção: ele não fará distinção de pastas, colocando todo o conteúdo dentro da pasta espalhado. Escolha o vídeo desejado e clique em Reproduzir:

E aproveite os seus vídeos. Utilizar o XBOX 360 como Media Center dá um certo trabalho, mas vale a pena!

PS: As telas do XBOX 360 foram fotografadas com uma câmera FujiFilm FinePix s5100fd com alta qualidade a partir de uma teve LCD 32″ buster 720p.

Saiba mais

Revertendo atualização (downgrade) de pacotes no Debian/Ubuntu

Faz bastante tempo que não posto nesse blog (acho que mais de 6 meses), mas a verdade é que eu não tinha nenhum tema interessante ou dica a dar. Continuei usando Linux (no caso, Ubuntu Karmic Koala 9.10), o que me atende muito bem.
Recentemente, porém, tive um problema: devido a um problema de configuração do meu sources.list (arquivo de fontes de pacotes para Debian/Ubuntu), me vi pegando um pacote de drivers para placas de vídeo Intel GMA450 no Xorg que estava muito instável (caía o tempo todo com o KDE 4.3 e não permitia um uso adequado do sistema). Depois de instalar um outro gerenciador de janelas mais simples (optei pelo LXDE), conversei com o pessoal da sala #kubuntu do Freenode e fui aconselhado a dar um downgrade (ou seja, reverter a atualização) do pacote de drivers do X. Como não sabia o que fazer, recorri ao Guia do Mochileiro das Galáxias (também conhecido como Google), e obtive uma resposta:
Bem, a primeira coisa é saber o nome do pacote a se dar o downgrade. No meu caso era xserver-xorg-video-intel, mas utilizarei o mesmo exemplo da fonte em questão. Você irá precisar ir a um terminal e usar os comandos apt-cache (para consultar as informações sobre o pacote) e aptitude (para efetuar o downgrade).
Sabendo o nome do pacote, utilize o comando apt-cache showpkg <pacotedesejado>, que irá listar quais versões do pacote em questão estão disponíveis no repositório. É importante que você note isso, pois pode acontecer que o repositório não possua a versão que você deseja do pacote. De qualquer modo, vamos por exemplo ver uma saída para o pacote sun-java6-jdk (SDK do Java 6 que era o problema da fonte de informação):

apt-cache showpkg sun-java6-jdk

Package: sun-java6-jdk
Versions:
6-14-0ubuntu1.9.04 (/var/lib/apt/lists/security.ubuntu.com_ubuntu_dists_jaunty-proposed_multiverse_binary-amd64_Packages) (/var/lib/dpkg/status)
Description Language:
File: /var/lib/apt/lists/security.ubuntu.com_ubuntu_dists_jaunty-proposed_multiverse_binary-amd64_Packages
MD5: cb47d4c49fa7317c472613b7010ef9d8
6-13-1 (/var/lib/apt/lists/au.archive.ubuntu.com_ubuntu_dists_jaunty_multiverse_binary-amd64_Packages)
Description Language:
File: /var/lib/apt/lists/au.archive.ubuntu.com_ubuntu_dists_jaunty_multiverse_binary-amd64_Packages
MD5: cb47d4c49fa7317c472613b7010ef9d8
Reverse Depends:
sun-java6-source,sun-java6-jdk 6-14-0ubuntu1.9.04
sun-java6-javadb,sun-java6-jdk 6-14-0ubuntu1.9.04
sun-java6-demo,sun-java6-jdk
sun-java6-demo,sun-java6-jdk 6-14-0ubuntu1.9.04
libnb-java2-java,sun-java6-jdk
libnb-java2-java,sun-java6-jdk
sun-java6-source,sun-java6-jdk 6-13-1
sun-java6-javadb,sun-java6-jdk 6-13-1
sun-java6-demo,sun-java6-jdk
sun-java6-demo,sun-java6-jdk 6-13-1
glassfishv2-bin,sun-java6-jdk
glassfishv2,sun-java6-jdk
Dependencies:
6-14-0ubuntu1.9.04 - sun-java6-bin (5 6-14-0ubuntu1.9.04) libc6 (0 (null)) libx11-6 (0 (null)) debconf (18 0.5) debconf-2.0 (0 (null)) sun-java6-demo (0 (null)) sun-java6-doc (0 (null)) sun-java6-source (0 (null))
6-13-1 - sun-java6-bin (5 6-13-1) libc6 (0 (null)) libx11-6 (0 (null)) debconf (18 0.5) debconf-2.0 (0 (null)) sun-java6-demo (0 (null)) sun-java6-doc (0 (null)) sun-java6-source (0 (null))
Provides:
6-14-0ubuntu1.9.04 - java6-sdk java5-sdk java2-sdk java2-compiler java-sdk java-compiler
6-13-1 - java6-sdk java5-sdk java2-sdk java2-compiler java-sdk java-compiler
Reverse Provides:

Perceba que tem dois números de versão destacados. O primeiro (em amarelo) representa a versão atualmente instalada, enquanto a segunda (em verde), a que desejamos instalar. Caso haja outras versões, pode obviamente ser usada quaisquer delas. A questão aqui é a seguinte: anote o nome da versão como indicada. Você precisará do valor exato para passar para o aptitude para que ele possa instalar a versão desejada. Perceba também que pode acontecer problemas com dependências (versões antigas de dependências serem exigidas, etc), portanto tenha cuidado ao realizar essa operação.
Muito bem, uma vez que você tenha obtido o número de versão desejado do pacote, é hora de mandar o aptitude instalar essa versão. Para isso, você irá usar o comando aptitude install <pacotedesejado>=<versaodesejada>. Importante: esse comando exige poder de adminstrador (root) e, portante, exige su ou sudo. Vamos então utilizar o número de versão que anotamos na saída do apt-cache como opção no comando que mostramos anteriormente.

sudo aptitude install sun-java6-jdk=6-13-1

A saída será similar à seguinte, que lembra bem a de um apt-get normal:


Reading package lists... Done
Building dependency tree
Reading state information... Done
Reading extended state information
Initializing package states... Done
The following packages are BROKEN:
sun-java6-jdk
0 packages upgraded, 0 newly installed, 1 downgraded, 0 to remove and 2 not upgraded.
Need to get 17.7MB of archives. After unpacking 1925kB will be freed.
The following packages have unmet dependencies:
sun-java6-jdk: Depends: sun-java6-bin (= 6-13-1) but 6-14-0ubuntu1.9.04 is installed.
The following actions will resolve these dependencies:
Remove the following packages:
sun-java6-fonts
sun-java6-plugin
Downgrade the following packages:
sun-java6-bin [6-14-0ubuntu1.9.04 (jaunty-proposed, now) -> 6-13-1 (jaunty)]
sun-java6-jre [6-14-0ubuntu1.9.04 (jaunty-proposed, now) -> 6-13-1 (jaunty)]
Score is 188
Accept this solution? [Y/n/q/?] Y
The following packages will be DOWNGRADED:
sun-java6-bin sun-java6-jdk sun-java6-jre
The following packages will be REMOVED:
sun-java6-fonts{a} sun-java6-plugin{a}
0 packages upgraded, 0 newly installed, 3 downgraded, 2 to remove and 2 not upgraded.
Need to get 50.7MB of archives. After unpacking 4096kB will be freed.
Do you want to continue? [Y/n/?] Y

Perceba que o aptitude irá resolver todas as dependências, inclusive revertendo pacotes que sejam dependências do pacote revertido. É um comando que demanda muito cuidado, uma vez que ele pode levar dependências que não deveriam, inclusive podendo remover pacotes que tenham sido instalados pela nova versão do pacote a ser revertido. Analise a saída e, caso tenha certeza, confirme. Pode ser que, dependendo do pacote, você precise reiniciar o X (como foi meu caso) ou mesmo o computador, mas a reversão terá sido feita.
É importante isso pois pode acontecer (como aconteceu no meu caso) de pacotes muito novos gerarem instabilidade no uso do sistema. Tome muito cuidado ao atualizar o sistema e procure pegar pacotes apenas de fontes confiáveis. Se não tiver confiança, não é recomendável, por exemplo, buscar pacotes em PPAs (PPAs são repositórios de desenvolvimento que são utilizados para pacotes muito novos), como aconteceu comigo.

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.