AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / server / Perguntas / 22414
Accepted
Gareth
Gareth
Asked: 2009-06-09 23:53:20 +0800 CST2009-06-09 23:53:20 +0800 CST 2009-06-09 23:53:20 +0800 CST

Como posso executar o Debian estável, mas instalar alguns pacotes do teste?

  • 772

Digamos que você esteja executando um servidor e não queira atualizar para Testing (Squeeze) de Stable (Lenny) para instalar apenas um ou dois pacotes necessários.

Qual é a melhor maneira de instalar apenas determinados pacotes do Testing?

linux debian package-management aptitude
  • 10 10 respostas
  • 252436 Views

10 respostas

  • Voted
  1. SineSwiper
    2012-04-23T18:38:12+08:002012-04-23T18:38:12+08:00

    Muitas pessoas parecem ter medo de misturar estável com teste, mas, francamente, o teste é bastante estável por si só, e com preferências e verificação de solução adequadas, você pode evitar o "desvio de estabilidade" que coloca seus pacotes principais no caminho instável.

    "O teste é bastante estável??" , você pergunta. Sim. Para um pacote migrar de instável para testing, ele precisa ter zero bugs abertos por 10 dias consecutivos. As chances são de que, especialmente para os pacotes mais populares, alguém envie um relatório de bug para uma versão instável se algo estiver errado.

    Mesmo que você não queira misturar os ambientes, ainda é bom ter a opção lá caso você encontre algo que exija uma versão mais recente do que a que está em stable.

    Aqui está o que eu recomendo para configurar isso:

    Primeiro, crie os seguintes arquivos em /etc/apt/preferences.d:

    stable.pref:

    # 500 <= P < 990: causes a version to be installed unless there is a
    # version available belonging to the target release or the installed
    # version is more recent
    
    Package: *
    Pin: release a=stable
    Pin-Priority: 900
    

    testing.pref:

    # 100 <= P < 500: causes a version to be installed unless there is a
    # version available belonging to some other distribution or the installed
    # version is more recent
    
    Package: *
    Pin: release a=testing
    Pin-Priority: 400
    

    unstable.pref:

    # 0 < P < 100: causes a version to be installed only if there is no
    # installed version of the package
    
    Package: *
    Pin: release a=unstable
    Pin-Priority: 50
    

    experimental.pref:

    # 0 < P < 100: causes a version to be installed only if there is no
    # installed version of the package
    
    Package: *
    Pin: release a=experimental
    Pin-Priority: 1
    

    (Não tenha medo das coisas instáveis/experimentais aqui. As prioridades são baixas o suficiente para que nunca instale automaticamente nenhuma dessas coisas. Mesmo a ramificação de teste se comportará, pois só instalará os pacotes que você deseja em testes.)

    Agora, criando um conjunto de correspondência para /etc/apt/sources.list.d:

    stable.list: Copie do seu original /etc/apt/sources.list. Renomeie o arquivo antigo para algo como sources.list.orig.

    testing.list: O mesmo que stable.list, exceto com testing.

    unstable.list: Igual a stable.list, exceto com unstablee remova as listas de segurança.

    experimental.list: O mesmo que unstable.list, exceto com experimental.

    Você também pode adicionar um oldstablein sources.lists.de preferences.d(use uma prioridade de 1), embora esse apelido tenda a expirar e desaparecer antes do próximo ciclo estável. Em casos como esse, você pode usar http://archive.debian.org/debian/e "codificar" a versão Debian (etch, lenny, etc.).

    Para instalar a versão de teste de um pacote, simplesmente use aptitude install lib-foobar-package/testing, ou simplesmente entre na GUI do aptitude e selecione a versão dentro dos detalhes do pacote (pressione enter no pacote que você está visualizando).

    Se você receber reclamações de conflitos de pacotes, veja primeiro as soluções. Na maioria dos casos, o primeiro será "não instale esta versão". Aprenda a usar as opções de resolução de aceitação/rejeição por pacote. Por exemplo, se você estiver instalando foobar-package/testing e a primeira solução for "não instale foobar-package/testing", marque essa opção como rejeitada e as outras soluções nunca mais seguirão esse caminho. Em casos como esses, você provavelmente terá que instalar alguns outros pacotes de teste.

    Se estiver ficando muito complicado (como se estivesse tentando atualizar a libc ou o kernel ou algum outro sistema central enorme), você pode rejeitar esses caminhos de atualização ou simplesmente sair da atualização inicial completamente. Lembre-se de que ele só atualizará coisas para testing/unstable se você permitir.

    EDIT: Corrigido alguns pinos de prioridade e atualizado a lista.

    • 217
  2. pQd
    2009-06-09T23:57:22+08:002009-06-09T23:57:22+08:00

    Em /etc/apt/apt.conf.dadicione o seguinte arquivo

    99defaultrelease:

    APT::Default-Release "stable";
    

    in /etc/apt/sources.list.d- adiciona urls para testes/fontes instáveis

    stable.list:

    deb     http://ftp.de.debian.org/debian/    stable main contrib non-free
    deb-src http://ftp.de.debian.org/debian/    stable main contrib non-free
    
    deb     http://security.debian.org/         stable/updates  main contrib non-free
    

    testing.list:

    deb     http://ftp.de.debian.org/debian/    testing main contrib non-free
    deb-src http://ftp.de.debian.org/debian/    testing main contrib non-free
    
    deb     http://security.debian.org/         testing/updates  main contrib non-free
    

    corre

    apt-get update
    

    e, em seguida, instale o que você precisa com

    apt-get -t testing install something
    

    Tenha muito, muito cuidado se você instalar coisas que tenham muitas dependências. De preferência, não faça isso na produção.

    Você também pode tentar a sorte em backports ou repositório semelhante.

    • 123
  3. Best Answer
    Gareth
    2009-06-10T00:04:43+08:002009-06-10T00:04:43+08:00

    apt_preferences

    Defina o nível padrão para o qual o sistema deve 'atualizar com segurança' no arquivo /etc/apt/preferences:
    man apt_preferences

    Há muito que você pode fazer com apt_preferences, mas por uma questão de simplicidade ...

    Eu precisava instalar um único pacote (autoMysqlBackup) que só estava disponível em Testing. A solução foi adicionar o seguinte a /etc/apt/preferences:

    Explanation: Uninstall or do not install any Debian-originated
    Explanation: package versions other than those in the stable distro
    Package: *
    Pin: release a=stable
    Pin-Priority: 900
    
    Package: *
    Pin: release o=Debian
    Pin-Priority: -10
    

    Com vários repositórios adicionados ao /etc/apt/sources.list, o aptitude agora apenas atualizará para a versão especificada, mesmo que os repositórios da versão posterior estejam listados (neste caso, 'stable').

    deb http://mirror.aarnet.edu.au/debian/ lenny main
    deb-src http://mirror.aarnet.edu.au/debian/ lenny main
    deb http://mirror.aarnet.edu.au/debian/ squeeze main
    deb-src http://mirror.aarnet.edu.au/debian/ squeeze main
    

    Então, para instalar esse pacote, tudo o que você precisa fazer é:

    $ aptitude install -t testing packageName 
    
    • 54
  4. Telemachus
    2009-06-10T05:09:26+08:002009-06-10T05:09:26+08:00

    Para o que vale a pena, o conselho geral que sempre vi é "Não misture estável com nada". A maioria dos tutoriais de sistemas mistos são para misturar testes e instáveis.

    O raciocínio parece ser que, se você misturar estável com teste, pacotes muito básicos (como libc6) exigirão atualizações (para instalar software de teste) e, uma vez que esses pacotes básicos passem para teste, todo o sistema pode derivar dessa maneira.

    Aqui estão duas alternativas:

    1. Use Backports .
    2. Instale uma linha de origem do teste e tente compilar a versão posterior desejada a partir do código-fonte .
    • 18
  5. tomdeb
    2009-06-10T00:24:08+08:002009-06-10T00:24:08+08:00

    A documentação do debian é extensa no assunto e eu aconselho fortemente a se aprofundar, pois revelará verdadeiramente a beleza do sistema debian.

    Dê uma olhada em Como manter um sistema misto , ele explicará tudo o que você precisa saber.

    • 13
  6. gerlos
    2014-03-14T09:02:47+08:002014-03-14T09:02:47+08:00

    Outra maneira, que pode evitar a instalação de muitas dependências do Testing ou Sid, é esta: você diz ao apt-get para obter a fonte do pacote do Testing ou Sid e cria um pacote para o seu sistema usando ferramentas Debian (não é necessário mexer manualmente com fontes).

    Citando daqui:
    https://wiki.debian.org/DebianUnstable#How_do_I_backport_a_sid_package_to_testing_or_stable.3F

    Como faço o backport de um pacote sid para testing ou stable?

    Instale a fonte Debian (e as ferramentas de desenvolvimento, especialmente debhelper, devscripts e build-essential), e então construa o pacote.

    Passo a passo:

    add a deb-src line for sid to your sources.list
    
    apt-get update
    
    apt-get build-dep PACKAGE_NAME
    
    apt-get -b source PACKAGE_NAME 
    

    Os debs resultantes devem estar no diretório atual e podem ser instalados com dpkg -i the.deb.

    • 9
  7. Daniel Sokolowski
    2013-02-05T14:59:15+08:002013-02-05T14:59:15+08:00

    Eu tenho feito isso por um longo período de tempo para ter confiança em dizer que é seguro o suficiente e pode ser conveniente. Com a configuração abaixo, a versão estável será instalada por padrão, no entanto, o Aptitude também permitirá que você escolha a versão retroportada ou instável, se desejar:

    insira a descrição da imagem aqui

    Há quatro coisas que precisam ser editadas, a versão de pinagem padrão precisa ser definida, as fontes precisam de backports e instáveis ​​adicionados, diminuindo a prioridade de pinagem de backports/pacotes instáveis, e as configurações de exibição do aptitude precisam ser modificadas para exibir a pinagem.

    • Crie um '/etc/apt/apt.conf.d/10defaultrelease' e faça seu conteúdo da seguinte forma:
    Apt::default-Release "stable";
    
    • Edite seu '/etc/apt/sources.list' para adicionar fontes instáveis ​​e backports para que fique assim:
    # deb cdrom:[Debian GNU/Linux 6.0.0 _Squeeze_ - Official Multi-architecture amd64/i386 NETINST #1 20110205-14:45]/ squeeze main
    
    deb http://ftp.us.debian.org/debian/ squeeze main
    deb-src http://ftp.us.debian.org/debian/ squeeze main
    
    deb http://security.debian.org/ squeeze/updates main
    deb-src http://security.debian.org/ squeeze/updates main
    
    # squeeze-update, anteriormente conhecido como 'volátil'
    deb http://ftp.us.debian.org/debian/ squeeze-updates main
    deb-src http://ftp.us.debian.org/debian/ squeeze-updates main
    
    #apertar backports
    # http://backports.debian.org/Instructions/
    deb http://backports.debian.org/debian-backports squeeze-backports main
    
    # instável
    # http://wiki.debian.org/AptPreferences
    deb http://ftp.us.debian.org/debian/ instável main
    deb-src http://ftp.us.debian.org/debian/ instável main
    
    # não livre ex. sol java
    #deb http://ftp.us.debian.org/debian/ squeeze não-livre
    #deb-src http://ftp.us.debian.org/debian/ squeeze non-free
    
    • Editar etc/apt/preferencesarquivo de fixação - se o arquivo não existir, crie-o.
    # Prioridades de fixação de pacotes
    # Veja http://wiki.debian.org/AptPreferences e http://manpages.debian.net/cgi-bin/man.cgi?query=apt_preferences
    #
    # Em casca de noz, o PIN mais alto é instalado
    #
    # O padrão de pining é o seguinte, além de nossas configurações:
    # 990 - para versões que não estão instaladas, mas pertencem à nossa configuração `APT::Default-Relase "stable"`.
    # 500 - para versões que não estão instaladas e não pertencem à versão de destino
    # 100 - para pacotes que já estão instalados, isso também significa outras versões do mesmo pacote
    # 1 - para pacotes experimentais; pacotes com "NotAutomatic: yes"
    #
    # Nossos Pins
    # 400 - backports que podem ser instalados com segurança sem a necessidade de atualizar outros pacotes
    # 50 - pacotes instáveis, instalação forçada na tela de detalhes, pode resultar em conflitos
    
    Pacote: *
    Pin: solte n=squeeze-backports
    Pin-Prioridade: 400
    
    Pacote: *
    Pin: solte a=instável
    
    • Crie '/etc/apt/apt.conf.d/100guiconf' e configure o Aptitude para que ele exiba informações de fixação.
    Aptitude::UI::Package-Display-Format "%c%a%M %p %Z %v %V %i";
    
    • 4
  8. Monica For CEO
    2015-07-07T10:53:48+08:002015-07-07T10:53:48+08:00

    Se sua seleção de pacotes for mais complexa ou a instalação for repetida em várias máquinas, você pode considerar configurar um repositório privado que espelhe um subconjunto dos repositórios oficiais. Isso requer um pouco de trabalho para configurar o repositório, mas a recompensa é fácil de manter com um mínimo de configuração em cada cliente e resultados repetíveis ao fazer dezenas de instalações. Acho isso útil mesmo quando apenas um ou dois pacotes estão sendo instalados e uso esse método para automatizar e manter instalações na nuvem. Um único servidor em um VPS barato pode lidar com dezenas de repositórios privados.

    Para configurar seu servidor de repositório privado:

    # Install aptly.
    apt-get install aptly
    
    # Create local mirror (choose a source mirror near you).
    aptly mirror create -filter="mirror-contains-no-packages" stretch-roundcube http://httpredir.debian.org/debian stretch main
    
    # Configure filters for local mirror.
    aptly mirror edit -filter="Name (% roundcube*)" stretch-roundcube
    
    # Update local mirror.
    aptly mirror update stretch-roundcube
    
    # Drop previously published repositories and mirrors, if running these commands in a script.
    aptly publish drop stretch
    
    # Drop snapshot, if running these commands in a script.
    aptly snapshot drop stretch-roundcube
    
    # Create new snapshot.
    aptly snapshot create stretch-roundcube from mirror stretch-roundcube
    
    # Publish snapshot.
    aptly publish snapshot -architectures=i386,amd64 -distribution=stretch -component=roundcube -label="Your Name" -origin="Your Name" stretch-roundcube
    

    Em seguida, configure seu servidor web de escolha para servir os arquivos de repositório estáticos. Possivelmente proteja o repositório com um certificado de segurança e autenticação básica.

    Para manter automaticamente seu repositório privado e obter atualizações do upstream, coloque o acima em um script e execute a partir de um cron job.

    Para configurar sua máquina cliente, em sua máquina cliente:

    # Configure private repository without authentication.
    echo 'deb http://private.repository.example.com/ stretch roundcube' > /etc/apt/sources.list.d/private.repository.example.com.list
    
    # Configure private repository with authentication.
    echo 'deb https://hostname:[email protected]/ stretch roundcube' > /etc/apt/sources.list.d/private.repository.example.com.list
    apt-get install apt-transport-https
    
    # Update.
    apt-get update
    
    # Install package.
    apt-get install roundcube
    

    Para manter sua máquina cliente e obter todas as atualizações de seu repositório privado, em sua máquina cliente:

    # Update.
    apt-get update
    
    # Upgrade.
    apt-get upgrade
    
    • 2
  9. temy
    2018-02-16T19:15:42+08:002018-02-16T19:15:42+08:00

    Outra opção é baixar o pacote fonte do teste. O APT pode construir automaticamente o pacote fonte depois de baixá-lo. Dessa forma, seus pacotes estáveis ​​não serão afetados pelas atualizações de teste. A única desvantagem é que levará mais tempo do que apenas baixar e instalar o pacote binário.

    Para configurar o APT para baixar os pacotes fonte do teste, basta adicionar:

    deb-src http://<your debian mirror here> testing main
    

    Se você quiser apenas seguir os testes atuais e não os testes futuros, substitua "testing" pelo codinome atual (no momento em que este texto foi escrito, é "buster")

    • 2
  10. Gilles Quenot
    2020-06-25T15:33:02+08:002020-06-25T15:33:02+08:00

    What I do to avoid mixing stable/testing/experimental, is to install a Debian Sid in a directory on my Debian stable system with debootstrap, then I can use the tools I want. In this example, I need a recent xmllint tool (XML processing).

    For this, this is what I've done:

    apt install debootstrap
    mkdir /home/sid-chroot
    debootstrap --arch amd64 sid /home/sid-chroot http://mirrors.ircam.fr/pub/debian/
    chroot /home/sid-chroot
    apt install libxml2-utils
    

    Now, I can exit the chroot and use the lib, 'hacking' LD_LIBRARY_PATH for specific dynamic loading librarys.

    In ~/.bashrc:

    alias xmllint='LD_LIBRARY_PATH=/home/sid-chroot/usr /home/sid-chroot/usr/bin/xmllint'
    

    Now, when I run xmllint, I have the 2.9.10 version of libxml2-utils. (2019 vs 2016 versions).

    The pros:

    • I can install any other one package easily
    • no kitty killed, no risk to crash my desktop by mixing testing/experimental stuff
    • I keep my Debian stable system up to date with the security updates
    • Eu mantenho meu sistema amplamente usado por muitas pessoas (ao contrário sidde ), desta forma, software aleatório ainda é compatível o suficiente

    Os contras:

    • leva 410 MB no sistema (não me importo)
    • ele precisa de alias em.bashrc
    • 2

relate perguntas

  • Protegendo um novo servidor Ubuntu [fechado]

  • (Soft) RAID 6 no Ubuntu 7.10, devo migrar para 8.10?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Resolver o nome do host do endereço IP

    • 8 respostas
  • Marko Smith

    Como posso classificar a saída du -h por tamanho

    • 30 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    Qual é o utilitário de linha de comando no Windows para fazer uma pesquisa reversa de DNS?

    • 14 respostas
  • Marko Smith

    Como verificar se uma porta está bloqueada em uma máquina Windows?

    • 4 respostas
  • Marko Smith

    Qual porta devo abrir para permitir a área de trabalho remota?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    MikeN No Nginx, como posso reescrever todas as solicitações http para https mantendo o subdomínio? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 Qual é a diferença entre colchetes duplos e simples no bash? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch Como altero a senha da minha chave privada? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt Como funciona a sub-rede IPv4? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve