Node.js 的 LTS 計畫

Node.js 在 4.0 開始啟動 LTS (Long Term Support) 計畫:「Node v4.0.0 (Stable)」。

可以參考「Node.js Long-term Support Working Group」這邊的說明。最主要的重點是生命週期,首先是每六個月就會放一次新版,跟 Ubuntu 相同,也都是四月與十月:

In parallel, we will be branching a new Stable line of releases every 6 months, one in October and one in April each year.

每個 LTS 版本將會有 18 + 12 = 30 個月的支援期:

This means that there will be overlapping LTS branches being maintained throughout the year, each receiving attention for a total of 30 months (LTS plus Maintenance).

這張圖說明了 LTS 與維護的時間線:

有個 LTS 的指標可以挑了...

英國政府對電腦的資安管理機制:Ubuntu 14.04 LTS 的部份

Ubuntu Insights 上看到「UK Government issues Ubuntu 14.04 LTS Security Guidance」,英國政府發布了 Ubuntu 14.04 LTS 的資安規範:「End User Devices Security Guidance: Ubuntu 14.04 LTS」,在裡面甚至還包括了 script 幫你處理。

可以在「End User Devices Security and Configuration Guidance」的「Per-platform Guidance」看到其他作業系統的資安管理規範。

在企業規劃內部的資安規範時也可以拿來參考看看?

桌機的 Ubuntu 12.04 升級到 14.04

拖了好久,總算利用連假的時間 (而且在台灣!) 把桌機的 Ubuntu 12.04 (Precise) 升級到 14.04 (Trusty)。整個升級的過程果然充滿了地雷... XD

這邊當作雜記記錄下來,希望對之後的人升級有幫助。其中比較重要的前提是,我是用 Unity,所以升級的流程大致照著官方的指示做就可以了,對於使用 GNOME 的人,需要再多研究看看?

升級前的注意事項:

  • 假設當初有裝很多 UNSUPPORTED 的 repository (這邊是指官方的 *.archive.ubuntu.com 裡有一些沒有被官方支援的項目,像是 universe 與 multiverse),要記得到 /etc/apt/sources.list 裡暫時註解掉。
  • 跑 do-release-upgrade 時的語系要用英語系 (Cen_US 之類的,像是 env LANG=C LANGUAGE=C LC_ALL=C do-release-upgrade 這樣執行),不然會造成 Python 的錯誤訊息 (decode error,因為是用 ascii 去解),原因是 /etc/apt/sources.list.d/ 下面在替換 precise -> trusty 時會增加註解,而這個註解在 zh_TW.UTF-8 狀態下會出現中文 UTF-8,於是就造成 parser 爛掉... XD

升級完成後的注意事項:

  • Fix Ubuntu 把該關的關掉。
  • /etc/apt/sources.list.d/ 下面的東西整理過,有些是 backport 回 12.04 的,在 14.04 就可以省略,有些則是要找替代方案。

升完後還沒解決的問題:

  • scim 的狀態很詭異,在 Terminal 裡有時候可以用但有時候不能用,而在 Google Chrome 裡面是完全不能用。目前暫時拿 ibus 撐著。
  • 天氣的 indicator 好像要換掉,暫時沒有花時間研究。

對於沒有技術背景的人來說,升級的工程太浩大 (有大量的錯誤訊息要查,然後一個一個解決),還是建議當 Windows 的方法處理會比較好... (重灌未必比較慢,真的...)

在還沒摸熟前,公司的電腦應該還是維持在 12.04 吧,不然就是等下次連假的時候弄...

HHVM 的 LTS

相較於 Ubuntu 的五年 LTS (Long Term Support),HHVM 的 LTS 只有 48 周:「HHVM Long Term Support」。

不過考慮到 PHP 的開發週期,這個時間長度不算太意外:

每 24 周會有一次 LTS release,而每個 LTS 支援 48 周。

