Entrada Inválida MacPorts

1

Estou preso a atualizar meus MacPorts. Eu pareço ter um problema no registro. Eu arquivei um ticket aqui . Quando eu faço sudo port upgrade outdated , recebo esses erros:

DEBUG: Executing org.macports.uninstall (iso-codes)
--->  Unable to uninstall iso-codes @3.34_0, the following ports depend on it:
Error: org.macports.uninstall for port iso-codes returned: an invalid entry was passed
DEBUG: Error code: registry::invalid
DEBUG: Backtrace: an invalid entry was passed
    while executing
"$depport name"
    (procedure "registry::check_dependents" line 19)
    invoked from within
"registry::check_dependents $port ${uninstall.force} "uninstall""
    (procedure "registry_uninstall::uninstall" line 83)
    invoked from within
"registry_uninstall $subport $version $revision $portvariants [array get user_options]"
    (procedure "portuninstall::uninstall_main" line 3)
    invoked from within
"$procedure $targetname"
Warning: targets not executed for iso-codes: org.macports.uninstall
Please see the log file for port iso-codes for details:
    /opt/local/var/macports/logs/_opt_local_var_macports_registry_portfiles_iso-codes_3.34_0/iso-codes/main.log
DEBUG: an invalid entry was passed
    while executing
"$depport name"
    (procedure "registry::check_dependents" line 19)
    invoked from within
"registry::check_dependents $port ${uninstall.force} "uninstall""
    (procedure "registry_uninstall::uninstall" line 83)
Warning: Failed to execute portfile from registry for iso-codes @3.34_0
--->  Unable to uninstall iso-codes @3.34_0, the following ports depend on it:
DEBUG: an invalid entry was passed
    while executing
"$depport name"
    (procedure "registry::check_dependents" line 19)
    invoked from within
"registry::check_dependents $port ${uninstall.force} "uninstall""
    (procedure "registry_uninstall::uninstall" line 83)
    invoked from within
"registry_uninstall::uninstall $newname $version_in_tree $revision_in_tree $portinfo(canonical_active_variants) [array get options]"
Error: Uninstall iso-codes 3.34_0 failed: an invalid entry was passed
To report a bug, follow the instructions in the guide:
    http://guide.macports.org/#project.tickets

Outro usuário do MacPorts teve o mesmo problema e parece que não encontrou uma resposta. Parece ser um erro relacionado ao registro - banco de dados sqlite. Eu tenho tentado descobrir como posso resolver este problema. Eu não tive sucesso. Sem uma correção, não consigo me mover. Até mesmo a desinstalação de todas as portas para fazer uma nova instalação limpa não funciona.

Como posso

  • corrija este problema
  • se não for possível reinstalar o MacPorts quando a desinstalação das portas for impossível
por rhand 18.05.2012 / 07:12

2 respostas

1

O problema foi resolvido graças às pessoas da MacPorts. Veja o bilhete da pista aqui . Houve um problema com o registro MacPorts. De alguma forma, o banco de dados SQLite tinha algumas sobras de dependência não autorizadas que precisavam ser removidas. Eu executei a consulta sqlite

sqlite> UPDATE dependencies SET id = 2323 WHERE id = 1407;

para substituir o id da porta ausente no banco de dados pelo id usado pelo pkgconfig. Funcionou como um encanto. Eu então poderia fazer

sudo upgrade outdated

novamente e continue atualizando todas as minhas portas desatualizadas e conserte as quebradas. Tudo bem agora!

    
por 25.05.2012 / 09:26
3

Um resumo da solução proposta na falha de desinstalação: "uma entrada inválida foi passada" :

Etapa 1: abra o registro Macports com sqlite3 :

sudo sqlite3 /opt/local/var/macports/registry

Etapa 2: encontrar as portas problemáticas:

sqlite> SELECT * FROM dependencies WHERE id NOT IN (SELECT DISTINCT id FROM ports);
618|apr|
618|expat|
618|libiconv|
618|db46|
618|sqlite3|

Etapa 3: remova as linhas incorretas:

DELETE FROM dependencies WHERE id = 618;
DELETE FROM files WHERE id = 618;

Etapa 4: corrija sua instalação

sudo port selfupdate 
sudo port upgrade outdated

Observe que id varia por instalação!

    
por 05.03.2013 / 12:23