跳到主要內容

安裝 MariaDB 10.1 與解決套件 unmet dependencies 問題

自從昇陽(Sun)公司被併購入 Oracle 之後對於很多原本的 Open Source 專案都有莫大的影響,加上 Oracle 公司本身主要的產品是資料庫,因此,許多使用者都開始感到擔心 MySQL 這個許多專案都愛用的資料庫軟體,有朝一日會開始朝向收費一途前進,MySQL 在去年的版本更新時偷偷更換了 GPL 授權一事(MySQL man pages silently relicensed away from GPL),相信不少人的心爲之一振,萌生離去的念頭 。
Oracle 並不是第一次驅使使用者離去,已有 OpenOffice 和 OpenSolaris 的前車之鑑,於是決定開始先熟悉與嘗試由 MySQL 元老 Michael Widenius 發起的 MariaDB。其中 Oracle 帶來的風風雨雨和變動,網路已有不少網友心痛分享在此則不再多做贅述。
MariaDB 由一開始的 MySQL 分支,保持和 MySQL 相同的版本號以維持使用者對於兩個資料庫相容的認知。在 2013 年 4 月 SKySQL 和 MariaDB 的原開發公司 Monty Program Ab 合併後,便共同開發下一代的 MariaDB。在今年 2014 年 3 月的時候釋出 MariaDB 10 的新版本號,由 5.5 直接跳至 10,也象徵著一個全新的開始。在 MariaDB 10 中主要新增了 3 個新的特色:(參考資料)

  1. 新增高效複製功能,可以平行複製資料以及更先進的集體提交功能(Group Commit)。
  2. 增加原生NoSQL支援。新版增加了Connect 引擎來做外部資料管理。
  3. 內建分片(Sharding)功能,提升對分散式架構的支援。

在這次的安裝中,我選擇了 MariaDB 10.1 的版本號在 uBuntu 14.04 Desktop x64 中安裝。10.1 是建立在 MariaDB 10.0 和源自 MySQL 5.6、5.7 的功能以及一些新功能(更新記錄)。安裝方式是使用官方提供的方式,加入 Mirror 的 Repositories 來安裝(Repository Configuration Tool),跟著步驟一個一個點選安裝即可。

不曉得之前是否有安裝其他軟體造成衝突,在 sudo apt-get install mariadb-server 後出現了如下的錯誤:
The following packages have unmet dependencies:
mariadb-server : Depends: mariadb-server-10.1 (= 10.1.0+maria-1~trusty) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

嘗試了幾個不同的 mirror 都出現相同錯誤,是套件相依性問題。APT是一個好的套件管理程式,讓我們可以很簡單的來安裝、更新或移除套件,但是當我們有使用 third-party 的相依性時就有可能會發生上述的錯誤,導致無法完成安裝。
我們可以透過下面的方法來解決:

  1. 確認是不是所有 repositories 是不是都有被啓用。Alt + F2 輸入 software-properties-gtk 開啓 Software Source 視窗,在「Ubuntu Software」檢查是不是全部都有勾選。
  2. 這個 unmet dependencies 的錯誤也有可能是毀損的套件資料庫,或是一些套件沒有被正確的安裝。我們可以用下面的指令修復。首先開啓 Terminal
    # sudo apt-get cleanor
    # sudo apt-get autoclean
  3. 接著執行一個基本修復套件相依的方法
    # sudo apt-get -f install
    註:-f 爲 fix broken 的意思
  4. 移除無用的相依性套件
    # sudo apt-get autoremove
  5. 使用 dpkg 重新 config
    # sudo dpkg --configure -a
  6. 再次執行
    sudo apt-get -f install
apt-get update 後再重新執行安裝應該就可以成功了。 ^^b
sudo apt-get install mariadb-server

留言

這個網誌中的熱門文章

USB裝置無法安全移除解決之道

