Debian: Precisa de alguma explicação sobre o que o apt está fazendo

0

Eu tenho um sistema jessie debian (devuo para ser mais preciso). Agora tento obter pacotes dos releases de jessie-backports e jessie-security.

Mas eu não entendo o que o apt está fazendo.

Isso é o que eu realmente tento descobrir: o que é tentar me dizer aqui?

Eu sei como forçar uma atualização para o ASCII. Eu agora também consegui forçar meu sistema a usar o jessie-backports; Eu ainda não tenho idéia do que apt tentou me dizer na descrição abaixo.

Eu quero descobrir qual é o problema do apt, porque tenho certeza de que verei o mesmo tipo de problema no futuro (na verdade, acabei de fazer em outro sistema). Então, quem quer que tenha uma melhor compreensão do que eu, se você souber: por favor, tente explicar o que acontece ...

Primeiramente, começo com o gcc:

# apt-cache policy libgcc1 gcc-4.9-base
libgcc1:
  Installed: 1:4.9.2-10
  Candidate: 1:4.9.2-10+deb8u1
  Version table:
     1:6.3.0-18+deb9u1 0
        500 http://de.mirror.devuan.org/merged/ ascii/main amd64 Packages
     1:4.9.2-10+deb8u1 0
        991 http://de.mirror.devuan.org/merged/ jessie-security/main amd64 Packages
 *** 1:4.9.2-10 0
        600 http://de.mirror.devuan.org/merged/ jessie/main amd64 Packages
        100 /var/lib/dpkg/status
gcc-4.9-base:
  Installed: 4.9.2-10
  Candidate: 4.9.2-10+deb8u1
  Version table:
     4.9.2-10+deb8u1 0
        991 http://de.mirror.devuan.org/merged/ jessie-security/main amd64 Packages
 *** 4.9.2-10 0
        600 http://de.mirror.devuan.org/merged/ jessie/main amd64 Packages
        100 /var/lib/dpkg/status

Como você pode ver, tenho alguns ajustes no lugar. Pelo que entendi, pensei que "991" significa usar este pacote, desde que seja mais recente. Aqui está minha configuração completa de pinagem:

/etc/apt/preferences.d# cat *

Package: *
Pin: release a=jessie-backports
Pin-Priority: 991

Package: *
Pin: release a=jessie-security
Pin-Priority: 991

Package: *
Pin: release a=stable
Pin-Priority: 600

Package: *
Pin: release a=ascii
Pin-Priority: 550

Package: *
Pin: release a=jessie-updates
Pin-Priority: 560

Ele também insere as linhas "Candidate:" indicando que o apt agora mudará para o pacote um pouco mais novo de "jessie-security".

Então, primeiro surpresa:

# apt-get install -s gcc-4.9-base
The following packages have unmet dependencies:
 libgcc1 : Depends: gcc-4.9-base (= 4.9.2-10) but 4.9.2-10+deb8u1 is to be installed

Eu pensei que com o pinning acima o apt iria automaticamente extrair a libgcc1 da jessie-security e assim resolveria a dependência não satisfeita acima.

O que há de errado aqui?

Próximo problema:

# apt-get install -s libgcc1 gcc-4.9-base
The following packages were automatically installed and are no longer required:
  antiword crda cups-pk-helper eclipse-cdt-jni eclipse-platform-data
  espeak-data fastjar firebird2.5-common firebird2.5-common-doc
  fonts-freefont-ttf fonts-opensymbol gir1.2-atk-1.0 gir1.2-atspi-2.0
  gir1.2-freedesktop gir1.2-gdkpixbuf-2.0 gir1.2-glib-2.0
...

WTF?

Isso com certeza não é verdade. Então, obviamente eu não entendo completamente alguma coisa aqui. Ainda pior:

