在Mac AIR上安装win7

领导出差要用windows,只好将手上的笔记本apple air想办法装一个windows7系统了。但在安装过程中遇到了一堆问题。遇到的问题主要有以下3个。

1. 我的硬盘空间都去哪儿了

256GB的硬盘空间,不注意就快要满了。删除了个人目录下的多数空间,结果发现并没有空出来多少。找了个硬盘占用软件daisydisk看了一下,发现有100多GB的未知占用空间,不知道是什么。最后搜索下来发现是Time Machine的本地快照。

关于 Time Machine 本地快照

这个东东占用空间太大,采用这个网页的办法进行了处理:

Disable Time Machine Local Backups in Mac OS X Lion

即:

sudo tmutil disablelocal

然后空间就回来了,瞬间感觉呼吸正常了。

 

2. 安装过程中无法选择分区进行安装

按照boot camp助手提示进行操作,找到一个win7 64位的安装盘,以及一个不用的U盘(8G的),结果在U盘启动进行WIN7安装过程中,怎么也无法选择一个分区继续了。继续搜索,结果找到一个奇葩的解决方案:

在制作win7启动盘过程时,U盘要放在AIR右边的插口,而用U盘启动时需要放到左边的插口!

而且,这个方案很有效!感觉很奇葩。

 

3. 硬件驱动安装

win7安装好后,还需要在安装u盘的boot comp辅助程序,驱动对应的air硬件。但感觉windows下的触摸板怎么也调不出右键效果,只好再外接一个鼠标用了。

 

在ubuntu中使用samba客户端

主要目的是想在ubuntu中使用WINDOWS服务器上的空间,所有的数据都是挂在WINDOWS服务器上的一个磁盘阵列,操作方法参考此处
首先安装:

sudo aptitude install smbfs

然后准备一个目录:

sudo mkdir /media/Storage

输入帐号,放在/root/.cifscredentials文件,内容如下:

username=Guest
password=

分别对应WINDOWS共享下的用户名和密码。
然后编辑/etc/fstab,添加一行:

//192.168.0.10/SHARENAME /media/Storage cifs auto,iocharset=utf8,uid=USER,gid=users,credentials=/root/.cifscredentials,file_mode=0775,dir_mode=0775 0 0

然后修改上述的信息为你实际的信息,
192.168.0.10对应服务器地址
/media/Storage对应ubuntu中的目录
user对应共享后的用户名
users对应共享后的用户组
file_mode=0775,dir_mode=0775的意义是对所有用户都可读写。
然后使用下面的命令执行mount过程:

sudo mount -a

如果共享名称里包含空格,可以使用\040来代替。

用批处理进行按星期的数据库备份

需要按星期进

@echo off
echo ———–
echo name: Oracle data export automata utility
echo author: WANG Liangxu
echo date: 2006-8-7
echo refined by NAN Zhuotong
echo documented by NAN Zhuotong
echo Any problem please contact us via wlx@mygis.org; nztong@lzb.ac.cn

REM This program is used to export data in Oracle to external files named with current date.
REM A simple export schema is employed. Monday the data will be completely exported.
REM Tuesday through Thursday data will be exported in an incremental manner.
REM Friday, data exported include all the incremental data since the last completed export.
REM Saturday and Sunday incremental export will be employed once more.

REM This program can be used together with Windows plan and task utility. In that way,
REM the program can be enhanced with running by schedule.

echo ———–
set w=%date:~13,1%
set d=%date:~0,4%%date:~5,2%%date:~8,2%
rem echo %d%
if %w%==一 goto 1
if %w%==二 goto 2
if %w%==三 goto 3
if %w%==四 goto 4
if %w%==五 goto 5
if %w%==六 goto 6
if %w%==日 goto 7

