[Вырашана] GNU IceCat: не магу выканаць скрыпт запуску…

Форум предназначен для новичков. В нем предполагается рассматривать вопросы, которые встают на первых этапах освоения Linux
dg333
Неотъемлемая часть форума
Сообщения: 296
Зарегистрирован: 10 май 2006, 09:46
Откуда: Менск

[Вырашана] GNU IceCat: не магу выканаць скрыпт запуску…

Сообщение dg333 »

Я карыстаюся браўзэрам GNU IceCat (http://www.gnu.org/software/gnuzilla/). Для запуску праграмы трэба выканаць скрыпт run-icecat.sh з наступным зьместам:

Код: Выделить всё

#!/bin/sh
#
# ***** BEGIN LICENSE BLOCK *****
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
#
# The contents of this file are subject to the Mozilla Public License Version
# 1.1 (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
# http://www.mozilla.org/MPL/
#
# Software distributed under the License is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
# for the specific language governing rights and limitations under the
# License.
#
# The Original Code is mozilla.org code.
#
# The Initial Developer of the Original Code is
# Netscape Communications Corporation.
# Portions created by the Initial Developer are Copyright (C) 1998
# the Initial Developer. All Rights Reserved.
#
# Contributor(s):
#
# Alternatively, the contents of this file may be used under the terms of
# either of the GNU General Public License Version 2 or later (the "GPL"),
# or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
# in which case the provisions of the GPL or the LGPL are applicable instead
# of those above. If you wish to allow use of your version of this file only
# under the terms of either the GPL or the LGPL, and not to allow others to
# use your version of this file under the terms of the MPL, indicate your
# decision by deleting the provisions above and replace them with the notice
# and other provisions required by the GPL or the LGPL. If you do not delete
# the provisions above, a recipient may use your version of this file under
# the terms of any one of the MPL, the GPL or the LGPL.
#
# ***** END LICENSE BLOCK *****
cmdname=`basename "$0"`
MOZ_DIST_BIN=`dirname "$0"`
MOZ_DEFAULT_NAME="./${cmdname}-bin"
MOZ_APPRUNNER_NAME="./icecat-bin"
MOZ_VIEWER_NAME="./viewer"
MOZ_PROGRAM=""

exitcode=0
#
##
## Functions
##
##########################################################################
moz_usage()
{
echo "Usage:  ${cmdname} [options] [program]"
echo ""
echo "  options:"
echo ""
echo "    -g                   Run in debugger."
echo "    --debug"
echo ""
echo "    -d debugger          Debugger to use."
echo "    --debugger debugger"
echo ""
echo "  Examples:"
echo ""
echo "  Run the viewer"
echo ""
echo "    ${cmdname} viewer"
echo ""
echo "  Run the mozilla-bin binary"
echo ""
echo "    ${cmdname} mozilla-bin"
echo ""
echo "  Debug the viewer in a debugger"
echo ""
echo "    ${cmdname} -g viewer"
echo ""
echo "  Debug the mozilla-bin binary in gdb"
echo ""
echo "    ${cmdname} -g mozilla-bin -d gdb"
echo ""
   return 0
}
##########################################################################
moz_bail()
{
   message=$1
   echo
   echo "$cmdname: $message"
   echo
   exit 1
}
##########################################################################
moz_test_binary()
{
   binary=$1
   if [ -f "$binary" ]
   then
      if [ -x "$binary" ]
      then
         return 1
      fi
   fi
   return 0
}
##########################################################################
moz_get_debugger()
{
   debuggers="ddd gdb dbx bdb"
   debugger="notfound"
   done="no"
   for d in $debuggers
   do
      moz_test_binary /bin/type
      if [ $? -eq 1 ]
      then
         dpath=`type ${d} | awk '{print $3;}' | sed -e 's/\.$//'`   
      else    
         dpath=`which ${d}`   
      fi
      if [ -x "$dpath" ]
      then
         debugger=$dpath
         break
      fi
   done
   echo $debugger
   return 0
}
##########################################################################
moz_run_program()
{
   prog=$MOZ_PROGRAM
   ##
   ## Make sure the program is executable
   ##
   if [ ! -x "$prog" ]
   then
      moz_bail "Cannot execute $prog."
   fi
   ##
   ## Use md5sum to crc a core file.  If md5sum is not found on the system,
   ## then dont debug core files.
   ##
   moz_test_binary /bin/type
   if [ $? -eq 1 ]
   then
      crc_prog=`type md5sum 2>/dev/null | awk '{print $3;}' 2>/dev/null | sed -e 's/\.$//'`
   else
      crc_prog=`which md5sum 2>/dev/null`
   fi
   if [ -x "$crc_prog" ]
   then
      DEBUG_CORE_FILES=1
   fi
   if [ "$DEBUG_CORE_FILES" ]
   then
      crc_old=
      if [ -f core ]
      then
         crc_old=`$crc_prog core | awk '{print $1;}' `
      fi
   fi
   ##
   ## Run the program
   ##
   "$prog" ${1+"$@"}
   exitcode=$?
   if [ "$DEBUG_CORE_FILES" ]
   then
      if [ -f core ]
      then
         crc_new=`$crc_prog core | awk '{print $1;}' `
      fi
   fi
   if [ "$crc_old" != "$crc_new" ]
   then
      printf "\n\nOh no!  %s just dumped a core file.\n\n" $prog
      printf "Do you want to debug this ? "
      printf "You need a lot of memory for this, so watch out ? [y/n] "
      read ans
      if [ "$ans" = "y" ]
      then
         debugger=`moz_get_debugger`
         if [ -x "$debugger" ]
         then
            echo "$debugger $prog core"

            # See http://www.mozilla.org/unix/debugging-faq.html
            # For why LD_BIND_NOW is needed
            LD_BIND_NOW=1; export LD_BIND_NOW

            $debugger "$prog" core
         else
            echo "Could not find a debugger on your system."
         fi
      fi
   fi
}
##########################################################################
moz_debug_program()
{
   prog=$MOZ_PROGRAM
   ##
   ## Make sure the program is executable
   ##
   if [ ! -x "$prog" ]
   then
      moz_bail "Cannot execute $prog."
   fi
   if [ -n "$moz_debugger" ]
   then
      moz_test_binary /bin/type
      if [ $? -eq 1 ]
      then   
         debugger=`type $moz_debugger | awk '{print $3;}' | sed -e 's/\.$//'`
      else
         debugger=`which $moz_debugger`
      fi   
   else
      debugger=`moz_get_debugger`
   fi
    if [ -x "$debugger" ]
    then
       tmpfile=`mktemp /tmp/mozargs.XXXXXX` || { echo "Cannot create temporary file" >&2; exit 1; }
   trap " [ -f \"$tmpfile\" ] && /bin/rm -f -- \"$tmpfile\"" 0 1 2 3 13 15
        echo "set args ${1+"$@"}" > $tmpfile
# If you are not using ddd, gdb and know of a way to convey the arguments
# over to the prog then add that here- Gagan Saksena 03/15/00
        case `basename $debugger` in
            gdb) echo "$debugger $prog -x $tmpfile"
                $debugger "$prog" -x $tmpfile
      exitcode=$?
                ;;
            ddd) echo "$debugger --debugger \"gdb -x $tmpfile\" $prog"
                $debugger --debugger "gdb -x $tmpfile" "$prog"
      exitcode=$?
                ;;
            *) echo "$debugger $prog ${1+"$@"}"
                $debugger "$prog" ${1+"$@"}
      exitcode=$?
                ;;
        esac
    else
        echo "Could not find a debugger on your system."
    fi
}
##########################################################################
##
## Command line arg defaults
##
moz_debug=0
moz_debugger=""
#
##
## Parse the command line
##
while [ $# -gt 0 ]
do
  case $1 in
    -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
      ;;
    *)
      break;
      ;;
  esac
