2 votes

Comment résoudre le problème dpkg : error (--configure)

Cette erreur se produit donc lors de l'installation du logiciel Prey Anti-theft :

Installing init scripts.
dpkg: error processing package prey (--configure):
 subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
 prey

Vous pouvez utiliser ce lien pour comprendre le message d'erreur.

Donc ce message d'erreur nous indique qu'il y a une erreur avec le script de post-installation...ce qui ne nous aide pas beaucoup.

Quelqu'un a-t-il déjà rencontré un tel problème et sait-il comment y remédier ? (Des questions similaires ont été postées sur le forum à l'adresse suivante https://help.preyproject.com/topics mais sans aucune réponse utile)

-- Editer --

C'est le prey.postinst script :

    #!/bin/bash -x
####################################################################
# Prey Debian Postinst Script
# Written by Tomás Pollak <tomas@forkhq.com> - (c) 2011 Fork Ltd.
# License: GPLv3
####################################################################

set -e

VERSION='1.3.8'
BASE_PATH="/usr/lib/prey"
INSTALL_PATH="${BASE_PATH}/versions/${VERSION}"
PREY_BIN="bin/prey"
PREY_USER="prey"
TEMP_OLD_CONFIG="/tmp/prey-config.old"

get_current_user() {
  export PS_FORMAT=user:16,command
  ps ax | grep ssh-agent | grep -v grep | cut -d' ' -f1 | head -1
}

case "$1" in
  configure)

    if [ -d /usr/share/prey ]; then
      echo "Previous installation found. Removing..."

      if [ -f /usr/share/prey/config.backup ]; then
        cp /usr/share/prey/config.backup "$TEMP_OLD_CONFIG"
      else
        cp /usr/share/prey/config "$TEMP_OLD_CONFIG" || true
      fi

      if [ -f "$TEMP_OLD_CONFIG" ]; then
        chmod 666 "$TEMP_OLD_CONFIG"
      fi

      # remove from root crontab
      (crontab -l 2> /dev/null | grep -v prey || true) | crontab -

      # remove from prey crontab, if present
      if test "$(id ${PREY_USER} 2> /dev/null)"; then
        (crontab -u $PREY_USER -l 2> /dev/null | grep -v prey || true) | crontab -u $PREY_USER -
      fi

      # wipe out old folder
      rm -Rf /usr/share/prey
    fi

    cd "$INSTALL_PATH"

    # as root, set up init script and activate current installation
    "$PREY_BIN" config hooks post_install

    # check if API_KEY env var was passed
    if [ -n "$API_KEY" ]; then 

      echo "API Key detected! Verifying..."
      "$PREY_BIN" config account authorize -a "$API_KEY"

    else # no API key, so let's show up the GUI

      # before firing gui, allow prey user to access current X screen
      if [ -n "$(which xhost)" ]; then
        CURRENT_USER=$(get_current_user)
        if [ -n "$CURRENT_USER" ]; then
          su $CURRENT_USER -c "DISPLAY=:0.0 xhost +si:localuser:${PREY_USER}" || true
        fi
      fi

      # run config gui as prey user, previously checking for old config keys
      DISPLAY=:0.0 su $PREY_USER -c "$PREY_BIN config gui --check-file $TEMP_OLD_CONFIG"

    fi

    rm -f "$TEMP_OLD_CONFIG"
  ;;

  abort-upgrade|abort-remove|abort-deconfigure)
  ;;

  *)
    echo "postinst called with unknown argument \`$1'" >&2
    exit 1
  ;;

esac

exit 0

4voto

MichaelDeSanta Points 61

J'ai regardé dans le prey.postinst script, qui se trouve dans /var/lib/dpkg/info, et qui a utilisé set -x pour localiser l'erreur. Il semblait y avoir un problème avec la ligne 72 :

DISPLAY=:0.0 su $PREY_USER -c "$PREY_BIN config gui --check-file $TEMP_OLD_CONFIG"

Après avoir commenté cette ligne, j'ai pu terminer l'installation (sudo apt-get install -f).

J'ai également supprimé le prey-config-XXXXXXXXXXXXXXX.log les fichiers qui étaient situés dans mon dossier /temp/ (si disponible)

-- EDIT --

Donc, avec l'aide de the_Seppi, j'ai modifié la ligne comme suit :

env DISPLAY=:0.0 gksu $PREY_USER "$PREY_BIN config gui --check-file $TEMP_OLD_CONFIG"

L'installation peut ensuite être terminée en utilisant sudo dpkg --configure -a

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X