Visite também: Currículo ·  Efetividade BR-Mac

O que é LinuxDownload LinuxApostila LinuxEnviar notícia


Uma alternativa ao modelo atual de empacotamento de software?

“”(…) não posso dizer pelos outros, mas me sinto muito estúpido quando sou obrigado a fazer algo que uma máquina faria muito mais rápido e eficientemente do que eu. Se toda a internet funciona com máquinas independentes, sendo a intervenção humana resumida a alguns Homer Simpsons olhando LEDs piscarem, por que cada singelo software tem que ser manualmente baixado, compilado, configurado e empacotado ?”

Com essa pergunta, proponho uma forma de automatizarmos o empacotamento de softwares para cada distribuição GNU Linux viabilizado por um Acordo de Cooperação Tecnológica entre desenvolvedores de software e as distribuições de sistemas livres, sem que nenhum padrão único ou tecnologia única seja adotada.”

Enviado por Kurt Kraut (ubuntuΘkurtkraut·net) – referência (kurtkraut.net).


• Publicado por Augusto Campos em 2008-02-04

Comentários dos leitores

Os comentários são responsabilidade de seus autores, e não são analisados ou aprovados pelo BR-Linux. Leia os Termos de uso do BR-Linux.

    Bom, adianto que isso que você menciona é o padrão do Gentoo, Litrix e Sabayan, mas vou ler seu artigo para ver do que se trata exatamente.

    Alguém dá um nobel pro sujeito! Ele descobriu sozinho que o empacotamento é uma bagunça em Linux!!

    Ironias à parte, só dá pra fazer empacotamento automático quando o próprio software permite, muitos não seguem padrões como o autotools e então fica complicado criar um script de empacotamento automático. Mas com os “grandes” softwares como apache, gnome, etc. eu duvido que alguém nas distros compile na mão, já tem um script prontinho quando sai o estável.

    Um sisteminha tipo o ports do BSD ou o portage do Gentoo seriam a minha preferência.

    Pelo que eu entendi, ele está falando sobre como seria bom se os distribuidores e os desenvolvedores dos pacotes combinassem entre si padrões que permitissem automatizar o processo de empacotamento, e a questão que ele está abordando é justamente esta de os desenvolvedores não adotarem um padrão em comum.

    Para mim, o grande nó da questão, caso alguém decidisse abordá-la na prática, seria oferecer motivação aos desenvolvedores. Eles hoje disponibilizam seus softwares no formato que melhor os agrada. O que faria cada um deles mudar?

    Olá Augusto,

    A questão da motivação, suponho eu, será resolvida pelo caráter de ‘acordo de duas partes’ que eu estou tentando amadurecer como idéia. Por mais que uma comunidade de desenvolvedores não esteja motivada a fazer modificação na sua forma de atuar ou simplesmente achem que a forma que trabalham é a mais correta, basta apenas isso ficar esclarecido nos termos do acordo, que eles se comprometam em explicar como trabalham, as decisões que tomam e principalmente… se comprometerem a evitar fugir desse modo de trabalhar, que aí torna-se possível para as distros fazerem o trabalho sujo de criar os scripts que empacotam os softwares com suas preferências.

    Por isso digo que ninguém precisaria mudar de padrão, eles precisam ser apenas esclarecidos e as partes envolvidas se comprometerem com ele. Seria como as distros falarem para os desenvolvedores:

    - Vocês não precisam mudar a forma de trabalhar, mas preciso que vocês decidam por um padrão próprio e se comprometam a mantê-lo, para que eu possa adaptar o software que vocês desenvolvem para os padrões da minha distro através de um script.

    Concordo com o tobias_felipe. Hoje em dia, embora a maioria dos desenvolvedores utilizem o autotools (./autogen.sh && ./configure –opções && make && make install DESTDIR=/tal/tal/tal), já vi muitos arquivos Makefile com aberrações como (cp src/binário /usr/bin), o que dificulta muito a criação de pacotes de forma automatizada. E lá vai eu editar Makefiles…
    Alguns pacotes trazem arquivos para ferramentas como rpmbuild ou para a criação de pacotes .deb, mas não são todos.
    Não sou desenvolvedor, e tenho ouvido muitas críticas ao autohell (é como chamam ;-)), tanto que projetos como o KDE passaram a utilizar o cmake como ferramenta padrão. O CMake, mesmo sendo um tanto mais complicado que o popular ./configure, não apresenta empencilhos para a criação de pacotes (até porque se baseia em Makefiles parecidos com os do processo anterior).
    Mas devido à quantidade enorme de sistemas de pacotes e ferramentas de automatização de compilação (scons, cmake, setup.py, Makefile.PL, dentre outros), acredito que nunca chegaremos realmente à um padrão. Um padrão sempre vai beneficiar uns e prejudicar outros. Não adiante eleger o .deb como padrão absoluto, pois quem gosta do RPM não irá concordar, e vice-versa.
    É, é a conseqüência da tal liberdade que tanto nos orgulhamos…

    PS: ainda não li o texto da matéria. Lerei agora mesmo, antes que reclamem dizendo que eu falei besteira, o que sempre é mentira ;-)

    PS2: mas é claro que a existência de um padrão não deva significar a impossibilidade de o camarada poder “compilar” seus programas – como no primeiro comentário do texto linkado -, pois isso, por definição, significaria a não disponibilidade do código-fonte dor programas, que seria algo totalmente contraditório ao pensamento do software-livre/open-source.

    O que o bonitão esqueceu é que, os exemplos que ele citou (Apache, Gnome e etc) não são softwares exclusivos do Linux, mas sim são OpenSource, e também presentes em outros sistemas operacionais, como o Solaris, FreeBSD, AIX, NetBSD, OpenBSD e etc. Se houvesse um acordo para facilitar a criação de um script, estaria obrigando os desenvolvedores a programar softwares pensando exclusivamente no Linux. Não é por aí que acontece, pois eles estariam deixando de fora uma pá de outras plataformas. Se houvesse um acordo, ele teria que ser quase universal nos sistemas operacionais Unix e Unix-like, um Posix do desenvolvimento?

    Acredito que o autor também tenha ficado limitado aos comentários do Ian Murdock nas suas pesquisas, não leu um pouco sobre a LSB, onde o formato RPM é padronizado a algum tempo, compatível com qualquer distribuição que a siga e funciona legal em várias outras se o pacote for convertido. Os pacotes .deb, por sua vez, são menos portáveis que os RPMs, e dos poucos casos de sucesso que tive foi com o LimeWire.

    O autor, infelizmente, também não pareceu ter muita noção daquilo que ele falou em alguns aspectos. Cada programa tem opções que diferem em seus ./configure, principalmente na inclusão de recursos do próprio programa. Como o script poderia adivinhar quais são e quais deverão ser inclusas no pacote? Complexo, pois isso depende da ação do Homer Simpson, o qual ele citou no artigo.

    O Ports do FreeBSD trabalha muito bem nesse sentido, onde ao compilar um programa direto da árvore, ele te mostra as opções disponíveis e quais você quer incluir na compilação. Mas agora, quem garante que as opções que eu quero são as que outros usuários também vão querer? Compilar e empacotar com tudo o que o software oferece iria gerar pacotes desnecessariamente grandes. Isso ocorre em várias distribuições atuais, o Samba do Slackware 11 mesmo que o diga.

    Então, por essas e outras, creio que o melhor seria que as coisas continuem como estão. Eu gosto de compilar meus programas, o autor deixou meio subentendido que não, isso é uma coisa bem pessoal. E o gerenciamento de pacotes funciona bem pros usuários de cada distribuição, quem não gosta troca, e a roda continua girando.

    É Timm, vc tocou num ponto importante – não, não o do autor ser bonitão, que aí é só sua opinião hauahuahaua – pois ao contrário do que muitos pensam quase nenhum software que conhecemos é feito PARA O LINUX.
    Mas boa parte dos sistemas operacionais citados (unix-like) possuem uma forma comum de empacotamento, onde um pacote é nada menos que uma mini-estrutura de diretórios deste sistema, normalmente começando em ‘/’, que são, na instalação, descompactados no diretório em questão. Acontece que cada distro ou sistema empacota numa forma diferente, mas seguindo o conceito acima.
    Aí tem o ports, portage, pkgsrc e tudo mais, que são métodos de automatizar a compilação dos programas, não necessariamente criando pacotes (se eles tiverem uma lista dos arquivos que serão criados, assim já se sabe, numa posterior desinstalação, o que deverá ser removido, como no caso do ports, do FreeBSD.

    Quanto à questão dos pacotes “imensos” do Slackware, sabe-se que esta é uma estratégia para diminuir os casos de problemas de dependências. Quem nunca, numa máquina offiline, foi tentar compilar um programa no ubuntu e se deparou com uma mensagem: “Você não tem o programa abc instalado”, sendo que você tem o programa abc instalado, mas o que ele realmente quer são os pacotes abc-dev, abc-include, abc-libs e abc-chuck-norris. No slackware, se você tem o pacote abc, você tem o pacote abc!! hauhaau

    E isto é um contraste, se comparado ao estilo debian, que fragmenta ao máximo os pacotes, facilitando a personalização de uma instalação para determinado perfil, mas dificulta o controle manual dos programas instalados. Assim, como você disse, se os desenvolvedores utilizarem um só padrão na criação de pacotes, devem beneficiar quem, os slackers ou os debian-users? De qualquer forma alguém vai sair de cara feia.

    Ah, e distribuir programas em pacotes .deb, como o Limewire, é a pior mer*&* que podem fazer, pois o .deb não é padrão e funciona por padrão só em “algumas poucas” distros, enquanto que o rpm, sendo padrão, pode ser instalado em qualquer distro, como você mesmo comentou. Eu mesmo utilizo vários pacotes rpm aqui no Slackware, e não tenho problema algum com isso ;-) Já um .deb eu tenho que converter com o alien, ou descompactar o arquivo ($ ar x pacote.deb) e em seguida criar um pacote com o arquivo data.tar.gz que tem dentro dele. Ou seja: um trabalhão…

    Tenchi, você entendeu errado o meu comentário do Slackware. Adoro nele o fato de vir completo, e quando é necessário compilar alguma coisa off-line, o azar tem que ser bem grande para faltar dependências. =)

    O que eu quis dizer, com relação ao Samba dele, não sei no 12: Mas no Slackware 11, o Samba vinha sem uns –with e –include, e ele acabava mesmo só com duas funcionalidades básicas (que eu testei, pelo menos): Compartilhamento e PDC. Não incluia Active Directory, e pra colocar o Slackware no AD de forma legal tinha que recompilar o Samba. Disse isso no exemplo que, um pacote de determinado software pode ser ideal pro desenvolvedor, mas não para o usuário. E nisso, até o Samba dos Debians que tenho que usar no trabalho (repositório interno) são show de bola.

    Agora imagina, no exemplo do Apache: Vou criar um pacote com tudo o que ele pode me oferecer (baixa o tarball, dá um ./configure –help pra você vê o que tem lá): O make vai gerar binários bem maiores que o normal e serão necessários uma penca de dependências. As dependências necessitariam de mais dependências, e o espaço no HD “já elvis”.

    Dae o garotão do artigo complementa que então, deveríamos criar pacotes já com as dependências inclusas nos mesmos, portabilidade 100%! Ok, mas aí seremos Mac OS X ou Microsoft Windows, e perdemos das principais características do Unix…

    Por isso, prefiro que o empacotamento continue como está. Eu gosto dele assim, e funciona muito bem. Tese: Quer moleza? Volta pro Windows, afinal, o Linux foi feito de hackers pra hackers, não pra arrastadores de mouse, por mais que algumas distribuições pregam o contrário… =)

    Olá timm,

    ‘Dae o garotão do artigo complementa que então, deveríamos criar pacotes já com as dependências inclusas nos mesmos, portabilidade 100%!’

    Isso tem absolutamente nada a ver com o que estou propondo. Absolutamente… NADA ! :D Sugiro que tente ler o post denovo e alguns dos comentários. Eu ficaria agradecido por esse esforço seu em vez do deboche.

    Não estou debochando, apenas preveni uma nova resposta, e entendi seu ponto de vista. Porém, ele não é de todo aplicável, queira você ou não. =)

    Sistemas de automatização de compilação e empacotamento são assunto até de teses de conclusão de curso [1]

    Um detalhe que foi esquecido(?) é que as distribuições, por motivos de necessidade ou preferência, precisam alterar a maneira de como o software original é compilado, desde alterações de opções até a aplicação de patches. Ou seja, é necessária a intervenção de qualquer forma.

    Realmente, como o timm menciona, eu gosto do sistema atual de pacotes das distribuições (ajudando inclusive a fazer diversos pacotes), e não vejo problema algum em compilar programas manualmente, mas não espero que usuários finais o façam.

    Aliás, acordos de inter-operação já existem e funcionam, só que não há a possibilidade de serem universais, até porque não faria sentido em todos os casos (nem todo software precisa de um configure, por exemplo, etc). Sempre que alguma distribuição empacota um software, há uma interação entre o upstream e a distro, o que automaticamente vai levando à automatização da compilação daquele software.

    E não há como pré-automatizar tudo isso, pois existem muitos casos particulares a serem discutidos, e essa interação é necessária, pois a parte simples do processo já é automatizável e é feita.

    Eu até nem gostaria do caso em que, dado um software lançado upstream, ele seja automaticamente integrado à minha distro. Isso pularia diversos passos de checagem direta e indireta do código fonte, perdendo um valor muito importante dos atuais software em repositório, que é a garantia que a distribuição dá sobre a integridade dos mesmos.

    Se fosse partir para a automatização, teria que checar o código também de maneira automática, o que é mais ou menos como pedir que programem uma AI capaz de conversar com você em alto nível sobre qualquer assunto.

    Portanto não vejo ganhos significativos em uma automatização desse processo, e o custo seria muito alto para implementar um sistema que substitua os “Homer Simpsons” atuais mantenedores das distros.

    [1] http://grosskurth.ca/papers/mmath-thesis.pdf

    Como diria Linus, “Talk is cheap. Show me the code.”

    Urias (usuário não registrado) em 4/02/2008 às 9:19 pm

    E pra quem não tem internet em casa, instalar um gnome em alguma distro que não tem, é o sonho de todos os que não tem nada pra fazer. Ninguem aguenta ficar mexendo com dependencia, meu micro não é portatil, e vou ficar toda hora levando ele pra algum lugar só pra digitar apt-get blablabla, ta mais do que na hora de todas as distros buscarem um entendimento comum para um sistema de empacotamento, isto está atrasando o sistema GNU/Linux, ou então ele vai demorar muito pra se tornar popular, vai continuar em micros baratos e sendo substituídos pelos famosos Windows Montila Edition.

    Parabens pelo tópico Kurt.

    O que eu entendí foi que o desenvolvedor poderia conceder informações em formato .xml (or whatever) sobre seu software, as informações concedidas seriam um padrao que é de interesse das distros que por sua vez produziriam scripts (cada uma com um script diferente) que produziria de forma automatizada um .rpm/deb/tgz/bin/exe/…

    Eu entendí isso, mas com tantos comentários diferentes já estou com dúvidas.

    Ah sim. um típico pacote com o código-fonte de um programa pode facilmente ser instalado no Slackware, com somente um comando. Na prática o q este comando faz é só “digitar” os três “comandinhos mágicos”. Basta:
    # src2pkg pacote-source-2.0.tar.bz2
    E ele compila e cria o pacote. É claro que normalmente é a forma mais crua de pacote, sem nenhuma personalização ou configuração extra.

    A questão, que eu disse acima, é que muitos pacotes contém arquivos de configuração para a criação de pacotes específicos em rpm. O ideal seria um arquivo independente de sistema. Talvez um XML com informações básicas, como descrição, site do projeto, etc. Assim facilitaria a adaptação para qualquer outro sistema (já que criar um parser para um xml não é tão difícil).

    Mas o problema é que nem todo software se instala no configure, make e make install. E é aí que está o problema, como também disse acima. E, com relação aos patches, acredito que para isso não tem jeito mesmo, já que alguns são feitos para uma distro, não necessariamente funcionando em outras.

    Sou a favor da padronização das instruções para a criação de pacotes genéricos, mas na prática isso equivale a pedir que as pessoas escolham uma distro como padrão. Sempre vai haver quem puxe sardinha para sua distro.

    E pra quem não tem internet em casa, instalar um gnome em alguma distro que não tem, é o sonho de todos os que não tem nada pra fazer. Ninguem aguenta ficar mexendo com dependencia, meu micro não é portatil, e vou ficar toda hora levando ele pra algum lugar só pra digitar apt-get blablabla, ta mais do que na hora de todas as distros buscarem um entendimento comum para um sistema de empacotamento, isto está atrasando o sistema GNU/Linux, ou então ele vai demorar muito pra se tornar popular, vai continuar em micros baratos e sendo substituídos pelos famosos Windows Montila Edition.

    Ué Urias, escolha uma distribuição completa ou aguente os contras da que você usa, simples assim. Quer moleza? Existem outros sistemas operacionais que podem ser melhores, no seu caso. O Linux, segundo o Mr. Linus, nunca teve intuito de substituir o MS Windows, afinal ele é apenas um Kernel. Se alguma distribuição tem esse intuito, ela que implemente recursos que façam uma substituição valer a pena, por exemplo, facilitar a instalação off-line do Gnome.

    Das poucas distribuições que eu vi funcionar com tudo out-of-the-box, sem precisar de internet foi o Slackware. Quer algo assim que use o apt? Baixe o Debian completo.

    Bem, de nada adianta o cara criar o melhor sistema de empacotamento do mundo se as grandes distribuições (Red Hat, Debian, Slackware…) não quiserem adotá-lo como padrão. Assim, o sistema seria apenas “mais uma idéia legal”.

    Óbvio que a criação desse padrão não poderia excluir a liberdade do cara querer instalar o programa da forma que ele quiser. Existe, hoje, por exemplo, o projeto Autopackage, que tenta ser uma forma de instalação universal.

    Acredito que o autor também tenha ficado limitado aos comentários do Ian Murdock nas suas pesquisas, não leu um pouco sobre a LSB, onde o formato RPM é padronizado a algum tempo, compatível com qualquer distribuição que a siga e funciona legal em várias outras se o pacote for convertido. Os pacotes .deb, por sua vez, são menos portáveis que os RPMs, e dos poucos casos de sucesso que tive foi com o LimeWire.

    O RPM pde ser o padrão de fato, mas hoje, com a ascensão do Ubuntu e distros Debian-based, o formato DEB é o padrão de mercado. Se no final da década de 90 só encontrávamos pacotes para Linux no formato RPM, hoje os pacotes DEB abundam.

    O que sugiro ao Autor não é criar um novo padrão mas, sim, uma espécie de framework, que funcionaria mais ou menos assim:

    # instalar firefox
    Bem, qual o sistema que eu estou rodando? Ah Ubuntu!
    apt-get install mozilla-firefox
    Ah nao, é Fedora…
    urpmi -i mozilla-firefox [nao sei a sintaxe do urpmi :(]
    Nao é Slackware…
    wget -c ftp://algumacoisa/firefox.tgz
    installpkg firefox.tgz
    Ah nao é nenhum desses, vou baixar os fontes e compilar!

    Assim, o usuário teria a mesma forma de instalar pacotes em todos as distros mas o gerenciador de pacotes respeitaria o sistema de cada um, além de ser mais rápido e fácil de implementar.

    Pensamentos como o do Sr. Timm, que dizem que Linux nao é para arrastadores de mouse, simplesmente contribuem para que a comunidade fique estagnada e desunida, inibindo seu crescimento. Se há uma nova leva de usuários pouco experientes usando Ubuntu, isso é bom, pois ninguém nasce sabendo e as dúvidas deles sao naturais, como as que o senhor teve da primeira vez que usou Linux. Nem todo mundo gosta de ficar catando dependencias, caso o senhor nao saiba, e o NNF ou os pacotes estáticos do Mac sao o seu motivo de sucesso. Leve seus comentários conservadores e preconceituosos para o MeioBit, onde há um público cego para ovacioná-los.

    Alexandre (usuário não registrado) em 5/02/2008 às 10:43 am

    Um dos quesitos que motivaram Linus a criar o Linux foi justamente fazer algo melhor do que já existia. Quando o Linux nasceu, ele era basicamente um sistema criado por programadores e para programadores, muitos anos depois, ele se torna uma das aplicações mais populares do mundo, em todos os cantos do planeta se fala sobre Linux, bem ou mal, não importa nem quero entrar nesse detalhe, mas o fato é que as pessoas comuns ou usuários comuns, estão cada vez mais usando o S.O. e seus aplicativos, também é certo e conhecido de que um programador com a sua boa vontade e com seu conhecimento possa estar criando softwares livres da forma e maneira como bem lhe agrada, nada existe de fato para que ele tenha que fazer a instalação de seu sistema da forma a ou b, certo, assim como não tem como impedir ou mesmo fazer o planeta entrar em um acordo único e geral de que toda a estrutura de arquivos e diretórios dos sistemas Unix-like seja idênticas, entretanto, assim como o autor do posto original, e como um amante dos sistemas linux, acredito que seria importante cada vez mais pessoas estarem chamando atenção para essa questão, pois seria realmente maravilhoso um processo de instalação baseado no next…. next… next e done. Sei que instalação de programas é coisa do admin, sei que isso poderia comprometer a segurança do sistema, sei que isso não permite um melhor estudo e aprendizado do código, mas também sei que existe demanda para isso e que tem milhões de usuários ansiosos por isso no Linux, também sei de que já existe uma tentativa de se fazer isso com os pacotes pré-compilados, mas chamo a atenção dos grandes desenvolvedores de aplicações e dos admin do kernel do linux e da comunidade inteira, para juntos, podermos estar pensando em algo que possa atender esse público, que seja algo perto do que já existe no Ubuntu e em muitas aplicações desktop como a ferramenta que instala programas com apenas um clique do mouse escolhendo-as no repositório oficial, mas penso em algo maior, mais maleável, algo que possa ser baixado da net e simplesmente instalado na sua máquina. Isso seria sem dúvida nenhuma muito interessante. Bem, fica aqui o meu post para as suas apreciações. Obrigado.

    André Machado,

    Você não entendeu o escopo da idéia do autor, leia de novo o texto mais algumas vezes, quem sabe entre na cabeça do ser auto-intitulado superior, o qual você diz ser.

    Pensamentos como o do Sr. Timm, que dizem que Linux nao é para arrastadores de mouse, simplesmente contribuem para que a comunidade fique estagnada e desunida, inibindo seu crescimento. Se há uma nova leva de usuários pouco experientes usando Ubuntu, isso é bom, pois ninguém nasce sabendo e as dúvidas deles sao naturais, como as que o senhor teve da primeira vez que usou Linux. Nem todo mundo gosta de ficar catando dependencias, caso o senhor nao saiba, e o NNF ou os pacotes estáticos do Mac sao o seu motivo de sucesso. Leve seus comentários conservadores e preconceituosos para o MeioBit, onde há um público cego para ovacioná-los.

    Primeiramente, seu comentário aqui foi desnecessário. Eu não saio te atacando nos teus posts, por mais infelizes que eles sejam. Desca da sua pose de pseudo-moralista-intelectual e vá estudar um pouco sobre plataformas, seus comentários melhorariam bastante. Lembra também, um dia que eu disse que sempre saberia o que esperar de você? Pois é, tinha certeza que o senhor também iria postar nesse tópico me atacando. Conheço pessoas como você, e sou imune a isso, já aviso!

    Com relação ao Post, sou da opinião que o Linux pode ser utilizado por usuários finais, mas a maioria dos usuários finais não conseguiria usar Linux. Queira você ou não, os usuários gostam do MS Windows, que ao contrário do que muitos dizem, ele não é de todo mal e garante as funcionalidades básicas do SO de maneira fácil e intuitiva pro usuário.

    E, segundo a carta do Mr. Linus, o Linux é um sistema feito de hackers pra hackers. A própria GPL mesmo, que “garante a liberdade” do software, é feita pensando no desenvolvedor-usuário, não no usuário final. Quem usa Linux, por mais que algumas distribuições tentam provar o contrário, em tese, deve destrinchar o Google quando o sistema não funciona adequadamente ou alguma configuração é necessária. Usuários finais não gostam disso. O sistema dá problema, reinstala e ele funciona de novo. Independente da plataforma, Linux ou Windows.

    Se o caboclo quer um sistema fácil, que funcione de primeira, que não precise catar dependências, que tenha todos os softwares que ele precise, esse SO já existe! E se chama MS Windows. Não é interessante usar Linux em muitos casos, e de usuários Ubuntu com dual-boot Windows XP pirata, que não contribuem em nada, não relatam experiências em artigos, não empacotam pacotes e colam linhas achadas em fóruns em seus terminais ao invés de digitar comandos (pois tem ojeriza à modo texto), já temos demais, e sou da opinião que são peso morto apesar da grande quantidade. Deveriam sim usar Windows. Mas é claro, essa é a minha opinião e a de muitos, mas tem gente que jura de pé junto que o Linux tá pronto e serve pra qualquer parada, vai entender…

    E por último, com relação ao MeioBit, por que vossa senhoria não posta lá, pois sempre lê aquilo que eu escrevo? O senhor deveria abrir um fã clube para minha pessoa, afinal, onde eu estou presente você também está… Vai entender!

    Abraço,
    Lucas Timm.

    Marcos Barbosa (usuário não registrado) em 5/02/2008 às 1:40 pm

    Seria uma coisa muito interessante (mas não tenho certeza se encaixa na discussão) se os empacotadores respetassem mais o desenvolvedor. Não sou desenvolvedor, mas acho um abuso as modificaçõe feitas pelos empacotadores (como no Debian, em que um pacote é divido em um monte de pequenos pacotinhos) e até no código algumas vezes (como é feito pelo Ubuntu). Isso acaba deturpando a obra do desenvolvedor. Se Leonardo Da Vinci pedisse para pendurar a Mona Lisa, com uma moldura simples, você faria isso ou pintaria um bigode e depois cortaria em sei lá quantos pedaços e emolduraria cada pedaço? Não ficaria estranho? Minha idéia é o conceito (que não sei se existe, se não existe fui eu que criei) “one source = one package”. Isso significa que para cada fonte compactada, será gerado um pacote. Um exemplo : O X.org é dividido em vários fontes, o que permite gerar vários pequenos pacotes. Os desenvolvedores do X.org quiseram assim, então vamos respeitar a vontade deles. Se o autor produzir apenas um fonte, gere apenas um pacote. Imagine os fontes “tool kits” (também não sei se esse conceito existe. Se não existir é meu), fontes com várias pequenas ferramentas para um tipo de atividade (como configurar o frame buffer, por exemplo). Imagine se cada ferramenta ficasse separada. Então você tem o FBTK (FrameBuffer ToolKit) com “comando1 comando2 comando3″. Agora imagine se fosse criado cada pacote fbtk-comando1… fbtk-comando2… Era para ser um toolkit, mas deixa de ser por causa da divisão de pacotes.

    Renan (usuário não registrado) em 5/02/2008 às 3:47 pm

    Se há uma nova leva de usuários pouco experientes usando Ubuntu, isso é bom, pois ninguém nasce sabendo e as dúvidas deles sao naturais, como as que o senhor teve da primeira vez que usou Linux.

    E a maioria esmagadora das dúvidas de novatos podem ser respondidas com alguns minutos de pesquisa ou de raciocínio lógico.

    Pensamentos como o do Sr. Timm, que dizem que Linux nao é para arrastadores de mouse, simplesmente contribuem para que a comunidade fique estagnada e desunida, inibindo seu crescimento.

    Como se um milhão de usuários-porta, arrastadores de mouse que não mexem um dedo para ajudar com o desenvolvimento, fossem ajudar a comunidade a “crescer”.

    Colocar pesos-mortos na comunidade não vai fazer ela “crescer”.

    E pra mim, se o cara não tem interesse em conhecer e aprender a usar Linux, que fique no Windows, pois não está perdendo nada, e que não viva de trollar.

    Pois bem, Sr. Timm, parece que é o senhor que precisa reler os meus comentários. Caso o senhor não tenha percebido, o Mac e o Windows fizeram sucesso não porque eles têm o sistema de empacotamento mais bem desenvolvido e inteligente do mundo mas, sim, por que neles os programas funcionam. É claro que o fato dos programas no Mac serem monstruosamente maiores que o necessário é uma desvantagem: para se ter uma idéia, o instalador do Firefox para Windows tem mais ou menos 5MB; o do Linux, 8MB e o do Mac, 18MB mais ou menos. Claro que isso é um absurdo, mas pelo menos o usuário de Mac saberá que seu Firefox funcionará em seu Mac e em qualquer outro. Já com o empacotamento do Linux, não posso dizer o mesmo.

    E, segundo a carta do Mr. Linus, o Linux é um sistema feito de hackers pra hackers.

    E, segundo Bill Gates, “A internet é apenas uma moda passageira”. Não estamos lidando com opiniões pessoais, estamos lidando com mercado. Se você acha que os usuários que têm Ubuntu e Windows são um peso morto, bom pra você. Em breve, eles não serão mais. O Windows é pirata mas pelo menos eles estão usando e conhecendo uma distribuição Linux, preparando-se, assim, para o mercado de trabalho, que está começando a exigir conhecimentos nesta plataforma também. Ou será que quando o senhor usou sua primeira distribuição você já sabia recompilar o kernel?

    Como se um milhão de usuários-porta, arrastadores de mouse que não mexem um dedo para ajudar com o desenvolvimento, fossem ajudar a comunidade a “crescer”.

    Colocar pesos-mortos na comunidade não vai fazer ela “crescer”.

    Para mim, os usuários não-técnicos, interessados apenas em usar o sistema, mesmo que não tenham interesse em contribuir para o seu desenvolvimento, são mais do que bem-vindos.

    Os usuários técnicos e com participação comunitária são importantes, mas isso não significa exclusão ou menosprezo pelos demais, sob o meu ponto de vista.

    Marcos Barbosa… Caramba, você leu meus pensamentos. Concordo com exatamente 100% do que disse. Sempre pensei assim. Parece que algumas distros não respeitam mesmo o trabalho dos desenvolvedores, aplicando várias modificações nos programas e colocando os seus direitos e créditos acima dos do desenvolvedor, além dessa questão da extrema fragmentação dos pacotes. Aí pegam e distribuem o programa com outro nome qualquer, ou modificam o código e distribuem com o mesmo nome. Na maioria dos softwares que são livres normalmente este está sob os direitos do autor, e um nome nem sempre é tão livre quanto uma linha de código.
    Não digo o Debian, pois mesmo que fragmente os pacotes, ainda mantém uma certa compatibilidade entre os nomes e não modifica muito os pacotes, mas, como você mesmo disse, há o ubuntu e família, que tem o costume de fazer modificações gritantes nos programas, que muitas vezes só servem para criar mais bugs – desculpem, nada contra o ubuntu, pois todas as distros apresentam programas com “defeitos”, mas já vi muitos bugs que simplesmente não têm razão para existir, mas existem, no ubuntu.
    Por isso que eu sempre gostei do “estilo slackware de fazer as coisas”, onde o nome do pacote no site oficial sempre é o nome do pacote binário, a não ser quando há “nomes repetidos”, onde há mudanças mínimas, mas nunca uma descaracterização do mesmo.
    Mesmo assim não considero realmente – mesmo tendo afirmado isso acima? – que o ubuntu desrespeita o desenvolvedor, até porque vários programas surgiram ou melhoraram muito após a explosão da distro, como o xfce ou mesmo o gnome.

    Concordo com o que o Augusto diz. Em resumo: cada um contribui com o seu jeito. Na própria página da FSF está escrito que uma das formas de ajudar o movimento do software livre é simplesmente… usando software livre!

    Mas:

    …e de usuários Ubuntu com dual-boot Windows XP pirata…

    Logo, podemos concluir que o Windows Vista e Server 2003 que o senhor utiliza em suas máquinas virtuais são originais, certo? (Claro, ele vai dizer que não é dual boot…)

    André Machado,

    Se o foco é a facilidade de uso, acredito sim que seja interessante aumentar o tamanho do pacote de determinado programa. Isso não é nenhum absurdo, mas sim a forma que determinado sistema trabalha com programas. Acredito que o senhor não tenha noção do que seja mercado, pelos seus comentários expostos no tópico, também.

    E com relação aos meus SOs virtualizados, o que também não é da sua conta, o Microsoft Windows 2000 AdvancedServer é OEM, o Windows XP Professional, Windows 2000 Professional e Windows Server 2003 Standard são originais, pesquise um pouco sobre os planos de licenciamento da Microsoft para estudantes… O Windows Vista que tenho é pirata sim, ganhei de um amigo, e não tinha o menor peso na consciência de utilizar, excluí para testar o OpenSolaris e não reinstalei. Trabalho com interoperabilidade no meu laboratório VMware, e é minha forma de contribuir com o sistema operacional que uso e tema do meu TCC. Mas como eu já falei, isso não diz respeito a você.

    Não irei mais responder comentários seus que, como os aqui apresentados, fogem ao escopo do tópico e partem pra agressões pessoais. Se quiser debater como uma pessoa normal, aparece no IRC, mas já lhe aviso: Será difícil para você, pois terá que lidar com seres inferiores ao seu sublime conhecimento.

    Forte abraço,
    Lucas Timm.

    Usuário Leigo (usuário não registrado) em 7/02/2008 às 6:20 am

    Caso a opinião de um usuário leigo tenha alguma relevância (normalmente tem menos do que deveria), devo dizer que, independentemente das questões técnicas ou da jactância de alguns desenvolvedores, que privilegiam sua opinião em relação à popularização do sistema GNU/Linux, a falta de padronização é, em todas as suas expressões, um prejuízo lastimável para a comunidade de software livre, pois deixa de atender às necessidades do usuário final (que quase sempre é um leigo como eu, e não um programador).

    Usuário Leigo (usuário não registrado) em 7/02/2008 às 6:24 am

    Enfim, acho que a mensagem que tentei passar no post acima é: DE QUE VALE A LIBERDADE SEM A UNIÃO?

    Lucas Timm (usuário não registrado) em 7/02/2008 às 1:01 pm

    Cara, a liberdade pregada é para desenvolvedores. E, enquanto o Linux for um kernel livre, sempre haverá despadronização. Os padrões interessantes pra A não satisfazem a B, e vice versa. Aí que o Linux acontece, na minha opinião, pois a flexibilidade do sistema é total.

    Usuário Leigo (usuário não registrado) em 10/02/2008 às 4:48 am

    Realmente, é difícil encontrar um meio termo entre a liberdade para o desenvolvedor e a facilidade (por meio de padronização) para o usuário leigo.
    Por outro lado, o próprio “mercado” acaba elegendo um padrão.
    O que tenho percebido é que alguns softwares distribuídos na net já tem sua versão específica para Ubuntu, junto às versões para Windows e Mac. Um exemplo disso seria o download do cliente da Last.FM, através do site (hoje ele já está incluído no próprio repositório do Ubuntu).

    A desgosto dos desenvolvedores que não morrem de amores pelo Ubuntu, esse tipo de popularização é importante para a comunidade de software livre como um todo, pois dá uma direção ao usuário leigo, um ponto de partida. Por exemplo, meu primeiro contato (e de muitas usuários) com software livre foi o Firefox.

    Enfim, para o usuário leigo, o importante é se ter um sistema bom, barato e fácil de usar. Esses atributos podem ajudar a disseminar a filosofia do software livre, embora nada tenham a ver com ela.

    Usuário Leigo, o Ubuntu certamente é a distro mais popular. Como conseqüencia disto temos que o .deb (sistema da distro) se torne popular também e que muitos pacotes para linux passaram a ser desenvolvidos desta forma.
    O problema é que RPM não é padrão. Não é compatível com todas – ou a maioria das – distros. Você pode distribuir um pacote .deb, e ele será utilizado por 60% dos usuários Linux (que usam ubuntu), mas isso deixará 40% dos usuários na mão, pois .deb não funciona em nenhuma outra distro que não seja baseada no debian (ubuntu, kurumin, etc).
    Na minha opinião o pessoal da Ubuntu tinha que aumentar a compatibilidade da sua distro com o rpm, que é O padrão, e funciona em 90% das distros. Eu, não por preconceito ao Ubuntu/Debian/Etc não baixo pacotes .deb, quando só existem estes para Linux.
    Eu aplaudo os desenvolvedores que distribuem pacotes rpm genéricos (que não necessitem de pacote específico de distro alguma).

    Usuário Leigo (usuário não registrado) em 12/02/2008 às 6:17 pm

    Já tinha ouvido falar que RPM era padrão, mas nunca entendi exatamente o que isso significa, já que, por exemplo, no Ubuntu, não há um instalador de pacotes RPM, precisando-se usar o alien para recompilar.

    Sei que o RPM descende do Red Hat, mas não sabia que ele era anterior ao formato DEB. Afinal, qual a história desses dois formatos?

    Bom, considerando que, conforme vc disse, o formato RPM funciona em 90% das distros, também sou a favor de que seja usado pelo Ubuntu, bem como que o Ubuntu disponha de um instalador RPM simples, do tipo duplo-clique, como o instalador de pacotes DEB. Como não sou desenvolvedor, não tenho preferência por um dos dois, mas sim pela facilidade de instalação e distribuição de pacotes.

    A propósito, muito bom seu blog. Reflete o que quis dizer anteriormente com “facilidade para o usuário leigo”.

Este post é antigo (2008-02-04) e foi arquivado. O envio de novos comentários a este post já expirou.