[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Plantage X nvidia plus d'acceleration



Alors,

1) J'ai peut-etre des reste d'un .run mais la aussi, je ne sais pas les virer s'ils existent...

2) voila le contenu du fichier

#!/bin/sh
set -e


# A trigger that handles the alternatives for /usr/lib/libGL.so and
# /usr/lib/libGL.so.1.
if [ "$1" = "triggered" ]; then

	if [ -L /usr/lib/nvidia/diversions/libGL.so.1 ]; then
update-alternatives --install /usr/lib/libGL.so.1 libGL.so.1 /usr/lib/nvidia/diversions/libGL.so.1 5
	else
update-alternatives --remove libGL.so.1 /usr/lib/nvidia/diversions/libGL.so.1
	fi

	if [ -L /usr/lib/nvidia/diversions/libGL.so ]; then
		# libgl-mesa-dev was installed, create libGL.so
update-alternatives --install /usr/lib/libGL.so libGL.so /usr/lib/nvidia/diversions/libGL.so 9995
	else
		# libgl-mesa-dev was removed, drop libGL.so
		update-alternatives --remove libGL.so /usr/lib/nvidia/diversions/libGL.so
	fi

fi


#DIVERT_QUIET="--quiet"

# <target: squeeze>
exists()
{
	test -e "$1" || test -L "$1"
}

if [ "$1" = "configure" ]
then

	# dpkg-reconfigure does not set DPKG_MAINTSCRIPT_PACKAGE (#560317)
	if [ -z "$DPKG_MAINTSCRIPT_PACKAGE" ]
	then
echo "ERROR: DPKG_MAINTSCRIPT_PACKAGE is not set, usually a bug in dpkg-reconfigure"
		exit 1
	fi

	# <target: squeeze>
	# remove libGL.so created by obsolete nvidia-glx* init script
	# otherwise we dpkg-divert --rename an unowned file
	if [ -L /usr/lib/libGL.so ] && \
		[ "$(readlink /usr/lib/libGL.so)" != "/etc/alternatives/libGL.so" ] && \
		[ "$(readlink /usr/lib/libGL.so)" != "libGL.so.1" ]
	then
		echo "Removing /usr/lib/libGL.so symlink from unknown origin."
		rm -f /usr/lib/libGL.so
	fi
	# </target: squeeze>

	# <target: squeeze>
	# take over diversions from nvidia-glx{,-legacy-*xx}
	for file in libGL.so.1.2 libGL.so.1 libGL.so
	do
		file_orig="/usr/lib/$file"
		file_old_divert="/usr/lib/nvidia/$file.xlibmesa"
		file_new_divert="/usr/lib/nvidia/diversions/$file"
		old_diverter="`dpkg-divert --listpackage $file_orig`"

		if [ -n "$old_diverter" ] \
			&& [ "$old_diverter" != "$DPKG_MAINTSCRIPT_PACKAGE" ]
		then
			if ! exists "$file_orig" || ! exists "$file_old_divert"
			then
				dpkg-divert --remove --rename --package $old_diverter --divert \
					"$file_old_divert" \
					"$file_orig"
			else
				dpkg-divert --remove --package $old_diverter --divert \
					"$file_old_divert" \
					"$file_orig"
				echo "Moving $file_old_divert to $file_new_divert"
				mv "$file_old_divert" "$file_new_divert"
				dpkg-divert --add --package $DPKG_MAINTSCRIPT_PACKAGE --divert \
					"$file_new_divert" \
					"$file_orig"
			fi
		fi
		if exists "$file_old_divert"
		then
			echo "ERROR: $file_old_divert does still exist. Aborting."
			exit 1
		fi
	done
	# </target: squeeze>

fi
# </target: squeeze>


if [ "$1" = "configure" ]
then

	# <target: squeeze>
	# The old nvidia-glx postrm would delete /usr/lib/nvidia/diversions
	# out from under us, so create it if it doesn't exist.
	test -d /usr/lib/nvidia/diversions || \
		mkdir -p /usr/lib/nvidia/diversions
	# </target: squeeze>

	# make new diversions
