Redmine 3.2.3-1 está meio instalado. Não pode ser reinstalado nem removido

5

Quando instalei o Redmine, tive um problema no meio da configuração do banco de dados. Eu acho que eu ctrl C'ed no meio dele porque eu tentei mudar para o Mysql depois de iniciar com sqlite3. Desde então, não consigo removê-lo, instalá-lo, configurá-lo ou reinstalá-lo. A outra questão sobre a correção do pacote parcialmente instalado está retornando um erro 123.

  

sudo apt-get instalar redmine

 Do you want to continue? [Y/n] y
 dpkg: error processing package redmine (--configure):
 package redmine is not ready for configuration
 cannot configure (current status 'half-installed')
 Errors were encountered while processing:
 redmine
 E: Sub-process /usr/bin/dpkg returned an error code (1)
  

sudo apt-get remove redmine

Do you want to continue? [Y/n] y
dpkg: error processing package redmine (--remove):
 package is in a very bad inconsistent state; you should
 reinstall it before attempting a removal
Errors were encountered while processing:
 redmine
E: Sub-process /usr/bin/dpkg returned an error code (1)
  

sudo apt-get install --reinstale o redmine

Preparing to unpack .../redmine_3.2.1-2_all.deb ...
Unpacking redmine (3.2.1-2) over (3.2.1-2) ...
ls: cannot access '/etc/redmine/*/database.yml': No such file or directory
dirname: missing operand
Try 'dirname --help' for more information.
basename: missing operand
Try 'basename --help' for more information.
dpkg: warning: subprocess old post-removal script returned error exit     status 123
dpkg: trying script from the new package instead ...
ls: cannot access '/etc/redmine/*/database.yml': No such file or directory
dirname: missing operand
Try 'dirname --help' for more information.
basename: missing operand
Try 'basename --help' for more information.
dpkg: error processing archive /var/cache/apt/archives    /redmine_3.2.1-2_all.deb (--unpack):
 subprocess new post-removal script returned error exit status 123
ls: cannot access '/etc/redmine/*/database.yml': No such file or directory
dirname: missing operand
Try 'dirname --help' for more information.
basename: missing operand
Try 'basename --help' for more information.
dpkg: error while cleaning up:
 subprocess new post-removal script returned error exit status 123
Errors were encountered while processing:
 /var/cache/apt/archives/redmine_3.2.1-2_all.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

O Redmine parece ter procedimento específico de reinstalação que eu tentei, mas falhou em a etapa em que você chama o Redmine porque ele não está instalado.

Eu tentei a solução em esta pergunta sobre metade do pacote instalado e ainda não trabalhando:

  

sudo dpkg --remove --force-remove-reinstreq redmine

dpkg: warning: overriding problem because --force enabled:
dpkg: warning: package is in a very bad inconsistent state; you should
 reinstall it before attempting a removal
(Reading database ... 409396 files and directories currently installed.)
Removing redmine (3.2.1-2) ...
ls: cannot access '/etc/redmine/*/database.yml': No such file or directory
dirname: missing operand
Try 'dirname --help' for more information.
basename: missing operand
Try 'basename --help' for more information.
dpkg: error processing package redmine (--remove):
 subprocess installed post-removal script returned error exit status 123
Errors were encountered while processing:
 redmine

Existe uma maneira de corrigir essa bagunça? Eu não me importo com o que está no banco de dados mysql ou sobre a configuração do redmine. Eu só quero começar do zero e poder usar o redmine novamente.

Editar: Eu resolvi o problema com:

  

sudo rm / var / lib / dpkg / info / redmine *

     

sudo dpkg --force-remove-reinstreq --remove redmine

 dpkg: warning: overriding problem because --force enabled:
 dpkg: warning: package is in a very bad inconsistent state; you should
  reinstall it before attempting a removal
 dpkg: warning: files list file for package 'redmine-sqlite' missing; assuming package has no files currently installed
 dpkg: warning: files list file for package 'redmine-mysql' missing; assuming package has no files currently installed
 (Reading database ... 409382 files and directories currently installed.)
 Removing redmine (3.2.1-2) ...

