Navicat

Error:

1. 打开表时报错"... tableviewform already exists"(ubuntu,wine-1.7.50)

不要用其自带的"start_navicat"脚本启动navicat,直接打开Navicat/Navicat.exe即可.

后来发现直接运行Navicat.exe会因为未设置环境变量而导致查询无法使用.最终只能修改start_navicat重新设置其环境变量了,这是我修改后脚本(主要是修改了其中的"Wine environment variables",即根据navicat_root中自带的wine目录结构,用locate定位其文件在本地的位置再逐个替换即可):

#!/bin/sh

cd `dirname "$0"`
navicat_root=`pwd`

#glibc version
VERSION_STR=`ldd --version | head -1 | grep -o -E "[0-9]+\.[0-9]+(\.[0-9]+)?$"`
MAJOR=`echo $VERSION_STR | cut -d. -f1`
MINOR=`echo $VERSION_STR | cut -d. -f2`
VERSION=$(($MAJOR*100+$MINOR))
if [ $VERSION -lt 204 ]; then
  echo "Navicat needs glibc version >= 2.4...exiting"
  exit
elif [ $VERSION -lt 209 ]; then
  WINEDIR="wine_old"
else
  WINEDIR="wine"
fi

# Wine environment variables
export LANG="en_US.UTF-8"
export PATH="/usr/bin":"$navicat_root":"/home/chen/.wine/drive_c/windows":"$PATH"
export LD_LIBRARY_PATH="/usr/lib/i386-linux-gnu/lib":"$navicat_root/lib":"$LD_LIBRARY_PATH"
export WINEDLLPATH="/usr/lib/i386-linux-gnu/wine"
export WINELOADER="/usr/bin/wine"
export WINESERVER="/usr/bin/wineserver"
export WINEPREFIX="$HOME/.navicat"
export WINEDLLOVERRIDES="msxml3=n,b" # use native msxml3

# check old version
if [ -h "$WINEPREFIX/drive_c/windows/system32" ] ; then
  rm -rf "$WINEPREFIX/drive_c/windows"
  rm -f "$WINEPREFIX/system.reg"
  rm -f "$WINEPREFIX/Navicat/*"
fi

# wine version
if [ -f "$WINEPREFIX/Version" ] ; then
  echo "80200" > "$WINEPREFIX/Version"
fi

# create directories
[ -d "$WINEPREFIX" ] || mkdir -p "$WINEPREFIX"
[ -d "$WINEPREFIX/drive_c" ] || mkdir -p "$WINEPREFIX/drive_c"
[ -d "$WINEPREFIX/drive_c/Program Files" ] || mkdir -p "$WINEPREFIX/drive_c/Program Files"
[ -d "$WINEPREFIX/drive_c/windows" ] || mkdir -p "$WINEPREFIX/drive_c/windows"
[ -d "$WINEPREFIX/drive_c/windows/temp" ] || mkdir -p "$WINEPREFIX/drive_c/windows/temp"
[ -d "$WINEPREFIX/drive_c/windows/system32" ] || mkdir -p "$WINEPREFIX/drive_c/windows/system32"
[ -d "$WINEPREFIX/dosdevices" ] || mkdir -p "$WINEPREFIX/dosdevices"

# create Navicat directories
[ -f "$WINEPREFIX/Navicat" ] && rm -f "$WINEPREFIX/Navicat"
[ -d "$WINEPREFIX/Navicat" ] || mkdir -p "$WINEPREFIX/Navicat"

# create wine emulated devices
if [ -h "$WINEPREFIX/dosdevices/c:" ] ; then
  [ -d "$WINEPREFIX/dosdevices/c:" ] || rm -f "$WINEPREFIX/dosdevices/c:"
fi
[ -d "$WINEPREFIX/dosdevices/c:" ] || ln -s "$WINEPREFIX/drive_c/" "$WINEPREFIX/dosdevices/c:"

if [ -h "$WINEPREFIX/dosdevices/z:" ] ; then
  [ -d "$WINEPREFIX/dosdevices/z:" ] || rm -f "$WINEPREFIX/dosdevices/z:"
fi
[ -d "$WINEPREFIX/dosdevices/z:" ] || ln -s / "$WINEPREFIX/dosdevices/z:"

if [ -h "$WINEPREFIX/dosdevices/y:" ] ; then
  [ -d "$WINEPREFIX/dosdevices/y:" ] || rm -f "$WINEPREFIX/dosdevices/y:"
fi
if [ -d "$HOME" ] ; then
    [ -d "$WINEPREFIX/dosdevices/y:" ] || ln -s "$HOME" "$WINEPREFIX/dosdevices/y:"
fi

# create symlinks to dlls in WINEDLLOVERRIDES
for dll_name in \
  msxml3.dll \
  msxml3r.dll \
  fontsub.dll \
  ; do
  if [ ! -h "$WINEPREFIX/drive_c/windows/system32/$dll_name" ] || [ `readlink "$WINEPREFIX/drive_c/windows/system32/$dll_name"` != "$navicat_root/$WINEDIR/drive_c/windows/system32/$dll_name" ] ; then
    rm -rf "$WINEPREFIX/drive_c/windows/system32/$dll_name"
    ln -s "$navicat_root/$WINEDIR/drive_c/windows/system32/$dll_name" "$WINEPREFIX/drive_c/windows/system32/$dll_name"
  fi
done

# hide error/stdout message
if test "z$WINEDEBUG" = z ; then
  exec >/dev/null 2>&1
fi

# create wine environment, for ShowDotFiles
if [ $VERSION -lt 209 ]; then
  [ -f "$WINEPREFIX/system.reg" ] || `$navicat_root/$WINEDIR/bin/wineprefixcreate`
else
  [ -f "$WINEPREFIX/system.reg" ] || `WINEDLLOVERRIDES="mshtml=" /usr/bin/winboot -i`
fi

# run Navicat.exe
exec "${WINELOADER:-wine}" "$navicat_root/Navicat/Navicat.exe" "$1" "$2" "$3" "$4" "$5" "$6" "$7"





转载于:https://my.oschina.net/meilihao/blog/542982

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值