dpkg-divert $DIVERT_QUIET --add --rename --package $DPKG_MAINTSCRIPT_PACKAGE --divert \
		/usr/lib/nvidia/diversions/libGL.so \
		/usr/lib/libGL.so
dpkg-divert $DIVERT_QUIET --add --rename --package $DPKG_MAINTSCRIPT_PACKAGE --divert \
		/usr/lib/nvidia/diversions/libGL.so.1 \
		/usr/lib/libGL.so.1
dpkg-divert $DIVERT_QUIET --add --rename --package $DPKG_MAINTSCRIPT_PACKAGE --divert \
		/usr/lib/nvidia/diversions/libGL.so.1.2 \
		/usr/lib/libGL.so.1.2

fi


# <target: squeeze>
if [ "$1" = "configure" ]
then

	# <target: squeeze>
	# do some validation of the diverted libGL.so

	# check ownership of the original libGL.so
libGLso="$(dpkg-query -S /usr/lib/libGL.so 2>/dev/null | grep -v '^diversion by' || true)"

	if [ -L /usr/lib/nvidia/diversions/libGL.so ] && \
		[ -z "$libGLso" ]
	then
		echo "Removing diverted libGL.so symlink owned by no package."
		rm /usr/lib/nvidia/diversions/libGL.so
	fi

	if [ -L /usr/lib/nvidia/diversions/libGL.so ] && \
		[ "`readlink /usr/lib/nvidia/diversions/libGL.so`" != "libGL.so.1" ]
	then
		echo "Removing diverted libGL.so symlink with unexpected target."
		rm /usr/lib/nvidia/diversions/libGL.so
	fi

	if [ ! -L /usr/lib/nvidia/diversions/libGL.so ] && \
		[ -n "$libGLso" ]
	then
		echo "Restoring diverted libGL.so symlink."
		ln -s libGL.so.1 /usr/lib/nvidia/diversions/libGL.so
	fi
	# </target: squeeze>

	# <target: squeeze>
	# do some validation of the diverted libGL.so.1

	# check ownership of the original libGL.so.1
libGLso1="$(dpkg-query -S /usr/lib/libGL.so.1 2>/dev/null | grep -v '^diversion by' || true)"

	if [ -L /usr/lib/nvidia/diversions/libGL.so.1 ] && \
		[ -z "$libGLso1" ]
	then
		echo "Removing diverted libGL.so.1 symlink owned by no package."
		rm /usr/lib/nvidia/diversions/libGL.so.1
	fi

	if [ -L /usr/lib/nvidia/diversions/libGL.so.1 ] && \
		[ "`readlink /usr/lib/nvidia/diversions/libGL.so.1`" != "libGL.so.1.2" ]
	then
		echo "Removing diverted libGL.so.1 symlink with unexpected target."
		rm /usr/lib/nvidia/diversions/libGL.so.1
	fi

	if [ ! -L /usr/lib/nvidia/diversions/libGL.so.1 ] && \
		[ -n "$libGLso1" ]
	then
		echo "Restoring diverted libGL.so.1 symlink."
		ln -s libGL.so.1.2 /usr/lib/nvidia/diversions/libGL.so.1
	fi
	# </target: squeeze>
fi
# </target: squeeze>
if [ "$1" = "configure" ]; then

	# activate our trigger
	dpkg-trigger /usr/lib/libGL.so.1
	dpkg-trigger /usr/lib/libGL.so

fi
exit 0


Jmarc


L'erreur initiale provient du script de post installation de
libgl1-nvidia-alternatives (d'après le message d'erreur que tu obtiens :
"E: libgl1-nvidia-alternatives: le sous-processus
script post-installation installé a retourné une
erreur de sortie d'état 2").

Tu peux essayer de lire ce script et voir ce qui peut clocher, ou de
manière "musclée" le mettre de côté, purger les paquets relatifs à
nvidia, et réinstaller seulement le nécessaire.
Le script qui t'intéresse est

/var/lib/dpkg/info/libgl1-nvidia-alternatives.postinst


Tu n'aurais pas des restes d'une installation du pilote NVidia via le
".run" fourni sur leur site ?



Reply to: