VirtualBox在Ubuntu下無法安裝Guest Additions

剛剛在VirtualBox 4.2.4裝了Ubuntu 12.10,安裝完畢後要安裝Guest Additions卻發生錯誤,按照console的提示把訊息印出來 /var/log/vboxadd-install.log 錯誤大概是這樣的:

Error: unable to find the sources of your current Linux kernel.

Google後發現這篇討論串

然後發現先安裝下列的套件然後再安裝Guest Additions,就可以了!

sudo apt-get install dkms build-essential linux-headers-generic

WordPress在Linux上安裝、更新套件出現錯誤

把Wordpress從Windows搬到Ubuntu Linux上之後,出現了選擇安裝、更新套件的時候出現要求輸入FTP、SSH帳號的訊息「欲執行此動作,WordPress 需要訪問您的網頁伺服器。請輸入 FTP 密碼繼續。」,出現這個表示Wordpress無法寫入實體檔案,所以要求你提供可寫入實體檔案的FTP帳號。

Wordpress無法更新的錯誤畫面

如果wordpress是架在自己可以管理到的Linux主機,請先確認一下wordpress資料夾下的檔案是否都有寫入權限,建議最快的解決方法就是把wordpress下的所有檔案的owner都換成執行apache的使用者,不過這個使用者名稱在各種distro並不一致,在ubuntu下是www-data。

chown -R www-data wordpress

更多訊息可以參考: Why WordPress Asks for Connection Info

[memo] Ubuntu Linux改Timezone的方式

在ec2上開ubuntu大多是UTC,雖然server是在外國,可是習慣上還是改回台灣的時區比較不會誤會。改時區實在無敵簡單的,基本上就是去/usr/share/zoneinfo裡面找到適當的時區,然後在製作軟連結到/etc/localtime就可以了。下面這個,是台灣時區的下法。

ln -sf /usr/share/zoneinfo/Asia/Taipei /etc/localtime

EC2上的Ubuntu裝ec2-api-tools出現錯誤

因為從2010年11月開始一年,有一台micro主機免費所以開始使用EC2。不過卻發現之前用的alestic提供的Ububtu 10.10的image的EBS空間是切15GB,而免費的quota是10GB所以多出來的5GB變成額外要charge,而我架這個blog也才使用1GB左右的空間而已,所以決定著手調整EBS的size。可是卻發現Ubuntu上沒有預載ec2的api tools,但是嚇了sudo apt-get install ec2-api-tools ec2-ami-tools卻出現下面這種錯誤。

$ sudo apt-get install ec2-ami-tools
Reading package lists… Done
Building dependency tree
Reading state information… Done
Package ec2-ami-tools is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package ‘ec2-ami-tools’ has no installation candidate

經過google後參考這篇mail ,所以下下面的指令…。不過指令有用sed去改/etc/apt/sources.list的檔案,所以執行前最好先備份一下喔。

$ sudo sed -i.dist ‘s,universe$,universe multiverse,’ /etc/apt/sources.list
$ sudo apt-get update
$ sudo apt-get install ec2-api-tools ec2-ami-tools

結果就成功安裝嚕,可以參考一下嚕。

[memo] Ubuntu 安裝Oracle JDK (12.04 / 12.10)

在Ubuntu以往的版本中可以直接透過apt-get install sun-java-jdk來安裝官方版本的JDK,可是Ubuntu 10.04之後將Sun的JDK移到partner的repositoty中(詳情),也因此無法直接下apt-get install sun-java-jdk來安裝JDK。所以必須要把相關資訊加入apt的repository中才能安裝。

Ubuntu 12.04 & 12.10

這個團隊提供。

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer

 

Ubuntu 11.04 & 11.10 (已失效)

Ubuntu 11.04之後的版本,apt repository的位置與10.x版本不同。

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:ferramroberto/java
sudo apt-get update
sudo apt-get install sun-java6-jdk sun-java6-plugin

 

Ubuntu 10.04 & 10.10

sudo apt-get install python-software-properties
sudo add-apt-repository “deb http://archive.canonical.com/ lucid partner”
sudo apt-get update
sudo apt-get install sun-java6-jdk sun-java6-plugin

需要的話可以用下面的指令把原本系統的open JDK換掉

sudo update-java-alternatives -s java-6-sun