REM exp system/systemwestdc inctype=complete file=d:/ORADB-BACKUP/20060807.dmp (complete)
REM exp system/systemwestdc inctype=incremental file=d:/ORADB-BACKUP/2006xxxx.dmp
REM exp system/systemwestdc inctype=cumulative file=d:/ORADB-BACKUP/2006xxxx.dmp
REM Mon: 完全备份(A)
REM Tue: 增量导出(B)
REM Wed: 增量导出(C)
REM Thu: 增量导出(D)
REM Fri: 累计导出(E)
REM Sat: 增量导出(F)
REM Sun: 增量导出(G)

:1
echo Begin exporting data to file %d%-compl.dmp
exp system/systemwestdc inctype=complete file=d:/ORADB-BACKUP/%d%-compl.dmp
goto end
:2
echo Begin exporting data to file %d%-incre.dmp
exp system/systemwestdc inctype=incremental file=d:/ORADB-BACKUP/%d%-incre.dmp
goto end
:3
echo Begin exporting data to file %d%-incre.dmp
exp system/systemwestdc inctype=incremental file=d:/ORADB-BACKUP/%d%-incre.dmp
goto end
:4
echo Begin exporting data to file %d%-incre.dmp
exp system/systemwestdc inctype=incremental file=d:/ORADB-BACKUP/%d%-incre.dmp
goto end
:5
echo Begin exporting data to file %d%-cumul.dmp
exp system/systemwestdc inctype=cumulative file=d:/ORADB-BACKUP/%d%-cumul.dmp
goto end
:6
echo Begin exporting data to file %d%-incre.dmp
exp system/systemwestdc inctype=incremental file=d:/ORADB-BACKUP/%d%-incre.dmp
goto end
:7
echo Begin exporting data to file %d%-incre.dmp
exp system/systemwestdc inctype=incremental file=d:/ORADB-BACKUP/%d%-incre.dmp
goto end
:end

cross compile QT4 program for windows on ubuntu dapper

1、首先安装基础程序:
sudo wine mingw32 mingw32-binutils mingw32-runtime
2、安装QT4支持(LINUX下的支持):
sudo apt-get install libqt4-core libqt4-gui libqt4-qt3support libqt4-sql libqt4-debug-dev libqt4-dev
3、下载QT4 for win程序:
wget http://wftp.tu-chemnitz.de/pub/Qt/qt/source/qt-win-opensource-4.1.2-mingw.exe
4、安装:
wine qt-win-opensource-4.1.2-mingw.exe
中间会提示找不到MINGW32的位置,没关系,可以直接跳过。
5、修改specs文件
sudo cp -Rf /usr/share/qt4/mkspecs/win32-g++ /usr/share/qt4/mkspecs/win32-x-g++
sudo nano /usr/share/qt4/mkspecs/win32-x-g++/qmake.conf
把和下面相关的内容都进行修改:

QMAKE_CXX = i586-mingw32msvc-g++

QMAKE_INCDIR = /usr/i586-mingw32msvc/include/
QMAKE_INCDIR_QT = /usr/local/qt4-w32/4.1.2/include
QMAKE_LIBDIR_QT = /usr/local/qt4-w32/4.1.2/lib

QMAKE_LINK = i586-mingw32msvc-g++

# ne pas oublier le -mwindows ici
QMAKE_LFLAGS = -mthreads -Wl,-enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -mwindows

#isEqual(MINGW_IN_SHELL, 1) {
QMAKE_DIR_SEP = /
QMAKE_COPY = cp
QMAKE_COPY_DIR = cp -r
QMAKE_MOVE = mv
QMAKE_DEL_FILE = rm -f
QMAKE_MKDIR = mkdir -p
QMAKE_DEL_DIR = rm -rf
#} else {
# QMAKE_COPY = cp
# QMAKE_COPY_DIR = cp -r
# QMAKE_MOVE = mv
# QMAKE_DEL_FILE = rm -f
# QMAKE_MKDIR = mkdir -p
# QMAKE_DEL_DIR = rm -rf
#}

