web-dev-qa-db-fra.com

Redmine 3.2.3-1 est à moitié installé. Ne peut être ni réinstallé ni supprimé

Lorsque j'ai installé Redmine, j'ai eu un problème au milieu de la configuration de la base de données. Je pense que je me suis retrouvé au milieu parce que j'ai essayé de passer à Mysql après avoir démarré avec sqlite3. Depuis lors, je ne peux pas le supprimer, l'installer, le configurer ou le réinstaller. L'autre question sur la réparation du paquet à moitié installé renvoie une erreur 123.

Sudo apt-get installe 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 supprimer 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 --installe 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)

Redmine semble avoir procédure de réinstallation spécifique que j'ai essayée, mais il échoue à l'étape où vous appelez Redmine car il n'est pas installé.

J'ai essayé la solution dans cette question à propos du paquet à moitié installé et ça ne fonctionne toujours pas:

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

Y a-t-il un moyen de réparer ce gâchis? Je me fiche de ce qu'il y a dans la base de données mysql ou de la configuration de redmine. Je veux juste partir de zéro et pouvoir utiliser Redmine à nouveau.

Edit: Je pense avoir résolu le problème avec:

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

Sudo dpkg --force-remove-reinstreq --élimine la mine rouge

 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) ...

Après un "apt-get purge --auto-remove redmine" pour nettoyer tous les paquets associés et pour supprimer le fichier de configuration, j'ai pu installer Redmine à nouveau ... en théorie. Parce que Rake échoue maintenant (à cause de la configuration de la base de données fantôme?).

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

Ensuite, j'ai toujours le problème de suppression avec apt-get remove:

ls: cannot access '/etc/redmine/*/database.yml': No such file or directory
5
Pierre.Sassoulas

Je suis 16.04 LTS et j'ai eu exactement le même problème, mais j'ai procédé d'une manière différente.

Supprimer Redmine

Je n'ai pas supprimé les scripts dpkg, mais au lieu de cela, j'ai ouvert le script redmine.postrm et commenté les lignes à l'origine du blocage du script de post-suppression. Mon fichier a donc été laissé de la manière suivante:

