Desde que eu instalei Firefox Quantum e Firefox ESR 52 ambos ( Kubuntu Trusty / KDE 4.13.3 ) isso acontece toda vez que qualquer externo O link da web é aberto duas vezes no meu navegador padrão. Então presumo que isso seja um problema do sistema e não um problema do Firefox.
As únicas coisas que alterei manualmente é que adicionei scripts executáveis pessoais em " / usr / bin / " e " ~ / bin / " e alterei o navegador padrão para não me misturar com as duas instalações do firefox.
Então " / usr / bin / " contém " firefox-esr " e " firefox.real " (para Quantum), ambos são simplesmente links para os arquivos iniciais das pastas do programa em " / usr / lib / ". Além disso, contém um script " firefox " que pode ser o meu problema, mas não consigo ver.
Aqui está o script " / usr / bin / firefox ":
#!/bin/sh
FIREFOX="$(which firefox)"
[ -x "$FIREFOX.real" ] && exec "$FIREFOX.real" "$@"
exec firefox-esr "$@"
→ que relata "~ / bin / firefox" e "firefox.real" existe nos diretórios "/ usr / bin /" e "~ / bin /" como links para um script ( veja abaixo ).
Aqui está o script " /usr/bin/firefox.real ":
#!/bin/sh
set -e
MOZ_LIBDIR=/usr/lib/firefox
MOZ_APP_LAUNCHER='which $0'
MOZ_APP_NAME=firefox
export MOZ_APP_LAUNCHER
while [ ! -x $MOZ_LIBDIR/$MOZ_APP_NAME ] ; do
if [ -L "$MOZ_APP_LAUNCHER" ] ; then
MOZ_APP_LAUNCHER='readlink -f $MOZ_APP_LAUNCHER'
MOZ_LIBDIR='dirname $MOZ_APP_LAUNCHER'
else
echo "Can't find $MOZ_LIBDIR/$MOZ_APP_NAME"
exit 1
fi
done
usage () {
$MOZ_LIBDIR/$MOZ_APP_NAME -h | sed -e 's,/.*/,,'
echo
echo " -g or --debug Start within debugger"
echo " -d or --debugger Specify debugger to start with (eg, gdb or valgrind)"
echo " -a or --debugger-args Specify arguments for debugger"
}
moz_debug=0
moz_debugger_args=""
moz_debugger="gdb"
while [ $# -gt 0 ]; do
case "$1" in
-h | --help )
usage
exit 0
;;
-g | --debug )
moz_debug=1
shift
;;
-d | --debugger)
moz_debugger=$2;
if [ "${moz_debugger}" != "" ]; then
shift 2
else
echo "-d requires an argument"
exit 1
fi
;;
-a | --debugger-args )
moz_debugger_args=$2;
if [ "${moz_debugger_args}" != "" ] ; then
shift 2
else
echo "-a requires an argument"
exit 1
fi
;;
-- ) # Stop option processing
shift
break
;;
* )
break
;;
esac
done
if [ $moz_debug -eq 1 ] ; then
case $moz_debugger in
memcheck)
debugger="valgrind"
;;
*)
debugger=$moz_debugger
;;
esac
debugger='which $debugger'
if [ ! -x $debugger ] ; then
echo "Invalid debugger"
exit 1
fi
case 'basename $moz_debugger' in
gdb)
exec $debugger $moz_debugger_args --args $MOZ_LIBDIR/$MOZ_APP_NAME "$@"
;;
memcheck)
echo "$MOZ_APP_NAME has not been compiled with valgrind support"
exit 1
;;
*)
exec $debugger $moz_debugger_args $MOZ_LIBDIR/$MOZ_APP_NAME "$@"
;;
esac
else
exec $MOZ_LIBDIR/$MOZ_APP_NAME "$@"
fi
Além desses, eu queria adicionar meus executáveis de substituição pessoal em " ~ / bin / ". Aqui eu revincei " firefox " e " firefox.real " para " ./ firefox-quantum ", o que me permite executar isso com um perfil separado - " ~ / bin / firefox-quantum ":
#!/bin/bash
/usr/bin/firefox.real -no-remote -P "########.default-quantum" "$@"
De acordo com isso, fiz o mesmo com " ~ / bin / firefox-esr ", que é o meu navegador padrão (para o perfil padrão):
#!/bin/bash
/usr/bin/firefox-esr "$@"
O comando navegador padrão agora é:
firefox-esr -new-tab %u
Por que os links externos da Web são abertos duas vezes? Não consigo encontrar o problema.
A causa pode ser o script " / usr / bin / firefox "? Não deve iniciar o firefox duas vezes porque existe uma causa " firefox.real " e por isso deve começar " firefox.real " AND " firefox-esr "? Ou eu não entendi o comando exec ?