[Fedora-users-br] Atualizar o FC10 i386 com x86_64

Hugo Cisneiros (Eitch) hugo em devin.com.br
Domingo Abril 5 20:47:54 UTC 2009


2009/4/5 Marcio Carneiro <viabsb em gmail.com>:
> Ou seja, a distribuição limita-se ao gerenciador de pacotes.
> Você não tem a liberdade de agir fora do que o gerenciador faz, pois o risco
> de criar uma incompatibilidade com os arquivos instalados pelo gerenciador é
> grande e você pode perder tudo, como você disse que aconteceu com você (o
> mesmo comigo, era o que eu tentava dizer e foi exatamente com o glibc).
> Eu não disse que uma distribuição é apenas um gerenciador de pacotes, digo
> que se limita ao limite dêle.

Disse sim. ;-)

> Quanto às ligações dinâmicas, creio que não entendi, ou o que você disse ou
> o que é uma ligação dinâmica.
> Eu vi o seguinte: instalar um programa num diretório independente de
> ligações dinâmicas e criar as ligações dinâmicas necessárias para a execução
> do programa nos diretórios de binários e bibliotecas, OU, colocar os
> caminhos da instalação nova no caminho do SO.
> É isto que entendo como "independência" do gerenciador de pacotes, ou seja,
> uma biblioteca instalada a partir dos fontes de um programa e compilado fora
> do gerenciador não vai criar uma dependência que afete o SO ou os programas
> instalados pelo gerenciador quando aquêle for eliminado.

Não vou explicar novamente tudo de novo... Recomendo, assim como no
e-mail anterior, você dar uma pesquisada sobre a diferença entre
linkagem estática e dinâmica. Isso não envolve apenas links
simbólicos, vai muito além disso.

Se você deixar tudo independente do gerenciador de pacotes, você mesmo
terá que ser o gerenciador de pacotes. Eu prefiro que algo faça isso
pra mim, e acho que muita gente concorda comigo...

> E é isto que eu não vejo acontecer com os gerenciadores de pacotes e por
> isto reduzi tudo ao mesmo denominador comum: o que um SO não faz fora do
> gerenciador o torna limitado ao gerenciador, que, afinal, é o que importa.

Da mesma forma que você instalaria o programa cru, sem gerenciador de
pacote nenhum, você poderia muito bem fazer um pacote deste programa e
instalá-lo. Num mundo ideal, todos os programas teriam isto, mas como
eu já disse, existem muitas distribuições, muitos gostos e muitas
opções para poder unificar tudo.

> NÃO se trata de "colocar todos os programas linkados estaticamente", nunca
> disse isto, ou me expressei mal.

Claro que se trata... Do jeito que você fala, para os programas serem
independentes uns dos outros, eles tem que ter todas as funções dentro
deles mesmos, sem chamadas externas. Senão é apenas uma mudança de
diretório de instalação: que dá pra fazer até com gerenciadores de
pacotes, com ./configure ; make ; make install, etc.

> Quanto ao GoboLinux, os programas não são todos ligados dinamicamente, as
> ligações dinâmicas é que são criadas nos diretórios onde estão os binários
> do SO.

Não são todos ligados dinamicamente? Já disse: não confunda esse
conceito com links simbólicos ou organização diferente dos diretórios.
Quero ver se os comandos "ldd" não mostram nenhuma dependência nos
vários programas

> Os programas do GoboLinux ficam num diretório de Programas e para apagar um
> programa você simplesmente elimina o diretório. Vão sobrar as ligações
> dinâmicas nos diretórios dos binários e das bibliotecas, o que facilita a
> manutenção num sistema Gobo, pois tudo que fôr ligação dinâmica ausente
> poderá ser apagada pois pertenciam a programas que foram apagados.
> Isto será assim até a mudança final da árvore de diretórios, física, o que
> mudará a árvore do unix completamente.

Pra apagar um programa numa distro com gerenciador de pacotes, basta o
cara digitar o comando de remoção do pacote. Não vai sobrar nenhuma
ligação, então o usuário não precisa remover mais nada. Isso torna a
manutenção do sistema ao longo prazo muito boa. Se você quer fazer a
mesma coisa que no GoboLinux, você simplesmente cria um pacote com seu
programa. O que muda aí?

> Não vejo nenhuma idéia louca, o que vejo é que você entendeu mal o que eu
> disse, ou eu me expressei mal, pelo que me desculpo.
> Quanto à independência entre os programas no GoboLinux, sim, isto muda tudo,
> porque você pode eliminar um programa sem se preocupar com qualquer
> dependência.

Duvido! E isso eu duvido muuuuuuuito! Se você me provar isso, eu
desisto e você me convence. E digo isso pelas razões que já expliquei
antes. Me prove! E não vale você remover algo tão banal como uma
aplicaçãozinha isolada, quero ver isso acontecer com bibliotecas
importantes para vários programas. Por exemplo, o GIMP e GTK. Se você
me provar que, numa instalação normal do GoboLinux, você remover o GTK
e continuar a usar o GIMP sem qualquer biblioteca GTK, então você me
prova que ele é compilado estaticamente.

Como eu disse antes, uma série de comandos "ldd" nos executáveis pode
mostrar isso também.

> Sim, eu sei que você pode instalar vários programas iguais. A questão não é
> esta. É que você NÃO pode instalar dois pythons com um gerenciador de
> pacotes (RPM) porque êle assume que você está instalando o MESMO que êle já
> conhece e é INDISPENSÁVEL ao SO, no caso do python, por causa do yum, por
> exemplo, se êle for não-relocável.

Opa, claro que pode. Como eu disse antes, o Debian faz isso com o php
(apenas um exemplo que eu dei, outro seria o Apache), é só mudar o
nome do pacote e sua localização. php4 para a versão 4, php5 para a
versão 5, apache para a versão 1.x, apache2 para a versão 2.x. Há uns
anos atrás, eu mantinha duas versões de pacotes para o MySQL no
CentOS: mysql (da distro) e mysql5 (personalizado) pra poder ter as
duas versões.

É a mesma coisa. O que muda é o método de fazer, e o GoboLinux fica
mais amigável aos olhos dos usuários finais. Da mesma forma que você
tem que criar um pacote personalizado, no GoboLinux você tem que
compilar o programa utilizando parâmetros especiais pra ele entender
que vai ser instalado em múltiplos diretórios (para versões
diferentes).

> E poucos são relocáveis, problema que o GoboLinux resolve com a
> não-dependência de ligações dinâmicas.
> Quanto às compilações dinâmicas serem vantajosas em relação à compilação
> estática, prefiro a redundância de arquivos e a segurança de poder tirar
> qualquer coisa a qualquer hora do que ter um pesadelo de manutenção e
> depender de um gerenciador de pacotes, que VAI falhar.

Boa sorte... :P

> Pacotes de programas que contêm TUDO são mais seguros, o espaço em disco é
> cada vez mais barato, como a memória, e o problema passa a ser de desempenho
> do processador e otimização do código.

Eu odeio esse pensamento atual. "Ah, temos muita coisa, podemos deixar
pesado", e deixam de pensar em desempenho e otimização. Esse "problema
passa a ser de desempenho de processador e otimização de código" é sim
o mesmo problema, e QUE PROBLEMA.

Como você não pesquisou sobre os programas estaticamente linkados e
está defendendo isso, vou dar uma leve explicada sobre desempenho
nesse caso.

Se todo programa tivesse tudo estaticamente linkado, isso significa
que para cada programa rodado, uma instância de todas as bibliotecas
do sistema necessárias é feita. Isso significa que o programa vai
gastar mais disco, mais memória, mais processamento, tudo isso muito
desnecessariamente.

Imagine se no meu sistema:

$ ps ax | wc -l
112

Tenho 112 processos e cada um desses processos carrega todas as bibliotecas?

