Paulo Henrique Benitez <[EMAIL PROTECTED]> wrote:
>   Ol� lista,
Oi,

>   Tenho uma pequena d�vida sobre RPMs. Quando busco RPMs em 
>http://www.rpmfind.net, al�m dele me retornar diversos deles, tamb�m 
>traz de qual distribui��o � cada um. Gostaria de saber se eu instalar um 
>pacote que n�o seja da minha distribui��o, o programa funcionar� 
>adequadamente? ... Por exemplo: Uso o Red Hat 7.2 .  Se eu instalar um 
>RPM do conectiva ou mandrake, este funcionar� adequadamente? ... 
>Obrigado e Abra�os...


parte do seguinte principio:
- Se um pacote for de outra distribui��o, ele s� funcionar� com sorte.

Para se ter sorte: ;)

- Nunca use rpm -Uvh, mas sim rpm -ivh para instala-lo
  Isso porque se for para atualizar, voc� poder� tirar o pacote ja oficial da 
  distribui��o o que pode n�o funcionar.
  Se o rpm instalar, quer dizer que n�o houve conflitos e nenhum pacote "oficial"
  foi desinstalado.

- Nunca, mas NUNCA (___NUNCA___ MESMO) use as op��es --force e --nodeps do rpm
  Se algu�m te disser para fazer isso, n�o confie.
  Essas op��es foram criadas para que os rpms n�o funcionassem bem demais, sen�o
  n�o teria muita gra�a em algo funcionando muito bem ;)
  S�rio agora, essas op��es ignoram as dependencias corretas e seu sistema poder�
  passar a n�o funcionar direito.
  Se tiver o apt instalado (CL, ML, PLD), rode o "apt-get check" para checar o seu 
sistema.

- Evite misturar programas feitos em c++ entre distibui��es.
  Isso porque ele s� funciona em sistemas baseados no mesmo gcc
  - O CL, Debian, Suse (se n�o me enganam) usam o gcc 2.95 como padr�o (� o mais 
est�vel)
  - O RH, e o ML usam a vers�o quebrada do gcc 2.96.
  Isso quer dizer que __pode__ ser que se voc� usar um pacote do mdk no rh ou do cl no 
suse
  funcione

- Como saber se um pacote foi feito em c++?
  simples:
  $ rpm -qR <nomedopacote.rpm> | grep libstdc -c
  Se retornar 0, n�o depende, se retornar >0 depende.

- Se ocorrer conflito de arquivos durante a instala��o de pacotes � porque pacotes 
diferentes entre
  as distribui��es usam o mesmo arquivo, ou seja n�o vai funcionar mesmo.


Para al�m de sorte, fazer funcionar mesmo:

- crie o arquivo  ~/.rpmmacros
  e coloque o seguinte conte�do nele:

%packager SEU NOME <SEU@EMAIL>
%_topdir %(echo $HOME)/rpm/

S� corrija o seus dados nele.
depois disso crie a seguinte arvore de diret�rios
mkdir -p ~/rpm/SPECS ~/rpm/SOURCES ~/rpm/SRPMS ~/rpm/BUILD      \
        ~/rpm/RPMS/i386  ~/rpm/RPMS/i486 ~/rpm/RPMS/i586        \
        ~/rpm/RPMS/i686 ~/rpm/RPMS/noarch

- agora se o pacote for muito bem feito, voc� baixa o SRPM dele (aquele
  que tem o .src.rpm no final) e roda:
  rpm --rebuild <nome do pacote .src.rpm>

- Se nada der errado voc� ter� um pacote em ~/rpm/RPM/i386 que ter� 98% de 
  chance de funcionar.

- Se algo der errado voc� ter� de corrigir no bra�o:
  rpm -ivh <nome do pacote .src.rpm>
  cd ~/rpm/SPECS
  vi <nome do pacote>.spec    (fa�a um ls antes para ver o nome correto)
  - edite o arquivo e o salve
  - rode:
    rpmbuild -ba <nome do pacote>.spec
  - Dando tudo certo haver� um pacote novamente em ~/rpm/RPM/i386
  - Conselhos:
    - Sempre que precisar editar um spec, No campo "Release: ",
      coloque algo como 1phb_cl ou 2phb_rh ou 1php_mdk
      - O n�mero significa a "edi��o" do pacote (sempre aumenta de um em um)
      - O phb � uma sigla para designar que foi voc� quem fez, pode ser qualquer coisa
        (eu costumo usar rsd ou swi nos meus).
      - O cl ou mdk ou rh se refere a distribui��o que voc� usa
      - Em outras palavras: 1phb_rh significa: Relase #1 do pacote feito pelo Paulo 
h.b. para o 
        Red Hat
    - Funcionando, coloque os SRPMS que esta em ~/rpm/SRPMS e o RPM que esta em 
~/rpm/RPMS/i386
      em algum ftp ou p�gina e avise a lista ;)

    - Se precisar de ajuda com o SPEC fica para outro email.



abra�os,

Raul Dias



Assinantes em 07/03/2002: 2247
Mensagens recebidas desde 07/01/1999: 157408
Historico e [des]cadastramento: http://linux-br.conectiva.com.br
Assuntos administrativos e problemas com a lista:
            mailto:[EMAIL PROTECTED]

Responder a