reboot e shutdown executáveis ausentes

3

Estou trabalhando com alguns scripts proprietários para um projeto Linux embarcado. Um dos scripts substitui os executáveis de reinicialização e desligamento em / sbin / com um symlink para um programa Perl. Eu executei este script prematuramente e agora estou sentindo falta desses dois executáveis.

Meus esforços em descobrir qual pacote no Linux contém esses executáveis foram inúteis, eu tentei iniciar assim como vários outros que eu poderia pensar ou pesquisar.

Algum conselho para recuperar \ reinstalar esses executáveis? Eu sempre posso usar apenas o init 0 e o init 6 ... mas eu prefiro os executáveis.

    
por user138741 03.06.2015 / 22:13

4 respostas

1

Acho que as respostas acima podem dar o resultado, mas vou usar uma abordagem lógica para alcançar o mesmo resultado.

Para saber que um arquivo específico pertence a qual pacote você pode usar:

dpkg -S /path-to-file

Agora vamos verificar shutdown e reboot caminho

$which shutdown 
/sbin/shutdown

$which reboot
/sbin/reboot

Agora vamos verificar o pacote que pertence a ele

$ dpkg -S /sbin/shutdown
upstart: /sbin/shutdown

$ dpkg -S /sbin/reboot
upstart: /sbin/reboot

Então, como conclusão, shutdown e reboot pertencem a upstart package, então agora você pode facilmente reinstalar o pacote

sudo apt-get install --reinstall upstart
    
por Maythux 04.06.2015 / 08:22
6

E agora, a versão 15 responde.

Todos os outros assumiram a versão 14 e lhe disseram para procurar onde você já havia olhado sem sucesso. Eles perderam a pista onde você disse na pergunta:

% bl0ck_qu0te%

Na versão 15 fora da caixa, não existem executáveis. Eles eram links simbólicos, para começar, fornecidos pelo pacote systemd-sysv . Você não precisa reinstalar nada, na verdade. O programa que você executa por esses nomes não foi excluído. Você acabou de colocar os links simbólicos de volta.

ln -f -s -- ../bin/systemctl /sbin/reboot
ln -f -s -- ../bin/systemctl /sbin/shutdown

A pista no que você disse sobre o upstart, é claro, é que esses comandos foram removidos do pacote upstart para a versão 15, precisamente para que ele possa ser instalado subordinado ao systemd. Os comandos e instrumentação emergentes conflitantes necessários para a execução do processo de inicialização como o número 1 foram movidos para o pacote upstart-sysv . Então, é claro que você não os encontrou no pacote iniciante.

Não misture e combine esses conjuntos de ferramentas. systemd-sysv ou upstart-sysv . Não é uma mistura de ambos. Como eu disse, no systemd Ubuntu Linux versão 15 você pode simplesmente colocar os links simbólicos de volta diretamente sem mexer nos pacotes.

Leitura adicional

por JdeBP 06.06.2015 / 14:36
1

No meu sistema /sbin/reboot é fornecido por

[romano:~] % apt-file search /sbin/reboot
molly-guard: /usr/sbin/reboot
upstart: /sbin/reboot

então parece que o pacote upstart o contém; isso é confirmado aqui: link

Se você baixar o pacote de link (altere sua versão, claramente) e abra com um gerenciador de arquivos você tem:

...entãosim,estálá.Vocêdevesercapazderecuperá-loscomumareinstalação;emprincípio,deveriaser

apt-getinstall--reinstallupstart

mastenhacuidado,esteéumpacotebastantebásico,entãoeufareiissonoconsole,seminterfacegráfica,eprovavelmenteem modo de usuário único (esta é a razão pela qual eu omiti o sudo necessário aqui). embora talvez seja exagero.

    
por Rmano 03.06.2015 / 22:19
0

Você pode encontrar praticamente tudo o que estiver procurando com o excelente mecanismo de pesquisa de pacotes do Ubuntu. Por exemplo, reboot e shutdown.

Você pode filtrar seus resultados por arquitetura e lançamento.

Com base no que está sendo mostrado, você está procurando o pacote inicial.

Os testes indicam que você pode reinstalar com êxito o comando sudo apt-get install --reinstall upstart . Eu reiniciei apenas para garantir que o upstart funcionasse corretamente. Eu entrei no comando em uma janela de terminal.

Estes resultados foram obtidos no Ubuntu 14.04 LTS

    
por Elder Geek 03.06.2015 / 22:36