Meu deus! Seria o caos! Imagina que eu tenho aqui o yakuake (emulador
de terminal do KDE que utiliza o konsole) rodando:

$ ps ax | grep yakuake
 3217 ?        S      0:18 yakuake -session
10d8c2646f000121314150100000055050017_1238815489_972047

Agora vamos ver que bibliotecas compartilhadas ele está usando:

$ ldd /usr/bin/yakuake
        linux-gate.so.1 =>  (0xb7f6f000)
        libkdeui.so.4 => /usr/lib/libkdeui.so.4 (0xb7c4d000)
        libkio.so.4 => /usr/lib/libkio.so.4 (0xb78d6000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb77e7000)
        libm.so.6 => /lib/i686/cmov/libm.so.6 (0xb77c1000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb77b4000)
        libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb7659000)
        libkdecore.so.4 => /usr/lib/libkdecore.so.4 (0xb73f5000)
        libDCOP.so.4 => /usr/lib/libDCOP.so.4 (0xb73be000)
        libqt-mt.so.3 => /usr/lib/libqt-mt.so.3 (0xb6cc5000)
        libX11.so.6 => /usr/lib/libX11.so.6 (0xb6bd5000)
        libkdefx.so.4 => /usr/lib/libkdefx.so.4 (0xb6bab000)
        libXext.so.6 => /usr/lib/libXext.so.6 (0xb6b9d000)
        libkdesu.so.4 => /usr/lib/libkdesu.so.4 (0xb6b88000)
        libkwalletclient.so.1 => /usr/lib/libkwalletclient.so.1 (0xb6b78000)
        libz.so.1 => /usr/lib/libz.so.1 (0xb6b62000)
        libfam.so.0 => /usr/lib/libfam.so.0 (0xb6b59000)
        libacl.so.1 => /lib/libacl.so.1 (0xb6b52000)
        libattr.so.1 => /lib/libattr.so.1 (0xb6b4d000)
        /lib/ld-linux.so.2 (0xb7f70000)
        libart_lgpl_2.so.2 => /usr/lib/libart_lgpl_2.so.2 (0xb6b37000)
        libidn.so.11 => /usr/lib/libidn.so.11 (0xb6b05000)
        libSM.so.6 => /usr/lib/libSM.so.6 (0xb6afd000)
        libICE.so.6 => /usr/lib/libICE.so.6 (0xb6ae6000)
        libdl.so.2 => /lib/i686/cmov/libdl.so.2 (0xb6ae2000)
        libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0xb6ab8000)
        libaudio.so.2 => /usr/lib/libaudio.so.2 (0xb6aa1000)
        libXt.so.6 => /usr/lib/libXt.so.6 (0xb6a51000)
        libjpeg.so.62 => /usr/lib/libjpeg.so.62 (0xb6a32000)
        libpng12.so.0 => /usr/lib/libpng12.so.0 (0xb6a0f000)
        libXi.so.6 => /usr/lib/libXi.so.6 (0xb6a07000)
        libXrender.so.1 => /usr/lib/libXrender.so.1 (0xb69fe000)
        libXrandr.so.2 => /usr/lib/libXrandr.so.2 (0xb69f7000)
        libXcursor.so.1 => /usr/lib/libXcursor.so.1 (0xb69ee000)
        libXinerama.so.1 => /usr/lib/libXinerama.so.1 (0xb69eb000)
        libXft.so.2 => /usr/lib/libXft.so.2 (0xb69d8000)
        libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xb6963000)
        libpthread.so.0 => /lib/i686/cmov/libpthread.so.0 (0xb694a000)
        libxcb-xlib.so.0 => /usr/lib/libxcb-xlib.so.0 (0xb6947000)
        libxcb.so.1 => /usr/lib/libxcb.so.1 (0xb692f000)
        libXau.so.6 => /usr/lib/libXau.so.6 (0xb692c000)
        libexpat.so.1 => /usr/lib/libexpat.so.1 (0xb6906000)
        libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0xb6900000)
        libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0xb68fb000)

