Compilando programas :: O que fazer com o anterior? -- piling camp askubuntu Relacionado O problema

Compiling Programs :: What to do with previous?


2
vote

problema

português

Estou tentando se aventurar no mundo do desenvolvimento de código aberto e teve uma pergunta:

Toda vez que eu quero compilar a versão mais recente, costumo baixar a bola de alcatrão e compilá-lo. No entanto, acabo acabo com 2 versões do mesmo software. Um através do sudo apt e um através da compilação. Como faço para lidar com esse problema?

Devo excluir o sudo apto e manter a versão de desenvolvimento ou deixá-los ficar?

Além disso, eu sei que é uma pergunta idiota, mas como faço para ter certeza de que meus códigos estão atualizados? Eu tenho que baixar as construções noturnas todos os dias (ou check-out) e compilar todos os dias ?

english

I am trying to venture into the world of Open Source development and had a question:

Everytime I want to compile the latest version, I usually download the tar ball and compile it. However, then I end up with 2 versions of the same software. One through sudo apt and one through compiling. How do I handle this problem?

Should I delete the sudo apt'ed one and keep the development version or let them both stay?

Also, I know its a dumb question but how do I make sure that my codes are up-to-date? Do I have to download the nightly builds everyday (or checkout) and compile everyday?

  

Lista de respostas

1
 
vote
vote
Melhor resposta
 

Como você lida com diferentes versões é com você. Isso dependerá de que tipo de software é.

Sim, se você optar por compilar e software você mesmo, você terá que mantê-lo manualmente atualizado. Isso significa baixar e aplicar uma nova fonte. Se o programa for escrito em uma linguagem compilada, você precisará recompilar esse programa depois de fazer alterações em sua origem.

No entanto, você nunca deve ter que escolher entre uma versão apt-get e uma auto-compilada. Você deve embalar e instalar o software antes de instalá-lo de qualquer maneira. Você certamente vai querer obter e aprender checkinstall . É muito fácil de usar. Em vez de ABCDEFGHIJKLMNABCDEFGHIJKLMN1 , você fará ABCDEFGHIJKLMNABCDEFGHIJKLMN2 . Ele pedirá que você preencha um formulário sobre o pacote, então ele instalará esse pacote.

Isso pode soar como se necessário algum esforço. E isso acontece. No entanto, existem maneiras de melhorar radicalmente isso.

    .
  1. Mantenha sua própria filial local do código.
  2. O download de alterações apenas ocorreu desde a sua atração ao alcance do upstream.
  3. Adicione informações de embalagem de Deb à sua filial, se ainda não o tê. Dessa forma, você pode facilmente mantê-lo atualizado.
  4. faça uma pausa para realmente deixar passar exatamente o que é um passo radical um garfo. Quanto maior as mudanças entre o seu ramo e o tronco upstreams, mais trabalho você terá que executar manualmente.
  5. Escreva scripts para automatizar as tarefas acima.
  6. Mantenha um PPA para facilitar a si mesmo e aos outros instalar e usar o software compilado.

Launchpad pode executar as tarefas acima para você, então você obtém seu próprio repo diário com um esforço mínimo. É chamado de receita de compilação que você ainda precisará ramificar a partir do tronco upstreams, mesclar com o seu próprio e, em seguida, empurre seu novo tronco para o lançamento. Isso é bom, porque você vai querer revisar as alterações de código upstreams em qualquer caso.

Então, isso requer mais aprendizado, mas depois de configurar corretamente, você se salvará de cargas de trabalho todos os dias. Realmente vale a pena passar algum tempo para aprender corretamente. Mesmo se deve levar semanas para realmente ficar confortável com isso, você deveria.

 

How you handle different versions is up to you. It will depend on what kind of software it is.

Yes, if you choose to compile and software yourself, you'll have to manually keep it up to date. That means downloading and applying new source. If the program is written in a compiled language, you'll need to recompile that program after making changes to its source.

However, you should never have to choose between an apt-get version and a self-compiled one. You should package and install the software before you install it anyway. You'll certainly want to get and learn checkinstall. It's very easy to use. Instead of sudo make install, you'll do sudo checkinstall. It will then ask you to fill in a form about the package, then it'll install that package.