Depois de um "apt-get purge --auto-remove redmine" para limpar todos os pacotes relacionados, e para me livrar do arquivo de configuração, eu pude instalar o redmine novamente ... em teoria. Porque o Rake está falhando (por causa da configuração do banco de dados fantasma?).

rake aborted!
Cannot load 'Rails.application.database_configuration':
Could not load database configuration. No such file - ["/usr/share/redmine/instances/default/config/database.yml"]

Então eu ainda tenho o problema de remoção com o apt-get remove:

ls: cannot access '/etc/redmine/*/database.yml': No such file or directory
    
por Pierre.Sassoulas 20.09.2016 / 10:44

4 respostas

4

Estou executando o 16.04 LTS e tive o mesmo problema, mas continuei de uma maneira diferente.

Remover Redmine

Eu não removi os scripts dpkg , mas em vez disso, o que eu fiz foi abrir o script redmine.postrm e comentar as linhas que causaram a falha do script de pós-remoção, então meu arquivo ficou como:

$ cat /var/lib/dpkg/info/redmine.postrm
#!/bin/sh

set -e

. /usr/share/debconf/confmodule
if [ -f /usr/share/dbconfig-common/dpkg/postrm ]; then
  . /usr/share/dbconfig-common/dpkg/postrm

  # remove both current and old instances
# START OF THE COMMENTED SECTION TO AVOID CRASHES 
#  instances=$(ls -1 /etc/redmine/*/database.yml | xargs dirname | xargs -n 1 basename)
#  for inst in $instances; do
#    dbc_go redmine/instances/$inst "$@"
#  done
# END OF THE COMMENTED SECTION TO AVOID CRASHES
fi

if [ "" = purge ]; then
  rm -rf /var/log/redmine
  rm -rf /var/cache/redmine
  rm -rf /var/lib/redmine
  rm -rf /etc/redmine
fi

## Automatically added by dh_installdebconf
if [ "" = purge ] && [ -e /usr/share/debconf/confmodule ]; then
    . /usr/share/debconf/confmodule
    db_purge
fi
# End automatically added section
#

O que me permitiu simplesmente removê-lo com:

sudo apt-get remove redmine --purge

Ele perguntará se você deseja excluir o banco de dados redmine_default ; Eu respondi que sim, mas você deve escolher com cuidado.

Depois disso, você limpará toda a sua instalação sem avisos, então sua primeira pergunta será respondida.

(Para obter mais informações sobre o funcionamento de dpkg scripts, consulte: link )

Reinstale o Redmine

Agora, como instalar o redmine e colocá-lo em execução?

Começaremos fazendo

sudo apt-get update && sudo apt-get install redmine redmine-mysql

Provavelmente, ele irá falhar novamente dizendo algo como:

