Deseja pacotes mais recentes é um problema comum em qualquer sistema operacional. O ciclo de lançamento do Debian teve uma média de 2 anos nos últimos anos; portanto, no final deste ciclo, talvez seja uma questão mais premente. Uma maneira de atenuar isso é avançar para o teste no final do ciclo de lançamento estável, quando a próxima versão estiver quase estável. Não está claro a partir da pergunta se se trata de estável em geral, sobre testes e / ou instável também. Independentemente disso, ter a versão mais recente pode ser um problema, mesmo que esteja executando instável, pois a versão mais recente pode ainda não estar empacotada. Os desenvolvedores / empacotadores Debian são voluntários, então eles podem ficar entediados ou ocupados com outras coisas, com o resultado de que o pacote definha.
Por simplicidade e concretude, suponho que o plano a seguir é fazer o backport de um pacote para estável, mas ele se aplica de maneira mais geral. Então, aqui está o que eu faço se quiser uma versão mais recente do software que não esteja presente em estável, em uma ordem aproximada.
Procure o pacote nos Backports da Debian . Às vezes, você pode encontrar um pacote recente o suficiente para satisfazer seus propósitos. No entanto, geralmente esses pacotes estão desatualizados em comparação com a versão em instável, experimental ou upstream.
Tente instalar o pacote diretamente do teste, instável ou experimental. Se o stable não tiver divergido muito da versão em que você está tentando instalar, isso poderá funcionar. Você saberá que essa abordagem é ruim se o sistema começar a tentar instalar ou atualizar pacotes básicos a partir da versão mais recente. Suponha que você esteja tentando instalar a partir do instável, depois
apt-get install packagename/unstable
é a primeira coisa a tentar. Com as versões do apt in stable, isso geralmente falha, pois requer outros pacotes da instável, e esse encantamento apenas aumenta a preferência de packagename
suficientemente alta para que seja instalado na instável. Se você não entender o que isso significa, vá embora e leia man
apt_preferences
. Continue adicionando dependências da instável, certificando-se de que ele não esteja tentando atualizar os pacotes básicos. Por exemplo, se ele começar a tentar atualizar a libc6 ou X ou KDE ou Gnome, aborte imediatamente. Geralmente, é bom se tentar atualizar outros pacotes do mesmo pacote de origem, pois geralmente eles são fortemente acoplados. Para ver de que pacote fonte um pacote binário depende, faça
apt-cache showsrc packagename
Como muitas coisas dependem da biblioteca GNU C (libc6), isso costumava ser um problema. Mais recentemente, a API parece ter se estabilizado; portanto, agora é mais possível evitar a necessidade de atualizá-la. Se um pacote satisfizer suas dependências de tempo de execução em estável, mas ainda não funcionar corretamente, registre um bug. Se o empacotador diz que não é um bug, eles estão errados. :-)
Faça o backport do pacote você mesmo de teste, instável ou experimental.
Como mencionado acima, os backports são uma opção, mas geralmente esses pacotes estão desatualizados em comparação com a versão em instável, experimental ou upstream.
Isso geralmente pode exigir uma coisa do tipo de loop de compilação de dependência recursiva. Você primeiro precisa obter as dependências de compilação com
apt-get build-dep packagename
Se isso falhar, porque uma das dependências não é recente o suficiente, você precisará fazer o backport dessa dependência primeiro. Isso pode sair de controle. Normalmente desisto se tiver que lidar com mais de 2 níveis de recursão. Observe, no entanto, que as dependências reais não são necessariamente tão rígidas quanto declaradas, ie. uma versão mais antiga pode funcionar. O empacotador geralmente não tenta encontrar a versão mais antiga de uma dependência de compilação (ou, na verdade, tempo de execução) que funcionará.
Verifique a disponibilidade de pacotes do upstream correspondente. Idealmente, eles corresponderiam à sua versão de distribuição, mas você também poderá reconstruí-los, se necessário.
Crie pacotes para a versão do software mais recente que os pacotes mais recentes em testing / unstable / experimental. Isso pode ser relativamente desafiador, mas ainda às vezes surpreendentemente factível. A primeira coisa a observar é que, se você está tentando empacotar uma versão mais recente de um pacote que já esteja no Debian, você já está começando com uma grande vantagem, a saber, que você possui o pacote existente para trabalhar. Apenas faça
apt-get source packagename
e apt-get
fará o download do pacote fonte correspondente, incluindo o subdiretório debian onde o empacotamento está. Observe ainda que hoje em dia, esse empacotamento geralmente vive dentro de algum repositório de controle verson (o git parece popular com o Debian) e o stable apt (atualmente 0.8.10.3 ) mostra-lhe onde é isso quando você invoca
apt-get source
. Você deve observar isso, porque os empacotadores podem ter versões mais recentes da embalagem do que corresponde a qualquer pacote liberado. Por exemplo.
$ apt-get source mercurial
Reading package lists... Done
Building dependency tree
Reading state information... Done
NOTICE: 'mercurial' packaging is maintained in the 'Svn' version control system at:
svn://svn.debian.org/python-apps/packages/mercurial/trunk
Como alternativa, você pode simplesmente usar
apt-cache showsrc mercurial | grep Vcs
para listar o repositório.
Se o pacote estiver desatualizado, talvez seja necessário fazer modificações no
pacote, atualizar os patches aplicados, mas ainda assim geralmente é um bom ponto de
partida. O Debian parece estar no processo de padronizar o gerenciamento de pacotes no
quilt pelo formato dpkg-source 3.0 (quilt) , de modo que ajuda na atualização de patches.
Concluirei com um exemplo real de como suportei o pacote Debian de
pgf . A última versão empacotada do pgf era 2.00 em 2008 e, desde então, a 2.10 foi lançada. Veja a discussão em Atualize para a versão estável mais recente do pgf (2.10) e meu bug de acompanhamento com um patch, pgf: patches, no pacote Debian 2.0 . Como se viu, o pacote Debian do pgf era muito simples, e eu apenas tive que mudar uma linha no pacote 2.10 para fazê-lo funcionar. Acabei por reprimir todas as
queixas lintianas também, mas isso era estritamente opcional.
Você certamente pode criar seus próprios pacotes, e isso funcionará. No entanto, eu recomendaria o uso de backports primeiro, se o que você quiser estiver disponível lá.
Os backports são mantidos pelo Debian e você recebe atualizações de segurança para eles.
fonte
Construir seus próprios pacotes é o caminho a percorrer (IMHO). Dependendo da idade da versão do pacote Debian e do que mudou, isso pode ser tão fácil quanto substituir o nome do arquivo tarball de origem na descrição do pacote e, na pior das hipóteses, você ainda pode usá-lo como modelo para sua própria versão.
fonte
O que você está fazendo se você sempre precisa da versão mais recente?
Como já mencionado , use backports.
Apenas um pequeno subconjunto de pacotes Debian é suportado, então sugiro que você use o Debian Testing . Oferece um bom equilíbrio entre estabilidade e tempo recente e, de certa forma, é como uma distro contínua.
Se você é um pouco mais ousado, use o Debian Unstable . Alegou ser razoavelmente estável. Alguns chegam a afirmar que é mais estável do que os lançamentos "estáveis" de outras distros. De qualquer forma, o Unstable é o local onde as novas versões dos pacotes normalmente chegam. Eles normalmente ficam lá por cerca de 10 dias, para permitir o teste, antes de migrar para o Testing.
Mesmo usando esses dois, você ainda pode não ter as versões mais recentes. Nesse caso, dê uma olhada no Debian Experimental . É normalmente usado quando os novos pacotes são muito perturbadores para os arquivos normais (Instável e Teste).
Se o Experimental ainda não possui versões de software suficientes, consulte os PPAs do Ubuntu . Eu já vi versões de software mais recentes do que o que falta nos arquivos acima. Use-o com cuidado, pois o Ubuntu não é 100% compatível com o Debian (mas, na maioria dos casos, não deve haver problemas).
Se o acima falhar, acho que apenas crie seus próprios pacotes, como mencionado .
fonte