USB裝置在日常生活的應用上已經越來越普遍,相機、隨身碟、MP3、外接式硬碟等等。當我們在使用了這些設備後,專家都會建議我們一定「 安全的移除硬體裝置 」,尤其在使用了外接式儲存設備以後,正確安全的移除才不會造成設備或資料的毀損,尤其是資料的毀損可就嚴重了。 有時候存取傳送完這些設備後,在移除硬體裝置時會出現「 '一般磁碟區'裝置無法立即停止.請稍候再試 」,這表示還有應用程式還在存取這個裝置,造成無法順利的移除,通常我們只要把存取該裝置的應用程式關閉或移除,有部分軟體需要先把瀏覽到別的資料夾(非外接裝置的資料夾)例如:使用AcdSee、Total Commander之類的軟體。 很多人即使關掉所有的應用程式,無法安全移除的問題還是存在。這是因為系統寫入快取的問題,當寫入資料到外接設備時有些檔案並沒有真正的寫入,而是暫時放到快取,當快取快滿或是要關機時才真正的寫入到外接設備,有時候系統會莫名的忘了寫入...XD,在移除裝置時就會出現上述無法立即停止的錯誤訊息,在網路上爬了一些文,通常這類事件只要 登出再登入 目前的系統使用者帳號就可以獲得解決了。 當然,如果要一直登出登入登出登入,應該會氣到想砸電腦(像辦研討會時,每個講者都是拿USB來插來插去 >. unlocker (236 kb),這款Freeware的軟體,讓你將不需要再當登入登出狂人。 Unlocker 軟體性質: Freeware 最近版本: 1.8.6 作業系統: Windows 2000 / XP / 2003 / Vista 語言界面: 繁體中文 原創公司: Cedrick 'Nitch' Collomb >> Download 滑鼠右鍵 ,在右鍵選單中會多了一個Unlocker的選項,點選Unlocker,這時就會看到是什麼程式或程序還在使用此設備,點選該程式選「 解鎖 」,完成後應該就可以順利在系統列上安全的移除硬體裝置了。

Word的合併列印如何出現「千分位」符號

今天樓下的同事突然問我一個問題,合併列印的時候如何顯示「千分位符號」(逗號),就是12 , 300。在Excel我們可以很容易的為儲存格裡的數字加上千分位的標記,但是儲存格實際儲存的還是只有數字,那個千分位符號是Excel給我們看的一種「格式」。 當我們在Word裡使用Excel做好的報表來合併列印的時候,Word會最真實的將這個數字欄位給讀出來,呈現在合併列印的欄位數值裡,無論在Excel理事不是有設定千分位符號,在Word合併列印後卻沒有出現,所以我們同樣的必須給他加上格式。 Word裡加上格式並不如Excel裡按一下就完成,加上逗號的千分位格式方法如後: 1.在Word裡插入合併列印的欄位變數。 2.在變數上按滑鼠右鍵,選擇「切換功能變數代碼」(也可以直接按Alt+F9),變數會由 經費 >> 變成 { MERGEFIELD "經費" } 。 3.加上格式就是把 { MERGEFIELD "經費" } 在}前加入數字格式參數 /##,###,會成為 { MERGEFIELD "經費" /# ##,### }(這裡指定五位數,以此類推) #:這個格式項目會指定要在結果中顯示的必要位數;如果結果不含該位數的數字,則 Word 會顯示一個空格。 0:這個格式項目會指定要在結果中顯示的必要位數;如果結果不含該位數的數字,則 Word 會顯示 0 (零)。 4.預覽內容,就可以發現千分位(逗號)出現,如果數值有零的話,最好可以換成 /# ##,## 0 ,避免空格出現。 數字格式參數請參考 Microsoft Office Online 。

使用者只能 SFTP 登入自己的家目錄

使用者只能 SFTP 登入自己的家目錄 老師的電腦動畫課堂的期末作品,是開放讓學生透過 FTP 上傳自己的作品及網頁至實驗室的伺服器,由於 FTP 是明碼的封包傳輸於最近升級系統後,便考慮改用 SFTP(SSH File Transfer Protocol)來提供上傳的服務。 提供 SFTP 上傳的同時,希望使用者和以前一樣只能使用 SFTP 無法使用 SSH 登入伺服器。SFTP 為 SSH 的檔案傳輸服務,預設建立帳號的時候使用者同時可以使用這兩種服務。透過 SFTP only + Chroot 設定我們能限制使用者僅能 SFTP 並且無法離開自己的家目錄去到處閒晃。 安裝 OpenSSH 如果安裝的是 Ubuntu Server 應該在安裝過程會安裝 openssh-server 套件,沒有的話可以利用下面的指令安裝。 $ sudo apt-get install openssh-server 新增一個給 SFTP 使用的群組 sftpaccess $ sudo groupadd sftpaccess 修改 OpenSSH 設定檔 編輯 /etc/ssh/sshd_config 設定檔,在約 77 行的地方找到 Subsystem sftp /usr/lib/openssh/sftp-server 註解此行並修改為 Subsystem sftp internal-sftp 。 $ sudo vim /etc/ssh/sshd_config #Subsystem sftp /usr/lib/openssh/sftp-server Subsystem sftp internal-sftp 在檔案的尾端加上下面的片段 Match group sftpaccess ChrootDirectory /home/%u X11Forwarding no AllowTcpForwarding no ForceCommand internal-sftp 建立新的使用者並加入 sftpaccess 群組 在設定檔中,我們設置了 sftpaccess 這個群組套用要做 ChrootDirectory 的設定,所以我們將要限制的使用者,加入這個群組中。 $ sudo useradd ...