OMG! Então cada programa do KDE, como o yakuake, teria que carregar
todas as chamadas de biblioteca do KDE!  Todas as bibliotecas do Xorg!
A biblioteca do C++! Acredite em mim, isso é impraticável, NENHUM
sistema é assim e vai ser difícil de ser, porque o problema não é
apenas nessa perda de desempenho e recursos, mas também no
gerenciamento final do sistema.

É como os módulos do kernel. Imagine que você pode colocar tudo na
imagem principal do kernel. Pra que colocar tudo se você vai usar 10%?
Por que você tem espaço demais e memória demais e processamento
demais? E os dispositivos embarcados como celulares, roteadores,
appliances, etc?

> Um celeron com linux pode ser melhor do que com ruindous, ou entre dois
> linux, um compilado para i386 e outro para i586. Do ponto de vista do pacote
> estático, é indiferente.

*NADA* haver. Por favor, não fale coisas que não sabe.

>> >> > Fica o pedido de socorro para instalar os tais macêtes.
>> >> >
>> >> > Com relação ao kernel, minha sugestão é partir para a compilação do
>> >> > kernel
>> >> > com o OCAML DUCE.
>> >>
>> >> LOL :-)
>> >
>> > Nem mesmo uma razão para não fazer ou você não conhece a linguagem?
>>
>> Não conheço, não posso opiniar. Eu ri porque você está sugerindo criar
>> um sistema operacional do zero. "Talk is cheap, show me the code".
>
> Não disse isto, mas me sôa meio atrasado.
> Johen Kennedy, em 1962, desafiou o povo Estadunidense a levar um homem à
> Lua, pousar e trazê-lo de volta em segurança antes do fim da década.
> É um exemplo de Projeto perfeito.
> E êles fizeram.

É, e o pessoal lá falou assim para o pessoal da NASA:

"Ignorem todas as descobertas da física e tudo que já foi feito até
hoje e comecem a criar tudo do zero, aí vocês vão lá pra lua dessa
forma, ok?"

Mas que analogia nada haver hein?

> Só para citar alguém que falava inglês.
> Então, fazer uma porcaria de um sistema operacional do zero deveria ser uma
> OPORTUNIDADE, e pelo visto, você não está á altura do desafio.
> Creio que CADA faculdade de TI do .br DEVERIA entrar na corrida pelo SO.br!.
> E creio que o SO deveria ser escrito em OCAMLDUCE com C ou assembler no que
> fôsse necessário.

Boa sorte!

Vamos aproveitar e montar um projeto para a paz mundial.

>> Ainda mais, a linguagem não importa na maioria das vezes, o que
>> importa é o programador e seu design de código. Pode ser a linguagem
>
> Se a linguagem não importa porquê você acha que fizeram C para criar o UNIX?
> Porquê não foi escrito em BASIC?
> Porquê a SUN criou o java para aquecer torradeiras à distância e não usou o
> pascal para fazer isto?

Repetindo, "a linguagem não importa NA MAIORIA DAS VEZES". Não
desconsiderei tudo, eu quis dizer que o PROGRAMADOR importa e MUITO.
Citar exemplos desse de C vs. BASIC é meio ridículo. Não piore as
coisas.