Configurando redmine (3.2.1-2) ...
Determining localhost credentials from /etc/mysql/debian.cnf: succeeded.
dbconfig-common: writing config to /etc/dbconfig-common/redmine/instances/default.conf
Not replacing deleted config file /etc/redmine/default/database.yml
granting access to database redmine_default for redmine/instance@localhost: already exists.
creating database redmine_default: already exists.
dbconfig-common: flushing administrative password
rake aborted!
Cannot load 'Rails.application.database_configuration':
Could not load database configuration. No such file - ["/usr/share/redmine/instances/default/config/database.yml"]
/usr/share/redmine/lib/plugins/acts_as_activity_provider/init.rb:2:in 'block in <top (required)>'
/usr/share/redmine/config/initializers/00-core_plugins.rb:12:in 'eval'
/usr/share/redmine/config/initializers/00-core_plugins.rb:12:in 'block in <top (required)>'
/usr/share/redmine/config/initializers/00-core_plugins.rb:2:in 'each'
/usr/share/redmine/config/initializers/00-core_plugins.rb:2:in '<top (required)>'
/usr/share/redmine/config/environment.rb:14:in '<top (required)>'
/var/lib/gems/2.3.0/gems/rake-11.3.0/exe/rake:27:in '<top (required)>'
/var/lib/gems/2.3.0/gems/bundler-1.13.1/lib/bundler/cli/exec.rb:74:in 'load'
/var/lib/gems/2.3.0/gems/bundler-1.13.1/lib/bundler/cli/exec.rb:74:in 'kernel_load'
/var/lib/gems/2.3.0/gems/bundler-1.13.1/lib/bundler/cli/exec.rb:27:in 'run'
/var/lib/gems/2.3.0/gems/bundler-1.13.1/lib/bundler/cli.rb:332:in 'exec'
/var/lib/gems/2.3.0/gems/bundler-1.13.1/lib/bundler/vendor/thor/lib/thor/command.rb:27:in 'run'
/var/lib/gems/2.3.0/gems/bundler-1.13.1/lib/bundler/vendor/thor/lib/thor/invocation.rb:126:in 'invoke_command'
/var/lib/gems/2.3.0/gems/bundler-1.13.1/lib/bundler/vendor/thor/lib/thor.rb:359:in 'dispatch'
/var/lib/gems/2.3.0/gems/bundler-1.13.1/lib/bundler/cli.rb:20:in 'dispatch'
/var/lib/gems/2.3.0/gems/bundler-1.13.1/lib/bundler/vendor/thor/lib/thor/base.rb:440:in 'start'
/var/lib/gems/2.3.0/gems/bundler-1.13.1/lib/bundler/cli.rb:11:in 'start'
/var/lib/gems/2.3.0/gems/bundler-1.13.1/exe/bundle:34:in 'block in <top (required)>'
/var/lib/gems/2.3.0/gems/bundler-1.13.1/lib/bundler/friendly_errors.rb:100:in 'with_friendly_errors'
/var/lib/gems/2.3.0/gems/bundler-1.13.1/exe/bundle:26:in '<top (required)>'

Recriar database.yml

Onde afirma claramente que

Could not load database configuration. No such file - ["/usr/share/redmine/instances/default/config/database.yml"]

Agora temos duas opções:

Crie um

Para a versão 3.2, você pode encontrar um exemplo aqui: link . Depois de pequenas alterações, podemos ter algo como:

cat /usr/share/redmine/instances/default/config/database.yml
# Setup is given for MySQL with ruby1.9.    
# Examples for PostgreSQL, SQLite3 and SQL Server can be found at the end.    
# Line indentation must be 2 spaces (no tabs).

production:    
  adapter: mysql2
  database: redmine_default
  host: localhost    
  username: root    
  password: "MySQLRootPassword"    
  encoding: utf8    
development:    
  adapter: mysql2    
  database: redmine_default
  host: localhost    
  username: root    
  password: ""
  encoding: utf8    
# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".    
# Do not set this db to the same as development or production.    
test:    
  adapter: mysql2    
  database: redmine_test    
  host: localhost    
  username: root    
  password: ""    
  encoding: utf8

Tenha cuidado, pois o banco de dados de produção TEM QUE SER redmine_default ou, pelo menos, é aquele que é criado após a instalação. Não verifiquei se funcionaria com outro valor.

Copie o que foi criado durante a instalação

Você pode movê-lo onde o script de configuração está tentando encontrá-lo:

sudo cp /usr/share/redmine/config/database.yml /usr/share/redmine/instances/default/config/database.yml

Agora que temos tudo o que você precisa, podemos concluir a instalação com:

sudo apt-get -f install 

Mais informações sobre como instalar o redmine no Ubuntu estão neste wiki em redmine.com .

    
por Manuel Alvarez 24.09.2016 / 19:00
2

Este é realmente um bug conhecido no Redmine 3.2.3-1: é uma discussão sobre este problema neste grupo do google .

Não deixe de criar '/etc/redmine/*/database.yml' durante a sua configuração. A criação posterior não parece resolver o problema.

    
por Pierre.Sassoulas 20.09.2016 / 12:12
1

Eu finalmente consegui após cerca de 8 horas, meu Redmine corre novamente. Obrigado ao Manuel e dezenas de outras perguntas e respostas do StackExchange.

