2010年1月27日 星期三

Ubuntu 9.10的man page找不到一些東西

.

在Ubuntu上用man時,發現一些寫code時的function找不到,這不合理

在網路上找了一下資料,原來再安裝manpages-dev就好了
在提示符號下輸入:
sudo apt-get install manpages-dev

安裝完後,再用man就可以查到function了

那麼到底manpages-dev是什麼?
繼續追查下去,首先找到APT的來源,以下文字擷取自WIKI:高級包裝工具
高級包裝工具(英語:Advanced Packaging Tools,簡稱:APT)是Debian及其衍生發行版的軟件包管理器。APT可以自動下載,配置,安裝二進制或者源代碼格式的軟件包,因此簡化了Unix系統上管理軟件的過程。APT最早被設計成dpkg的前端,用來處理deb格式的軟件包。現在經過APT-RPM組織修改,APT已經可以安裝在支援RPM的系統管理RPM套件。
原來如此,APT現在可用在RPM上了
在用RPM時,dependency為我帶來很大的痛苦,而現在,APT的出現將一切變簡單了,安裝程式只要one step(從wiki推斷,rpm的dependency其實是由apt自動解決)
用了apt,讓我對linux改觀

接著再找,找到中文的APT的How To:APT HOWTO中文版

apt可以search(是apt-cahche,不是apt-get)
apt-cache search atari

於是我search了 manpages:
sudo apt-cache search manpages

結果很多,節錄一些重要的

manpages - GNU/Linux 系統使用手冊
manpages-dev - 給開發者參考使用的 GNU/Linux 說明手冊
vim-common - Vi 增強版 - 共用檔案
funny-manpages - 許多有趣的說明手冊(manpage)
manpages-zh - 中文 manual page

原來manpage有超多的,而Ubuntu 9.10預設少裝了manpages-dev(給開發者參考使用的 GNU/Linux 說明手冊)
對有需要寫程式的人,就要自己安裝manpages-dev了
祝大家寫程式順利

.

2010年1月22日 星期五

Ubuntu 9.10 / Linux Mint 8 安裝Android NDK

.

要在Ubuntu 9.10 / Linux Mint 8 下安裝Linux版的Android NDK
若用此兩版裝ndk,會遇到問題

正常的安裝步驟:

1.首先要將將ndk解壓縮:
$ unzip android-ndk-1.5_r1-linux-x86.zip

2.解完後的目錄為android-ndk-1.5_r1 ,則切換到該目錄:
$ cd android-ndk-1.5_r1

3.接著要在解壓縮後的目錄下執行./build/host-setup.sh:
$ ./build/host-setup.sh:

接著就會遇到問題:

./build/host-setup.sh: 23: source: not found
Detecting host toolchain.

./build/host-setup.sh: 57: force_32bit_binaries: not found
./build/host-setup.sh: 58: setup_toolchain: not found
./build/host-setup.sh: 60: cannot create : Directory nonexistent
Can't create directory for host config file: out/host

如下圖:


解法為用文字編輯器(eg. vi)修改./build/host-setup.sh中的第一行,將#!/bin/sh改為#!/bin/bash後,存檔,再執行一次./build/host-setup.sh,即可安裝成功

gdemon@gdemon-ubuntu910:~/android-ndk-1.5_r1$ vim ./build/host-setup.sh
gdemon@gdemon-ubuntu910:~/android-ndk-1.5_r1$ ./build/host-setup.sh
Detecting host toolchain.

CC : compiler check ok (gcc)
LD : linker check ok (gcc)
CXX : C++ compiler check ok (g++)
Generate : out/host/config.mk
Toolchain : Checking for arm-eabi-4.2.1 prebuilt binaries

Host setup complete. Please read docs/OVERVIEW.TXT if you don't know what to do.

如下圖:


接著make在samples裡的例子:
$ make APP=hello-jni

然後prompt就會提示你編譯so成功,並安裝到apps/hello-jni/project/libs/armeabi/中

如下圖:


在Ubuntu 9.10 / Linux Mint 8下我都試過有這問題,也都是這樣就可以安裝成功了

.

2010年1月21日 星期四

Ubuuntu ssh login 速度慢

.
在裝了Ubuntu後,用ssh login ubuntu後,發現輸入username後,要等一陣子才能輸入password,而server明明是沒有loading的,不該這麼慢才對

google了一下,大家都說是因為ssh預設dns反查所造成的,但解法卻莫衷一是……
解法有很多,有些我試了是沒用的

在Linux Mint 8 和 Ubuntu 9.10下,兩個我都試過了,真正用的:
修改/etc/nsswitch.conf,找到 hosts那行
原先應該長這樣:hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
改成這樣:hosts: files dns [NOTFOUND=return]
存檔,不用重開Ubuntu,馬上有用

.

2010年1月20日 星期三

VirtualBox在Ubuntu下自動掛載sharefolder

.

在VirtualBox下,在host os和guest os間分享資料夾的文章已經有人介紹很多
當guest os為linux (ubuntu)時,每次重開vm都要執行mount的指令來share folder時會不會讓你很煩?

看到有人使用script的方式來autorun mount的指令,不是不可行,只是很麻煩,因為還要將執行指令的account設為sudoer....
若只是希望開機自動mount virtualbox的sharefolder的話,下面介紹一個更簡單的方法,只要修改/etc/fstab就好了

1.在shell下執行:sudo vi /etc/fstab
2.在最下面加入如下面的一行,存檔,重開機後,你就會發現vbox的分享資料夾被自動掛載了
sharefolder_name mount_point就好了
比如說,以我的設定來講,如入如下的一行,vb_ShareFolder為vbox的分享資料夾名稱,/home/gdemon/vbsf為我的mount point(掛載點)
vb_ShareFolder /home/gdemon/vbsf vboxsf


我的guest OS為Ubuntu 9.10,保證可以,另外原文作者也試過在9.04下這樣就行
根據原文的說法,若為8.10,則要這樣改:
sharefolder_name mount_point vboxsf defaults 0 0
此方法的原文出處

.

2010年1月5日 星期二

Android SDK 安裝問題

.

最近由於計畫的關係必需要在Android上開發程式
在安裝Android的SDK時出了問題:

Failed to fetch URL https://dl-ssl.google.com/android/repository/repository.xml, reason: HTTPS SSL error. You might want to force download through HTTP in the settings.

沒法更新自然就沒法下載AVD(Android Virtual Device),本來想一個一個單獨下載的
但是這樣不是解決問題的正確方法

最後我是這樣解決的:將settings裡的"force https://...source to be fetched http://..."這個選項打勾就可以順利更新了,如下圖:


20090120補充:
在Ubuntu上裝SDK又遇到同樣的問題,發現除了將該選項打勾外,還要按下"Save & Apply"後才能更新成功,按下Save & Apply後,去點Available Packages就能看到update list了

.