今年 2014/09/11 要出的 HHVM 3.3 將會支援到明年 2015/08/13,這樣對於會需要使用 HHVM 的單位應該還算可以接受?

等穩定下來後 (不知道多久後) 也許會再拉長 LTS 的支援時間?

Ubuntu 14.04 LTS 出版

Ubuntu 的正式公告:「Ubuntu 14.04 LTS (Trusty Tahr) released」。

新裝的機器當然沒有問題,而 13.10 要升級到 14.04 已經提供升級指引了:「Upgrade from Ubuntu 13.10 to 14.04 LTS」。

不過 12.04 LTS 要升級到 14.04 LTS 的人要等到七月:

Users of 12.04 LTS will be offered the automatic upgrade when 14.04.1 LTS is released, which is scheduled for July 24th. For further information about upgrading

來重灌好了 (把 Windows 的習慣拿過來用...)。

Canonical 宣佈 2014 年四月 17 日發布 Ubuntu 14.04 LTS

在「Ubuntu 14.04 LTS: the cloud platform of choice」這篇:

Canonical today announces Ubuntu 14.04 LTS will be released on 17th April 2014, bringing a new level of reliability, performance and interoperability to cloud and scale out environments with support and maintenance for five years.

恭喜了,第三個 LTS 版本!

Ubuntu 14.04 LTS Trusty 最後階段開跑

code name 為 Trusty Tahr 的 Ubuntu 14.04 在最終要釋出的準備了:「Final Freeze for Ubuntu 14.04 LTS (trusty) at 2100UTC today」。

Ubuntu 的 LTS 規劃也找到一個大家都可以接受的平衡點了:整個社群與商業團體都會把 LTS 版本列為重點支援,固定兩年 release 一次的時間表讓這些人 (社群與商業團體) 也都很清楚知道什麼時間點要更新。

而 LTS 也不是完全凍結而只更新安全部份:(下面出自「List of Ubuntu releases」)

Like other LTS releases, 12.04 will include point releases that bundle updates to shorten downloads for users installing the release later in its lifecycle. The point releases and dates are: 12.04.1 (23 August 2012), 12.04.2 (14 February 2013), 12.04.3 (scheduled for release on 22 August 2013, but actually released on 23 August 2013) and 12.04.4 (6 February 2014).

對於 Point release 沒有更新的軟體,用 PPA 的方式讓社群去維護 LTS 平台上的支援。

測試 GitLab 的方式...

除了在「doc/install/installation.md」有手動安裝的方式外,在「GitLab CE Downloads」有提供 Ubuntu 12.04 LTS 64bits 的 deb 檔可以安裝。

官方在「GitLab Omnibus project」提供的安裝方式是:

apt-get install openssh-server postfix
dpkg -i ooxx.deb
gitlab-ctl reconfigure

不過在 Docker 裡面會卡在設定 redis 的部份而無法成功,卡在:

Recipe: gitlab::redis
  * user[gitlab-redis] action create (up to date)
  * directory[/var/log/gitlab/redis] action create (up to date)
  * directory[/var/opt/gitlab/redis] action create (up to date)
  * template[/var/opt/gitlab/redis/redis.conf] action create (up to date)
  * directory[/opt/gitlab/sv/redis] action create (up to date)
  * directory[/opt/gitlab/sv/redis/log] action create (up to date)
  * directory[/opt/gitlab/sv/redis/log/main] action create (up to date)
  * template[/opt/gitlab/sv/redis/run] action create (up to date)
  * template[/opt/gitlab/sv/redis/log/run] action create (up to date)
  * file[/opt/gitlab/sv/redis/down] action delete (up to date)
  * link[/opt/gitlab/init/redis] action create (up to date)
  * link[/opt/gitlab/service/redis] action create (up to date)
  * ruby_block[supervise_redis_sleep] action run

後來是用 Vagrant (跑 VirtualBox) 才測試成功。就可以看到 PostgreSQLRedis 整包都被放到 /opt 下了...

提供給要玩 GitLab 的人參考看看...