Se a resposta aceita não funcionar bem para remover o pacote antigo e receber um erro informando que o pacote está em um estado realmente ruim ( dpkg: warning: package is in a very bad inconsistent state; you should reinstall it before attempting a removal ) e não pode ser removido com sudo apt-get remove redmine --purge conforme escrito por Manuel, faça o seguinte . Ainda atualize o script redmine.postrm como Manuel escreveu em sua resposta. Talvez funcione para você, mas não para mim. Baixe o pacote redmine manualmente em packages.ubuntu.com e execute sudo dpkg -i WHERE/THE/DOWNLOADED/PACKAGE/IS como sugerido por este comentário .

Solução que funcionou para mim

Se isso não funcionou, tente a próxima coisa que funcionou para mim como aqui : sudo dpkg --remove --force-remove-reinstreq redmine . Eu também fiz sudo dpkg --purge --force-remove-reinstreq redmine para remover os arquivos de configuração. E depois disso também sudo apt-get remove redmine e sudo apt-get autoremove && sudo apt-get autoclean

Se você receber mais um erro ao instalar o redmine com sudo apt-get install redmine redmine-mysql sobre

/usr/local/bin/bundle:23:in 'load': cannot load such file -- /usr/share/rubygems-integration/all/gems/bundler-1.11.2/exe/bundle (LoadError)
        from /usr/local/bin/bundle:23:in '<main>'

Em seguida, tente e veja se você tem o comando gem disponível (se não, não sei de onde vem, mas provavelmente o pacote ruby, então instale isso) e digite gem install bundler . Se você já teve, então bom. Ele será instalado no INSTALLATION DIRECTORY que você pode ver quando executar gem environment , no meu caso /var/lib/gems/2.3.0 . Eu não sei porque, mas eu ainda não tenho o bundler-1.11.2 no diretório que foi mencionado acima, mas seja lá o que for, continuou.

O próximo erro que recebi:

dbconfig-common: flushing administrative password
Could not find gem 'mysql2 (~> 0.4.0)' in any of the gem sources listed in your Gemfile or available on this machine.
Run 'bundle install' to install missing gems.

Instalar msyql2 gem

Antes de instalar com gem install mysql2 , tive que instalar o sudo apt-get install libmysqlclient-dev (se isso não funcionar, remova o pacote redmine novamente primeiro, como mostrado acima, tive que fazer isso). Isso deve ser instalado automaticamente com o pacote redmine , mas sim…

Se você receber um erro como

Fetching: mysql2-0.4.4.gem (100%)
Building native extensions.  This could take a while...
ERROR:  Error installing mysql2:
        ERROR: Failed to build gem native extension.̀

E tenha algo no arquivo de registro de erros fornecido, como gcc: error: unrecognized command line option , em seguida, execute sudo apt-get install gcc make . Tente novamente com gem install mysql2̀ .

Continue com a instalação

Depois disso, continue com a resposta de Manuel. E se você receber um erro quando você criou o arquivo database.yml (eu não tive um criado durante a instalação btw e não poderia copiá-lo, tive que copiar o exemplo de Manuel, então não se preocupe) e continuou com a instalação e obter algo assim

[!] There was an error parsing 'Gemfile': undefined method 'values' for "Setup is given for MySQL with ruby1.9.":String. Bundler cannot continue.
 #  from /usr/share/redmine/Gemfile:67
 #  -------------------------------------------
 #    database_config = YAML::load(ERB.new(IO.read(database_file)).result)
 >    adapters = database_config.values.map {|c| c['adapter']}.compact.uniq
 #    if adapters.any?
 #  -------------------------------------------

Então não se preocupe, você era muito estúpido para copiar o arquivo database.yml corretamente como eu estava: D No meu caso, esqueci o sinal de comentário inicial # . Se você tiver outros problemas, verifique o arquivo database.yml com o link para ver os erros. Talvez, se você tiver uma senha que contenha um @ , tenha que escapar desse caractere (não sabe como) porque é um caractere yaml reservado.

    
por bugybunny 28.09.2016 / 19:29
0

Tente isto:

Encontre e comente a linha de remoção neste arquivo: /var/lib/dpkg/info/redmine.postinst

Veja assim:

#rm -f /var/lib/redmine/Gemfile.lock

Crie um link simbólico para /var/lib/redmine/Gemfile.lock em / usr / share / redmine

Tente atualizar; -)

    
por MCurbelo 09.03.2018 / 22:18