$ 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 [ "$1" = 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 [ "$1" = purge ] && [ -e /usr/share/debconf/confmodule ]; then
    . /usr/share/debconf/confmodule
    db_purge
fi
# End automatically added section
#

Ce qui m'a permis de l'enlever simplement avec:

Sudo apt-get remove redmine --purge

Il vous demandera si vous souhaitez supprimer la base de données redmine_default; J'ai répondu oui, mais tu devrais choisir avec soin.

Après cela, toute votre installation sera purgée sans aucun avertissement, votre première question aura donc une réponse.

(Pour plus d'informations sur le fonctionnement des scripts dpkg, veuillez consulter: https://www.debian.org/doc/debian-policy/ch-maintainerscripts.html )

Réinstaller Redmine

Maintenant, comment installer Redmine et le faire fonctionner?

Nous allons commencer par faire

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

Probablement il va planter à nouveau en disant quelque chose comme:

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)>'

Recréer database.yml

Où il est clairement indiqué qu'il

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

Maintenant nous avons 2 options:

Créer une

Pour la version 3.2, vous trouverez un exemple ici: http://www.redmine.org/projects/redmine/repository/entry/branches/3.2-stable/config/database.yml.example . Après des changements mineurs, nous pouvons avoir quelque chose comme:

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

Faites attention car la base de données de production DOIT ÊTRE redmine_default ou du moins est celle qui est laissée créée après l'installation. Je n'ai pas vérifié si cela fonctionnerait avec une autre valeur.

Copier celui créé lors de l'installation

Vous pouvez le déplacer là où le script de configuration tente de le trouver:

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

Maintenant que nous avons tout ce dont vous avez besoin, nous pouvons terminer l’installation avec:

Sudo apt-get -f install 

Informations supplémentaires sur l'installation de Redmine sur Ubuntu sur ce wiki, dans redmine.com .

4
Manuel Alvarez

Il s’agit en fait d’un bogue connu dans Redmine 3.2.3-1: Il existe une discussion à propos de ce problème dans ce groupe Google .

Ne manquez pas de créer '/etc/redmine/*/database.yml' lors de votre configuration. La création ultérieure ne semble pas résoudre le problème non plus.

2
Pierre.Sassoulas

Je l’ai finalement fait au bout de 8 heures environ, ma Redmine s’exécute à nouveau. Merci à Manuel et à des dizaines d'autres questions et réponses sur StackExchange.

Si la réponse acceptée ne fonctionne pas correctement pour supprimer l'ancien package et obtenir une erreur indiquant qu'il est dans un état vraiment déplorable (dpkg: warning: package is in a very bad inconsistent state; you should reinstall it before attempting a removal) et qu'il ne peut pas être supprimé avec Sudo apt-get remove redmine --purge écrit par Manuel, effectuez la procédure suivante: Suivant. Mettez toujours à jour le script redmine.postrm comme l’a écrit Manuel dans sa réponse. Peut-être que ça marche pour vous mais ça ne l’a pas été pour moi. Téléchargez le package redmine manuellement sur packages.ubuntu.com et exécutez Sudo dpkg -i WHERE/THE/DOWNLOADED/PACKAGE/IS comme suggéré par ce commentaire .

Solution qui a fonctionné pour moi

Si cela ne fonctionne pas, essayez la chose suivante qui a fonctionné pour moi comme trouvé ici : Sudo dpkg --remove --force-remove-reinstreq redmine. J'ai également utilisé Sudo dpkg --purge --force-remove-reinstreq redmine pour supprimer les fichiers de configuration. Et après cela aussi Sudo apt-get remove redmine et Sudo apt-get autoremove && Sudo apt-get autoclean

Si vous obtenez une autre erreur lors de l’installation de Redmine avec Sudo apt-get install redmine redmine-mysql à propos de

/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>'

Ensuite, essayez de voir si vous avez la commande gem disponible (sinon, ne savez pas d'où elle vient, mais probablement le paquetage Ruby, donc installez-le) et tapez gem install bundler . Si vous l'avez déjà eu alors bon. Il sera installé sur le INSTALLATION DIRECTORY que vous pouvez voir lorsque vous exécutez gem environment, dans mon cas /var/lib/gems/2.3.0. Je ne sais pas pourquoi mais je n’ai toujours pas eu le bundler-1.11.2 dans le répertoire mentionné ci-dessus, mais peu importe, il a continué.

La prochaine erreur que j'ai eu:

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.

Installer msyql2 gem

Avant de pouvoir installer avec gem install mysql2, je devais installer Sudo apt-get install libmysqlclient-dev (si cela ne fonctionne pas, supprimez à nouveau le paquet redmine comme indiqué ci-dessus, je devais le faire). Cela devrait être installé automatiquement avec le package redmine mais oui…

Si vous obtenez une erreur comme

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.̀

Et avoir quelque chose dans le fichier journal des erreurs donné comme gcc: error: unrecognized command line option puis exécutez Sudo apt-get install gcc make. Essayez à nouveau avec gem install mysql2̀.

Continuer l'installation

Après cela, continuez avec la réponse de Manuel. Et si vous obtenez une erreur lors de la création du fichier database.yml (je n’en ai pas créé pendant l’installation et je ne pouvais pas le copier, je devais copier l’exemple de Manuel, alors ne vous inquiétez pas) et je poursuivais l’installation pour obtenir quelque chose. comme ça

[!] 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?
 #  -------------------------------------------

Alors ne vous inquiétez pas, vous étiez trop stupide pour copier correctement le fichier database.yml comme je l’étais: D Dans mon cas, j’ai oublié le signe de commentaire de début #. Si vous rencontrez peut-être d'autres problèmes, vérifiez votre fichier database.yml avec http://www.yamllint.com/ pour rechercher les erreurs. Peut-être que si vous avez un mot de passe contenant un @, vous devez échapper à ce caractère (vous ne savez pas comment) car il s'agit d'un caractère réservé yaml.

1
bugybunny

Essaye ça:

Recherchez et commentez la ligne de suppression sur ce fichier: /var/lib/dpkg/info/redmine.postinst

Ressemble à ca:

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

Créez un lien symbolique vers /var/lib/redmine/Gemfile.lock sur/usr/share/redmine

Essayez la mise à niveau ;-)

0
MCurbelo