Como eu corrijo este problema (insserv) não consigo atualizar, não posso executar aplicativos

0

Eu não sei como obtive esse problema, mas não consigo instalar aplicativos, atualizar, atualizar ou executar aplicativos.

$ sudo update-rc.d ums defaults
insserv: warning: script 'S99selinux' missing LSB tags and overrides
insserv: warning: script 'S97DbSecuritySpt' missing LSB tags and overrides
insserv: warning: script 'selinux' missing LSB tags and overrides
insserv: warning: script 'DbSecuritySpt' missing LSB tags and overrides
insserv: There is a loop between service plymouth and networking if started
insserv:  loop involving service networking at depth 3
insserv:  loop involving service procps at depth 2
insserv:  loop involving service iscsid at depth 6
insserv:  loop involving service urandom at depth 4
insserv: There is a loop between service plymouth and mountdevsubfs if started
insserv:  loop involving service mountdevsubfs at depth 2
insserv:  loop involving service udev at depth 1
insserv: Starting selinux depends on plymouth and therefore on system facility '$all' which can not be true!
insserv: Starting DbSecuritySpt depends on plymouth and therefore on system facility '$all' which can not be true!
insserv: Starting selinux depends on plymouth and therefore on system facility '$all' which can not be true!
insserv: Starting DbSecuritySpt depends on plymouth and therefore on system facility '$all' which can not be true!
insserv: Starting selinux depends on plymouth and therefore on system facility '$all' which can not be true!
insserv: Starting DbSecuritySpt depends on plymouth and therefore on system facility '$all' which can not be true!
insserv: Starting selinux depends on plymouth and therefore on system facility '$all' which can not be true!
    
por Raymond Eirik Andersen Kibsgaa 07.12.2016 / 22:18

1 resposta

0

O problema:

O insserv ajuda a descobrir quais serviços devem ser iniciados em qual ordem.

% bl0ck_qu0te%

É um sistema desajeitado, substituído por Upstart (Ubuntu 14.04), e mais tarde por systemd (Ubuntu 16.04). Mas o insserv continua a ajudar os serviços sysvinit muito antigos a se adequarem ao novo mundo.

Todas essas formas de iniciar serviços têm uma coisa em comum - elas odeiam loops. O sistema não pode determinar qual serviço deve ser iniciado primeiro.

% bl0ck_qu0te%

O sistema calcula grande parte da ordem de início quando os pacotes são instalados ou desinstalados. Ajustar a ordem de início faz parte da configuração de um pacote recém-instalado.

Um loop causará um erro.

O erro impedirá que o pacote seja configurado.

O pacote não configurado causará um erro no gerenciador de pacotes.

Agora, volte e leia novamente a mensagem de erro inteira. Você pode ver o erro insserv, que faz com que a instalação do pacote falhe, o que faz com que todos os pacotes de dependência falhem.

Há mais um elemento: Apt, o gerenciador de pacotes, lembra que você deseja que este pacote seja instalado. Toda vez que você iniciar o apt, ele irá olhar em volta para ver se deve retomar qualquer instalação incompleta. Então, o apt continuará tentando para instalar esses pacotes toda vez que você executá-lo, e você continuará recebendo os mesmos erros toda vez.

O Apt termina no primeiro erro, portanto, o erro pode (inadvertidamente) bloquear outras ações do pacote, incluindo atualizações normais e patches de segurança.

As soluções:

Existem várias maneiras de lidar com o problema.

1) Leia as mensagens de erro cuidadosamente Você tem QUATRO scripts (dois chamados 'selinux') sem nenhum cabeçalho LSB. Isso é incomum - você tentou instalar o SELinux de várias maneiras? Nesse caso, limpe suas tentativas antigas antes de continuar. Basta editar cada um dos scripts restantes, adicionando os Cabeçalhos do LSB para informar ao sistema quando o script deve ser executado. Mantenha anotações, porque esta é uma solução temporária - uma atualização de pacote pode apagar suas alterações.

Um cabeçalho LSB adequado é parecido com isto:

### BEGIN INIT INFO
# Provides:          scriptname
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start daemon at boot time
# Description:       Enable service provided by daemon.
### END INIT INFO

2) Além de perder cabeçalhos e tags LSB, você tem Loops. Lembre-se de que o init realmente odeia loops. Se adicionar cabeçalhos e tags não resolver o problema, edite as tags para que o selinux e outros scripts não dependam de plymouth ... ou altere o plymouth para que ele não dependa de $ all.

AVISO: Mantenha anotações cuidadosas e um LiveUSB acessível com a ordem de inicialização dos serviços essenciais (como o plymouth) pode danificar seu sistema ou torná-lo não inicializável.

3) Como alternativa, se você não usar alguns desses serviços, simplesmente desinstale o (s) serviço (s) não destacado (s). Loop quebrado, apt deve completar a configuração e instalar.

4) Se você estiver usando o 16.04 ou mais recente, envie um relatório de bug a cada projeto upstream. O Insserv é muito antigo e desajeitado, e esses upstreams devem fornecer arquivos de serviço nativo do systemd.

    
por user535733 01.02.2017 / 14:10