>
>>
>> mais perfeita, um programador ruim pode fazer besteira do mesmo jeito.
>> Falar que ficaria muito melhor utilizando linguagem X é desconsiderar
>> todas essas variáveis.
>>
>> >> É sério, reli meu e-mail e ficou com um tom muito sarcástico... Dei
>> >> até a entender que sou chato. Mas é, eu sou chato mesmo! :P
>> >>
>> >> Sinceramente, você tem umas coisas muito loucas na cabeça, por favor
>> >> reveja seus conceitos, tem muita coisa que você diz aí que nem parece
>> >> que sabe do que tá falando :(
>> >
>> > Quando o índio que viu a primeira caravela disse aos demais o que via
>> > também
>> > foi chamado de louco e via coisas que ninguém via: e era verdade.
>> >
>> > Se você não vê algo que alguém disse que viu não diga que êle é louco,
>> > isto
>> > é rude, mal-educado.
>>
>> Interpreta-se como quer.
>
> Isto é autoritário.

Onde? Eu não obriguei nada e nem impus nada aqui.

>> Eu ainda acho suas idéias loucas. Você pode
>> não ser louco (e nunca disse isso), mas pra mim tem idéias loucas e
>
> Hein?
>
>>
>> equivocadas. Ao invés de achar isso rude e mal-educado, instigue-se,
>> use a cabeça e prove-me que suas idéias não são loucas! Senão como
>> você vai convencer o resto do mundo?
>
> Você precisa estudar um pouco mais o idioma falado por aqui.
> Sujeito, objeto direto, estas coisas.
> Pessoas sadias NÃO têm idéias loucas, loucos as têm.

Tá começando a viajar mais ainda né? Você tá levando tudo literalmente
então? Pessoas sadias tem idéias loucas sim, idéias fora do comum.
Isso não a deixa "louca". Faça-me um favor...

> Eu não tenho de provar nada para você nem para ninguém, não estou aqui para
> isto.

Por que? Eu acho o contrário. Se você acha que tem uma idéia boa,
estude-a e prove-a para todos os outros! Não é você que quer um mundo
Unix/Linux melhor? Você acha que vai concretizar sua idéia se não
compartilhar, lutar e defender seus pontos de vista? Tá aqui pra que
então, criar polêmica apenas? Espero que não.

> Estou debatendo um assunto que me interessa, e com você porque já demonstrou
> ter conhecimento. Mas isto não te dá direitos extras.
> Eu não acho nada, sou um cara sem sorte, se não faço ou não compro pronto,
> fico sem.
> Não se desculpe, desculpe-se, não tenho de ser instigado, pois estou,
> justamente, instigando, e você não aceitou muito bem..... partiu para a
> loucura ... mandou mudar conceitos ... e se parece que estou dizendo algo
> que não sei o que é, não te pareceu que poderia ser justamente por isto que
> estou nesta lista?

Você acha que eu deveria fazer o que? Ler o seu e-mail e aceitar tudo
que, do meu ponto de vista, parece idéias loucas? Se eu te digo que
parece que você não sabe das coisas, eu tento lhe falar (como estou
fazendo) como as coisas funcionam e tento falar pra você pesquisar e
desenvolver seu conhecimento. Se você acha que é só birra minha, aí eu
não posso fazer nada ;-)

>> O mundo é grande e existem diversos tipos de usuários. O Linux é
>> orientado para usuários SIM, só não todos.
>
> Então não é!

Então nenhum sistema operacional é orientado a PN.

Da próxima vez então, diga que o Linux não é orientado a o nicho de
usuários que não quer saber de nada, só quer usar seus programinhas e
não quer aprender nada. EU sou um usuário, tenho muitos amigos
usuários e achamos que o Linux é SIM orientado para meu perfil. Tanto
que vou para os outros sistemas e me sinto muito preso: mesmo tendo
conhecimento de como eles funcionam.

>> Se você dissesse que o
>> Linux não é orientado a usuário "final", eu concordo até certa parte.
>
> Não existem dois tipos de usuários, não existe o "usuário final".
> Ou você codifica ou usa o código.
> Você é um programador, quando não está fazendo o programa, está "usando" o
> computador, o que faz de você um "usuário final".

Claro que existe vários tipos de usuário. Um administrador de sistemas
não codifica, mas usa as várias ferramentas do sistema para fazer
tarefas. O usuário final utiliza apenas alguns programinhas que não
fazem coisas muito complexas com o próprio sistema, é outro perfil. Um
usuário gamer quer muito hardware e sempre está querendo jogar seus
jogos, é outro perfil.