# Enlever les .exe et rajouter -qt4
QMAKE_MOC = $$[QT_INSTALL_BINS]$${DIR_SEPARATOR}moc-qt4
QMAKE_UIC = $$[QT_INSTALL_BINS]$${DIR_SEPARATOR}uic-qt4

# Je n’ai pas trouvé d’équivalent de ce fichier, j’ai quand meme enlevé le .exe
QMAKE_IDC = $$[QT_INSTALL_BINS]$${DIR_SEPARATOR}idc

QMAKE_RC = i586-mingw32msvc-windres

QMAKE_STRIP = i586-mingw32msvc-strip

6、QT4的跨平台编译支持就完成了,以后可以这样编译WINDOWS程序:
qmake-qt4 -project
qmake-qt4 -spec win32-x-g++
make

windows下安装mingw32, wxWidgets和SQLITE3

首先安装mingw32,从SF上下载安装包,直接安装。
安装完成后修改环境变量,把mingw/bin目录加到path里,安装的时候我选择了gcc, g++和make。
wxWidgets使用安装包安装完成后,还需要进行一下编译:
cd wxWidgets-2.6.3/build/msw
mingw32-make -f makefile.gcc
然后安装sqlite3,需要下载3个文件,sqlite3.dll, sqlite3.def,sqlite3.h
用dlltool制作sqlite3的lib文件(.a):
dlltool -k -d sqlite3.def -lsqlite3.a
拷贝sqlite3.a文件到mingw/lib目录下,还需要:
ld sqlite3.a
然后拷贝sqlite3.dll到windows/system32目录或者你的程序目录下,拷贝sqlite3.h到mingw/include目录。
最后就是需要参照某个makefile.gcc文件来制作自己的makefile。
需要注意,本来我的程序是以minimal程序的makefile.gcc为蓝本的,后来发现编译总是有问题,提示wxDatePickerCtrl有问题,但是我编译samples/calendar没有任何问题,后来比较后发现minimal在link的时候少了一个库: -lwxmsw26d_adv,若程序用到了sqlite3,还需要-lsqlite3。

编译sqlite for windows on ubuntu dapper

参考其中的SQLITE部分: http://mpa.itc.it/radim/wingrass/INSTALL

下载源码,解压缩:

cd sqlite-3.3.5
nano Makefile.linux-gcc
#modify:
#TOP = ../sqlite-3.3.5
#这个修改不知道有没有意义

# Note: SQLite is using for example its own parser (lemon) which must be compiled first for Linux

make -f Makefile.linux-gcc lemon keywordhash.h

cp Makefile.linux-gcc Makefile.mingw-gcc

nano Makefile.mingw-gcc
# modify Makefile.mingw-gcc (BCC,TCC,AR,RANLIB):
# 修改一下相关部分:
# BCC = i586-mingw32msvc-gcc -g -O2
# TCC = i586-mingw32msvc-gcc -O6
# AR = i586-mingw32msvc-ar cr
# RANLIB = i586-mingw32msvc-ranlib

# delete tclsqlite.o from LIBOBJ in main.mk

make -f Makefile.mingw-gcc libsqlite3.a

i586-mingw32msvc-g++ –shared -o sqlite3.dll \
-Wl,–out-implib=libsqlite3.dll.a \
-Wl,–export-all-symbols \
-Wl,–enable-auto-import \
-Wl,–whole-archive libsqlite3.a \
-Wl,–no-whole-archive -lmingw32

i586-mingw32msvc-strip sqlite3.dll
cp sqlite3.dll /usr/i586-mingw32msvc/bin/
cp libsqlite3.dll.a /usr/i586-mingw32msvc/lib
cp sqlite3.h /usr/i586-mingw32msvc/include

编译wxWidgets for windows on ubuntu dapper

原文:http://www.wxwidgets.org/wiki/index.php/Cross-Compiling_Under_Linux

下载allportscombine包,然后:

./configure –with-msw –target=i586-mingw32msvc –host=i586-mingw32msvc –build=i386-linux –enable-unicode –prefix=/usr/i586-mingw32msvc/
make
make install