The following extra packages will be installed:
  cpp-4.9 gettext-base lib32gcc1 lib32stdc++6 libatomic1 libegl1-mesa-drivers
  libgfortran3 libgomp1 libitm1 libobjc4 libosgi-compendium-java libquadmath0
  libsoxr0
Suggested packages:
  gcc-4.9-locales libosgi-compendium-java-doc
The following packages will be REMOVED:
  adwaita-icon-theme ant ant-optional apt apt-file apt-listchanges
  apt-show-versions apt-transport-https apt-utils aptitude aspectj aspell
  aspell-de aspell-en astyle build-essential ca-certificates-java chromium
  claws-mail claws-mail-i18n claws-mail-pdf-viewer claws-mail-pgpinline
...

Portanto, este comando "apt-get install" removerá metade do meu sistema.

Eu não entendo nada aqui o que está acontecendo ...

Alguém por favor pode explicar?

EDIT: Foi mencionado que eu não deveria usar versões mistas. Eu não acredito que isso tenha algo a ver com a minha pergunta. Mas só para ter certeza: eu removi todas as fontes ASCII e removi todas as fixações relacionadas a ASCII e reduzi os poucos pacotes que eu tinha de ASCII de volta para JESSIE. Tudo isso não muda nada: se eu executar

apt-get install -s libgcc1 gcc-4.9-base

apt informa que removerá metade do meu sistema.

Por quê?

E há também a primeira parte da pergunta: Por que o apt não resolve automaticamente a dependência de libgcc1 se eu apenas usar

apt-get install -s gcc-4.9-base
    
por Ingo Blackman 14.06.2018 / 13:20

1 resposta

3

Você tem uma lista mista de sources.list: Jessie e ascii (stretch).

Remova o ascii do seu sources.list

Remova as seguintes linhas do seu arquivo preferences :

Package: *
Pin: release a=ascii
Pin-Priority: 550

Executar:

apt-get update
apt-get dist-upgrade

O que é uma dependências não atendidas ?

Se algumas dependências não forem atendidas durante a instalação de um pacote, a instalação falhará. O libgcc1 (1:6.3.0-18+deb9u1) depende de uma versão exata de gcc-6-base v = 6.3.0-18 + deb9u1. A versão atual instalada é 6.3.0-18

Como resolver as dependências não atendidas?

No seu caso, anexe um alfinete de prioridade 1001 ao antigo lançamento estável, ele fará o upgrade / downgrade de seus pacotes para jessie.

Package: *
Pin: release a=jessie-security
Pin-Priority: 1001

Package: *
Pin: release a=stable
Pin-Priority: 1001

Package: *
Pin: release a=jessie-updates
Pin-Priority: 1001

Em seguida, atualize seu pacote.

apt-get update
apt-get dist-upgrade

Em alguns casos, você deve usar a versão exata do pacote a ser instalada para resolver o problema das dependências não atendidas:

apt-get install gcc-4.9-base=4.9.2-10+deb8u1
apt-get install libgcc1

Por que muitos pacotes serão removidos?

apt instale um pacote incluindo suas dependências, se o pacote for removido, esse pacote se tornará desnecessário e automaticamente removido.

APT informa quais pacotes não são mais necessários

Over time, some of those automatically installed packages become unnecessary because the packages that depended on them no longer do. It might be that they are using a newer version of the same library, or they switched to use something else, or they are able to do the task themselves.

Para atualizar para ascii, edite seu /etc/apt/sources.list adicionando apenas as seguintes linhas:

deb http://pkgmaster.devuan.org/merged ascii main
deb http://pkgmaster.devuan.org/merged ascii-updates main
deb http://pkgmaster.devuan.org/merged ascii-security main
deb http://pkgmaster.devuan.org/merged ascii-backports main

Remova o arquivo /etc/apt/preferences e execute

apt-get upgrade devuan-keyring
apt-get update
apt-get dist-upgrade

Atualize de Devuan Jessie para Ascii

    
por 14.06.2018 / 13:42