done
#
##
## Program name given in $1
##
if [ $# -gt 0 ]
then
   MOZ_PROGRAM=$1
   shift
fi
##
## Program not given, try to guess a default
##
if [ -z "$MOZ_PROGRAM" ]
then
   ##
   ## Try this script's name with '-bin' appended
   ##
   if [ -x "$MOZ_DEFAULT_NAME" ]
   then
      MOZ_PROGRAM=$MOZ_DEFAULT_NAME
   ## Try viewer (this should be deprecated)
   ##
   elif [ -x "$MOZ_VIEWER_NAME" ]
   then
      MOZ_PROGRAM=$MOZ_VIEWER_NAME
   ##
   ## Try mozilla-bin
   ##
   elif [ -x "$MOZ_APPRUNNER_NAME" ]
   then
      MOZ_PROGRAM=$MOZ_APPRUNNER_NAME
   fi
fi
#
#
##
## Make sure the program is executable
##
if [ ! -x "$MOZ_PROGRAM" ]
then
   moz_bail "Cannot execute $MOZ_PROGRAM."
fi
#
##
## Set MOZILLA_FIVE_HOME
##
MOZILLA_FIVE_HOME=$MOZ_DIST_BIN

if [ -z "$MRE_HOME" ]; then
    MRE_HOME=$MOZILLA_FIVE_HOME
fi

if [ -e ~/.gnuzilla/ ]; then
    LD_PLUGINS=`find ~/.gnuzilla/ -type d -iname libraries | tr '\n' ':'`~/.gnuzilla/plugins
fi

##
## Set LD_LIBRARY_PATH
LD_LIBRARY_PATH=${MOZ_DIST_BIN}:${MOZ_DIST_BIN}/plugins:${MRE_HOME}${LD_LIBRARY_PATH+":$LD_LIBRARY_PATH"}:${LD_PLUGINS}

if [ -n "$LD_LIBRARYN32_PATH" ]
then
   LD_LIBRARYN32_PATH=${MOZ_DIST_BIN}:${MOZ_DIST_BIN}/plugins:${MRE_HOME}${LD_LIBRARYN32_PATH+":$LD_LIBRARYN32_PATH"}:${LD_PLUGINS}
fi
if [ -n "$LD_LIBRARYN64_PATH" ]
then
   LD_LIBRARYN64_PATH=${MOZ_DIST_BIN}:${MOZ_DIST_BIN}/plugins:${MRE_HOME}${LD_LIBRARYN64_PATH+":$LD_LIBRARYN64_PATH"}:${LD_PLUGINS}
fi
if [ -n "$LD_LIBRARY_PATH_64" ]; then
   LD_LIBRARY_PATH_64=${MOZ_DIST_BIN}:${MOZ_DIST_BIN}/plugins:${MRE_HOME}${LD_LIBRARY_PATH_64+":$LD_LIBRARY_PATH_64"}:${LD_PLUGINS}
fi
#
#
## Set SHLIB_PATH for HPUX
SHLIB_PATH=${MOZ_DIST_BIN}:${MRE_HOME}${SHLIB_PATH+":$SHLIB_PATH"}:${LD_PLUGINS}
#
## Set LIBPATH for AIX
LIBPATH=${MOZ_DIST_BIN}:${MRE_HOME}${LIBPATH+":$LIBPATH"}:${LD_PLUGINS}
#
## Set DYLD_LIBRARY_PATH for Mac OS X (Darwin)
DYLD_LIBRARY_PATH=${MOZ_DIST_BIN}:${MRE_HOME}${DYLD_LIBRARY_PATH+":$DYLD_LIBRARY_PATH"}:${LD_PLUGINS}
#
## Set LIBRARY_PATH for BeOS
LIBRARY_PATH=${MOZ_DIST_BIN}:${MOZ_DIST_BIN}/components:${MRE_HOME}${LIBRARY_PATH+":$LIBRARY_PATH"}:${LD_PLUGINS}
#
## Set ADDON_PATH for BeOS
ADDON_PATH=${MOZ_DIST_BIN}${ADDON_PATH+":$ADDON_PATH"}:${LD_PLUGINS}
#
## Solaris Xserver(Xsun) tuning - use shared memory transport if available
if [ "$XSUNTRANSPORT" = "" ]
then
        XSUNTRANSPORT="shmem"
        XSUNSMESIZE="512"
        export XSUNTRANSPORT XSUNSMESIZE
fi
## Populate XPSERVERLIST if it was not set yet
if [ "$XPSERVERLIST" = "" ]
then
    if [ -f /etc/init.d/xprint ] ; then
        XPSERVERLIST="`/bin/sh /etc/init.d/xprint get_xpserverlist`"
        if [ "$XPSERVERLIST" != "" ] ; then
            export XPSERVERLIST
        fi
    fi
fi

if [ "$moz_debug" -eq 1 ]
then
  echo "MOZILLA_FIVE_HOME=$MOZILLA_FIVE_HOME"
  echo "  LD_LIBRARY_PATH=$LD_LIBRARY_PATH"
  if [ -n "$LD_LIBRARYN32_PATH" ]
  then
     echo "LD_LIBRARYN32_PATH=$LD_LIBRARYN32_PATH"
  fi
  if [ -n "$LD_LIBRARYN64_PATH" ]
  then
     echo "LD_LIBRARYN64_PATH=$LD_LIBRARYN64_PATH"
  fi
  if [ -n "$LD_LIBRARY_PATH_64" ]; then
     echo "LD_LIBRARY_PATH_64=$LD_LIBRARY_PATH_64"
  fi
  if [ -n "$DISPLAY" ]; then
       echo "DISPLAY=$DISPLAY"
  fi
  if [ -n "$FONTCONFIG_PATH" ]; then
   echo "FONTCONFIG_PATH=$FONTCONFIG_PATH"
  fi
  if [ -n "$XPSERVERLIST" ]; then
       echo "XPSERVERLIST=$XPSERVERLIST"
  fi
  if [ -n "$MOZILLA_POSTSCRIPT_PRINTER_LIST" ]; then
       echo "MOZILLA_POSTSCRIPT_PRINTER_LIST=$MOZILLA_POSTSCRIPT_PRINTER_LIST"
  fi
  echo "DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH"
  echo "     LIBRARY_PATH=$LIBRARY_PATH"
  echo "       SHLIB_PATH=$SHLIB_PATH"
  echo "          LIBPATH=$LIBPATH"
  echo "       ADDON_PATH=$ADDON_PATH"
  echo "      MOZ_PROGRAM=$MOZ_PROGRAM"
  echo "      MOZ_TOOLKIT=$MOZ_TOOLKIT"
  echo "        moz_debug=$moz_debug"
  echo "     moz_debugger=$moz_debugger"
fi
#

export MOZILLA_FIVE_HOME LD_LIBRARY_PATH
export SHLIB_PATH LIBPATH LIBRARY_PATH ADDON_PATH DYLD_LIBRARY_PATH LD_PLUGINS

if [ $moz_debug -eq 1 ]
then
   moz_debug_program ${1+"$@"}
else
   moz_run_program ${1+"$@"}
fi

exit $exitcode 
Дазволы для скрыпта — rwx для ўсіх.

Калі я раблю падвойны клік або націскаю Enter у Krusader або muCommander — праграма стартуе без праблем. Але калі праз Konqueror — нічога не адбываецца. Таксама не магу запусьціць GNU IceCat праз лучыва, якое стварыў да run-icecat.sh на працоўным стале.

Паспрабаваў зрабіць так: клікнуў правай кнопкай мышкі па скрыпце, выбраў Адчыніць з ? Іншая праграма, увёў bash у поле, пазначыў Выконваць у тэрмінале і Не зачыняць пасьля выкананьня. У такі выпадку ў тэрмінале зьяўляецца паведамленьне:

Код: Выделить всё

run-icecat.sh: Can’t execute
Як даць гэтаму рады?
Последний раз редактировалось dg333 16 дек 2008, 21:24, всего редактировалось 1 раз.
openSUSE 11.3/12.3

leave
Неотъемлемая часть форума
Сообщения: 1055
Зарегистрирован: 25 окт 2006, 14:50
Откуда: minsk
Контактная информация:

Re: GNU IceCat: не магу выканаць скрыпт запуску з Konqueror

Сообщение leave »

а собственно в консоли как отрабатывает?

dg333
Неотъемлемая часть форума
Сообщения: 296
Зарегистрирован: 10 май 2006, 09:46
Откуда: Менск

Re: GNU IceCat: не магу выканаць скрыпт запуску з Konqueror

Сообщение dg333 »

Ніяк:

Код: Выделить всё

run-icecat.sh: Can’t execute
openSUSE 11.3/12.3

Аватара пользователя
IceMan
Неотъемлемая часть форума
Сообщения: 377
Зарегистрирован: 22 июл 2007, 10:12
Откуда: Минск
Контактная информация:

Re: GNU IceCat: не магу выканаць скрыпт запуску з Konqueror

Сообщение IceMan »

chmod a+x ./run-icecat.sh
./run-icecat.sh

dg333
Неотъемлемая часть форума
Сообщения: 296
Зарегистрирован: 10 май 2006, 09:46
Откуда: Менск

Re: GNU IceCat: не магу выканаць скрыпт запуску з Konqueror

Сообщение dg333 »

IceMan, дзякуй, дапамагло!
openSUSE 11.3/12.3

Ответить