注意编译的时候要分两步走,不能象G++那样一步到位:

i586-mingw32msvc-g++ -c -o minimal.o minimal.cpp `/usr/i586-mingw32/bin/wx-config –cxxflags`

i586-mingw32msvc-g++ -o minimal.exe minimal.o `/usr/i586-mingw32/bin/wx-config –libs`

因为wxWidgets是以动态库的方式编译的,还需要拷贝相关的DLL:

cp /usr/i586-mingw32msvc/lib/wx*.dll .

同时,还要拷贝mingw32的一个库过来:

cp /usr/share/doc/mingw32-runtime/mingwm10.dll.gz .
gzip -d *.gz

然后就可以进行测试了:
wine minimal.exe

mingw:在LINUX下编译WINDOWS程序

MinGW – Minimalist GNU For Windows
http://www.mingw.org
UBUNTU下可以直接安装:
sudo apt-get install mingw32 mingw32-binutils mingw32-runtime
安装后编译程序可以:
i586-mingw32msvc-g++(编译C++程序)
i586-mingw32msvc-gcc(编译C程序)
用法和gcc/g++非常类似。
如hello.c程序:

#include

int WINAPI WinMain (HINSTANCE hInstance,
HINSTANCE hPrevInstance,
PSTR szCmdLine,
int iCmdShow)
{
MessageBox (NULL, “Hello”, “Hello Demo”, MB_OK);
return (0);
}

编译:
i586-mingw32msvc-gcc hello.c -o hello.exe -mwindows
注:-mwindows指示其编译的是windows程序,若编译的是console(命令行)程序,则不需要这个参数。
若安装了wine,还可以测试一下这个程序:
wine hello.exe

不过,我本来是想编译wxWidgets程序的,但发现这个好像还是有点问题,估计还需要wxWidgets for mingw32@linux

postgis在windows下的应用

目前,windows下的版本,postgresql官方已经开始支持,目前是8.0.1版本。POSTGIS目前官方尚不支持windows版本,但有支援者在进行同步维护windows版本,目前是1.0-rc6版本,估计很快就是1.0版本了。

    1、安装

安装很简单,首先要安装postgresql,注意其有两个帐号,一是系统帐号,二是数据库管理帐号。安装程序可以新建用户,要提到一点,目前的postgresql数据库不支持远程安装,就是说,不能通过远程桌面进行安装(这个限制,不爽)。windows版本还包括了pgadmin3,图形化的管理界面。
然后安装postgis,需要前面安装postgresql的管理员帐号,同时其还要安装一个postgis数据库。
默认情况下,可执行文件都安装到postgresql的bin目录,几个SQL文件安装在postgresql的share/contrib目录下。

    2、使用

对于中文用户来讲,首先要考虑数据库的编码问题,可以使用unicode,utf8,euc_cn等编码,默认的是unicode编码。
第一次使用unicode编码时移植linux下的应用,遇到了很多非常奇怪的问题。改用euc_cn编码,问题就少多了。

建库:
createdb -U postgres -E EUC_CN db
(linux环境下本机默认都不需要认证密码,但在windows系统下,默认是需要验证密码的)
alter database db set client_encode=”EUC_CN”
(这个要进入到psql环境中才能运行的,不确定是否必须,在linux环境下不需要)
搭建postgis环境:
creatlang -U postgres plpgsql db
(这个在windows下默认好象是不需要处理的)
引入postgis支持:
psql -U postgres -d db -f lwpostgis.sql
psql -U postgres -d db -f spatial_ref_sys.sql
生成矢量数据的sql文件:
shp2pgsql xx.shp xx_table > xx.sql
导入到数据库:
psql -U postgres -d db -f xx.sql

    3、开始应用

到此,您的基本的postgis数据库就已经搭建好了,剩下的工作就是看您怎么去最大的压榨postgis的功能了。