sudo add-apt-repository “deb http://archive.canonical.com/ lucid partner”
sudo apt-get update
sudo apt-get install sun-java6-jdk sun-java6-plugin
sudo update-java-alternatives -s java-6-sun

參考網頁:

http://www.ubuntugeek.com/how-install-sun-java-runtime-environment-jre-in-ubuntu-10-04-lucid-lynx.html
http://blog.cheyingwu.tw/index.php/2010/05/02/ubuntu-10-04-switch-to-sun-jdk/
http://tekibrain.blogspot.tw/2011/05/ubuntu-1104-sun-java-6-jdk.html

[memo] Ubuntu Linux 10.04透過apt-get安裝JDownloader

JDownloader是一套基於Java的下載軟體,除了可以支持跨平台運作外,最大的特點就是可以自動下載像是Megauploader、Rapidshare、ZShare、訊6、Bandongo(這個好像壞掉很久了)、…等等,免費空間的檔案。在Windows上只要裝好JRE然後下載下zip檔就可以直接打開,

這邊介紹一下如何用Ubuntu Linux直接利用apt-get安裝下載JDownloader,透過apt來下載最大的好處是apt會幫忙handle安裝其他相依套件及更新程式的工作,一般直接利用官方下載執行檔安裝無法達到上述個功能,操作起來也比較麻煩。其實透過apt安裝其實只要下下面的三行指令,就可以把JDownloader的下載放到apt的repository裡面,然後更新apt的內容後就可以直接安裝JDownloader。

sudo add-apt-repository ppa:jd-team/jdownloader
sudo apt-get update
sudo apt-get install jdownloader

還是稍微說明一下上面指令的意義,第一行是把jdownloader加入到apt-get的套件庫(repository)中。另外可能會遇到類似下面這種gpg錯誤

gpg: 正在請求金鑰 6A68F637 自 hkp 伺服器 keyserver.ubuntu.com
gpg: 金鑰伺服器逾時
gpg: 從金鑰伺服器接收失敗: 金鑰伺服器錯誤

這是因為在加入repository的時候會去ubuntu的keyserver取得金鑰來驗證。但是取得金鑰的過程卻發生錯誤。這可能是因為取得金鑰是走 11371 port 而防火牆沒有開啟該port的連線的緣故。如果有遇到無法取得金鑰的問題可以測試看看該port是否可以聯通。

第二行指令是命令apt去更新repository的套件清單,這樣才能讀取到剛剛加入的repository。

第三行是讓apt去安裝jdownloader。

下載安裝完畢後,只要在指令列下jdownloader,程式就會開始運行。

簡單memo一下嚕。

Ubuntu Linux 網卡設定範例 Sample

Ubuntu Linux在命令列下改網卡的IP的方式:

#修改時需要root權限
sudo vim /etc/network/interfaces

DHCP的設定

auto eth0
iface eth0 inet dhcp

手動設定static IP的方式

auto eth0
iface eth0 inet static
address 192.168.1.1
netmask 255.255.255.0
network 192.168.1.255
gateway 192.168.1.254

/boot空間不足造成Ubuntu apt-get無法使用的問題

最近發現自己管理的一些Ubuntu Server的apt-get功能竟然無法使用,只要是要安裝新的套件就會出現類似下面這樣的錯誤。

root@serv01:/home/joseph# apt-get install php-mail
Reading package lists… Done
Building dependency tree
Reading state information… Done
You might want to run `apt-get -f install’ to correct these:
The following packages have unmet dependencies:
linux-image-server: Depends: linux-image-2.6.31-21-server but it is not going to be installed
php-mail: Depends: php-pear but it is not going to be installed
Recommends: php-net-smtp but it is not going to be installed
E: Unmet dependencies. Try ‘apt-get -f install’ with no packages (or specify a solution).

但如果是照著提示下 apt-get -f install 的話安裝也不會成功,經過檢查原來是Ubuntu Server在安裝套件時會自動更新Linux Kernel的image。

而我安裝系統的時後總是習慣將/boot切割為磁碟的第一個獨立的分割區,這樣做有一個好處是/boot總是會放在磁碟最裡面的cylinder。而/boot會使用的空間不多,一般而言50MB綽綽有餘。但是apt在更新image的時候並不會把舊的image丟棄,所以造成/boot爆滿的情況。

此時只要將/boot中舊的images搬走釋放出/boot的空間然後在下 apt-get -f install 就會自動更新kernel的image。