Eu não jogo muito, então uso Linux. Linux não é bom para Jogos. Quando
jogo, vou pro Windows que tenho aqui.

Eu administro redes e servidores, Linux é ótimo para isso. Quando vou
pro Windows, vejo várias limitações nesse sentido.

É a mesma coisa que dizer que todos os clientes de uma loja são os
mesmos e tem os mesmos gostos. Vai com esse pensamento montar uma
empresa ou um produto que você vai pro limbo hoje em dia fácil fácil.
Por que você acha que data-mining e informações pessoais vale tanto
dinheiro hoje em dia?

>> Se você diz que Linux não é orientado a usuário "gamer", eu concordo
>> 100%. Mas tudo isso é relativo não?
>
> Se ISTO é relativo, porquê não AQUILO?

O que é aquilo? E a última frase eu falei ironizando mesmo.

>> Linux é orientado para os usuários corporativos e para os servidores,
>
> Não existem usuários corporativos, existem um ambiente corporativo.
> Os usuários corporativos são os mesmos que qualquer outro usuário, êle usa.
> Servidores não são usuários, são máquinas.
> Servidores têm usuários.
> O Linux NÃO é orientado a usuários, não pensa nos usuários e não é feito
> para os usuários, é um esfôrço coletivo e vê apenas os usuários que são
> capazes de participar do esfôrço.
> Você quer tapar o sol com uma peneira.
> Estamos envidando um esfôrço nôvo, para fazer o Linux ser tolerado pelo
> usuário "final", que é o comercial, o usuário que compra um produto de TI,
> enfim, um usuário que não participa da construção do Linux.

Já falado acima.

>> mas isso também está mudando: se chama crescimento/expansão.
>> Infelizmente nosso crescimento nessa área é uma porcaria :)
>
> Concordo.
> Você já notou que praticamente nenhuma universidade têm um savane, um GForge
> um ou um sourceproject?
> Parece que a academia não liga a mínima para o mundo da produção de TI.
> O mesmo com as SUCESU, não ligam para os usuários, não são focados nos
> usuários, não investem nos usuários.
> As universidades usam o google para fazer pesquisa internamente, nem se
> dignaram a instalar um glimpse ou um htdig para criar o serviço dentro de
> casa.
> Imagine a quantidade de alunos de TI que poderiam estudar êstes ambientes e
> não podem fazer porque as instituições investem na inteligência estrangeira
> e marginalizam a nossa.
> Você não se sente um pouco "menos" explorado do que poderia ser, dado o
> conhecimento que já tem?

Eu não... Gosto de usar as coisas que já existem e reaproveitá-las da
melhor forma possível. Ficar criando coisas redundantes e não usar o
que já existe vai contra o princípio do software livre. Ele é livre
para isso.

Se as universidade usam o Google, é porque ele é bom, vale usar ele.
Vale mais do que investir e tentar criar uma ferramenta de busca
própria. Se têm uma idéia melhor, ótimo: criem, desenvolvam e a tornem
usável para todos. Se ela for realmente melhor em vários aspectos, ela
vai ser usada e você vai ser o centro das atenções.

Acho que um exemplo disso seria a criação de distribuições. Eu canso
de ver neguinho fazendo distribuição e defendendo a unhas e dentes, ao
invés de unir os esforços com uma distribuição que já existe:
adaptá-la, brigar e lutar por conceitos novos, tornar melhor. Ao invés
disso, é mais fácil você simplesmente pegar o código que é todo livre
e começar a modificá-lo sem ter que lutar nem nada e criar um novo
produto. Se esse novo produto se difere MUITO dos que ja existem, acho
bastante válido e interessante (exemplo do próprio GoboLinux), mas se
é quase igual, só que um "branding" diferente (como é muitas das
distribuições vendidas em computadores populares daqui do Brasil),
então eu acho totalmente inválido. Mas nem quero falar muito disso...

-- 
[]'s
Hugo
www.devin.com.br




Mais detalhes sobre a lista de discussão br-users