This can sound like it requires some effort. And it does. However, there are ways to radically improve this.

  1. Keep your own local branch of the code.
  2. Only download changes that's occurred since your alst pull from the upstream.
  3. Add deb packaging information to your branch if it doesn't already have it. That way, you can easily keep it up to date.
  4. Take a break to really let it sink in just exactly what a radical step a fork is. The bigger the changes between your branch and the upstreams trunk, the more work you'll have to manually perform.
  5. Write scripts to automate the above tasks.
  6. Keep a PPA to make it easier for yourself and others to install and use the compiled software.

Launchpad can perform the above tasks for you so you get your own daily repo with minimal effort. It's called a build recipe You'll still need to branch from the upstreams trunk, merge with your own, then push your new trunk to Launchpad. This is good, because you'll want to review the upstreams code changes in any case.

So, this requires more learning, but once it's setup correctly, you'll save yourself of loads of work every day. It really is worth spending some time to learn properly. Even if it should take weeks to really get comfortable with it, you should.

 
 

Perguntas relacionadas

3  Como instalar cmake, Ccmake da fonte?  ( How to install cmake ccmake from source ) 
Eu segui a primeira resposta para este sudo apt-get install build-essential wget http://www.cmake.org/files/v3.2/cmake-3.5.0-rc2.tar.gz tar xf cmake-3....

1  Não é possível executar o programa no NetBeans 7.3  ( Cant run program in netbeans 7 3 ) 
Eu recentemente instalei o Ubuntu 12.04 e instalei o NetBeans 7.3 (não a versão do Ubuntu, diretamente do site). Estou tentando executar um programa básico de...

13  Tipo de conversão de código usado em arquivos executáveis ​​Linux  ( Type of code conversion used in linux executable files ) 
Eu quero perguntar que o tipo de codificação é usada para tornar os arquivos executáveis ​​do Linux e. hexadecemal, binário ou qualquer outra coisa. Como é co...

2  Serviço de construção de pacotes automatizados  ( Automated package build service ) 
Eu estou usando bacula para backup de meus servidores e clientes, mas as versões da Bacula no repositório oficial são muito antigas. Então eu compilei e insta...

5  Posso ligar para um programa .cpp em bash?  ( Can i call a cpp program in bash ) 
Eu sou novo na programação Bash. Eu quero ligar para o meu programa C ++ no arquivo bash. meu programa é myProg.cpp : #include<iostream> using namespace...

1  / usr / bin / ld - não é possível encontrar lib  ( Usr bin ld cannot find lib ) 
Eu estou compilando da fonte e tenho o erro: /usr/bin/ld: cannot find -lct Como corrigi-lo? Obrigado. Eu tentei: sudo apt-get install libxt-dev ...

1  Flashcam não compila - videodev.h não encontrado  ( Flashcam doesnt compile videodev h not found ) 
Eu gostaria de compilar Flashcam 1.4.5 da fonte no Lubuntu 13.04, mas reclama: cc -g -shared -fPIC -o flashcamhook.so flashcamhook.c flashcamhook.c:31:28: ...

3  Compilando o VIM-Gnome com suporte a Ruby  ( Compiling vim gnome with ruby support ) 
Eu segui este blog Postar Para compilar GVIM com suporte a Ruby. No entanto, quando eu make , recebo este erro: /usr/bin/ld: cannot find -lruby-static c...

4  Como posso fazer um programa (usando o SDL) construído no trabalho do Ubuntu em outros sistemas?  ( How can i make a program using sdl built on ubuntu work on other systems ) 
Estou escrevendo um programa que usa Openal. Quando eu víncio contra ele (estou usando cmake), também liga a libpulse - pulsosaudio. Isso resulta no binário q...

4  Qual é o papel das bibliotecas estáticas?  ( What is the role of static libraries ) 
Bibliotecas estáticas por padrão ao vivo em /usr/lib ou /usr/lib64 mas eu apaguei todos eles no meu sistema operacional com este comando: find / -name ...




© 2022 pergunte.org All Rights Reserved. Casa de perguntas e respostas todos os direitos reservados


Licensed under cc by-sa 3.0 with attribution required.