BOTH available-old & disponível ausente do dpkg - “dpkg: error: falha ao abrir o arquivo info do pacote '/ var / lib / dpkg / available' para leitura”

1

Problema: Muitos threads tentam resolver o problema dos pacotes quebrados usando as opções abaixo. No entanto, meu principal problema é que AMBOS os & amp; disponíveis Os antigos disponíveis não existem. Não tenho idéia de como acabei excluindo-os (se não fosse por causa de um pacote corrompido)

sudo dpkg --clear-avail && sudo apt-get update
sudo dpkg-reconfigure -a 
ekta@superwomen:~$ sudo apt-get dselect-upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be upgraded:
  bluez bluez-alsa bluez-cups bluez-gstreamer cython dpkg dpkg-dev firefox
  firefox-globalmenu firefox-locale-en flashplugin-installer
  gnome-settings-daemon libbluetooth3 libdpkg-perl liblcms2-2 thunderbird
  thunderbird-gnome-support thunderbird-locale-en thunderbird-locale-en-us
  unity-greeter
20 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/72.5 MB of archives.
After this operation, 15.7 MB of additional disk space will be used.
Do you want to continue [Y/n]? y
Preconfiguring packages ...
dpkg: error: failed to open package info file '/var/lib/dpkg/available' for reading: No such file or directory
E: Sub-process /usr/bin/dpkg returned an error code (2)


sudo do-release-upgrade

dpkg: error: failed to open package info file '/var/lib/dpkg/available' for reading: No such file or directory
E: Sub-process /usr/bin/dpkg returned an error code (2)


--- from update manager ---
    installArchives() failed: perl: warning: Setting locale failed.
    perl: warning: Please check that your locale settings:
        LANGUAGE = (unset),
        LC_ALL = (unset),
        LANG = "en_IN.ISO8859-1"
        are supported and installed on your system.
    perl: warning: Falling back to the standard locale ("C").
    locale: Cannot set LC_CTYPE to default locale: No such file or directory
    locale: Cannot set LC_MESSAGES to default locale: No such file or directory
    locale: Cannot set LC_ALL to default locale: No such file or directory
    Preconfiguring packages ...
    perl: warning: Setting locale failed.
    perl: warning: Please check that your locale settings:
        LANGUAGE = (unset),
        LC_ALL = (unset),
        LANG = "en_IN.ISO8859-1"
        are supported and installed on your system.
    perl: warning: Falling back to the standard locale ("C").
    locale: Cannot set LC_CTYPE to default locale: No such file or directory
    locale: Cannot set LC_MESSAGES to default locale: No such file or directory
    locale: Cannot set LC_ALL to default locale: No such file or directory
    Preconfiguring packages ...
    perl: warning: Setting locale failed.
    perl: warning: Please check that your locale settings:
        LANGUAGE = (unset),
        LC_ALL = (unset),
        LANG = "en_IN.ISO8859-1"
        are supported and installed on your system.
    perl: warning: Falling back to the standard locale ("C").
    locale: Cannot set LC_CTYPE to default locale: No such file or directory
    locale: Cannot set LC_MESSAGES to default locale: No such file or directory
    locale: Cannot set LC_ALL to default locale: No such file or directory
    Preconfiguring packages ...
    perl: warning: Setting locale failed.
    perl: warning: Please check that your locale settings:
        LANGUAGE = (unset),
        LC_ALL = (unset),
        LANG = "en_IN.ISO8859-1"
        are supported and installed on your system.
    perl: warning: Falling back to the standard locale ("C").
    locale: Cannot set LC_CTYPE to default locale: No such file or directory
    locale: Cannot set LC_MESSAGES to default locale: No such file or directory
    locale: Cannot set LC_ALL to default locale: No such file or directory
    Preconfiguring packages ...
    dpkg: error: failed to open package info file '/var/lib/dpkg/available' for reading: No such file or directory

dpkg: erro: falha ao abrir o arquivo de informações do pacote '/ var / lib / dpkg / available' para leitura: Nenhum arquivo ou diretório E: Subprocesso / usr / bin / dpkg retornou um código de erro (2)

Estou no ubuntu 12.04 LTS & amp; aqui está o conteúdo de / var / lib / dpkg

ekta@superwomen:/var/lib/dpkg$ ls -l 
total 9932
drwxr-xr-x 2 root root    4096 Apr 29 15:23 alternatives
drwxr-xr-x 2 root root  372736 May  4 20:08 info
-rw-r--r-- 1 root root       0 May  4 22:31 lock
drwxr-xr-x 2 root root    4096 Apr 13  2012 parts
-rw-r--r-- 1 root root 1975559 May  4 22:32 status
-rw-r--r-- 1 root root 1947927 May  4 21:39 status-bad
-rw-r--r-- 1 root root 1947932 May  4 20:48 status-old
-rw-r--r-- 1 root root 1947932 May  4 21:48 status_ekta
-rw-r--r-- 1 root root 1948728 May  4 20:48 status~
drwxr-xr-x 2 root root    4096 Apr 29 15:23 triggers
drwxr-xr-x 2 root root    4096 May  4 21:39 updates

status_ekta é um backup & amp; criado manualmente status-bad reflete que fiz essa manipulação no arquivo de status "principal" antes de fazer o backup (em uma pasta diferente). Arquivo de status, portanto, deve estar bem.

Eu também tentei purge, autoremove - que basicamente removeu os pacotes corrompidos, mas não resolve o problema principal de não ter a "lista" de pacotes disponíveis.

Minha pergunta:

1. O que o arquivo disponível tem, afinal? posso atualizar isso manualmente usando dpkg -l de alguma forma?

2. Como posso resolver isso sem re-instalar completamente, e se existem alternativas estáveis para o apt-get (o apt-get é APENAS para o dpkg eu suponho?) O que mais eu terei viver sem, se eu não consertar isso?

Eu também deselecionei o ppa repos do gerenciador de atualização & amp; selecionou o "Servidor Principal", como parte da solução de problemas da Canonical aqui , mas não ajudou.

Veja o que eu tenho no meu arquivo "status" -

ekta@superwomen:/var/lib/dpkg$ cat status | grep "Status:" | sort -u 
Status: deinstall ok config-files
Status: install ok installed
    
por user277881 04.05.2014 / 18:56

1 resposta

1

Inicie o Ubuntu Live Disk e copie o arquivo /var/lib/dpkg/available para o caminho correspondente na partição onde o Ubuntu está realmente instalado.

  • Inicialize a partir do Ubuntu live disk e clique na opção try do Ubuntu na inicialização.

  • Agora abra o terminal pressionando ctrl + Alt + T.

    sudo mount /dev/sdaX /mnt        # Where /dev/sdaX is your installed Ubuntu's partition
    sudo cp /var/lib/dpkg/available /mnt/var/lib/dpkg
    
  • Após a operação acima, inicialize a partir do seu disco rígido. Agora vai funcionar.

por Avinash Raj 05.05.2014 / 05:20