Thursday, 27 November 2014

[BSD] DragonFly BSD 4.0 chào Việt Nam

Một trong vài tin hot nhất trong giới công nghệ trong ngày hôm qua (25 Nov 2014) chính là việc DragonFly BSD release bản 4.0.

..WARNING:: Bài viết hướng tới super user / experienced user, có thể coi như 1 bài tut và làm theo từng bước.

DragonFly BSD (DFBSD) là gì?
"dragon fly" trong tiếng Việt là con chuồn chuồn.


Một hệ điều hành UNIX-like, tách ra và phát triển từ hệ điều hành FreeBSD bản 4.8 (BSD version 4.x được đánh giá là phiên bản hệ điều hành ổn định (stable) nhất của mọi thời đại)
Tác giả chính: Matthew Dillon, từng là một developer của FreeBSD, lý do tách ra do mâu thuẫn về quan điểm khi có một thay đổi lớn về kiến trúc ở bản FreeBSD 5 (đọc thêm ở trang chủđây)

Để làm gì?
Chơi cho vui :3
Với một hệ điều hành nhỏ, lượng developer không lớn, sẽ dễ dàng hơn cho các dân chơi hiểu sâu hơn về hệ điều hành, kernel ..., bởi với lực lượng không đông đảo, người ta sẽ tập trung nguồn lực vào những thứ được xem là quan trọng nhất. Xem thêm về system design ở đây.

Bài viết này sẽ thử nghiệm cài đặt một workstation chạy trên một máy ảo Virtualbox để dev python với vim, pip, tmux trên DragonFly BSD 4.0

1. Download và cài đặt
Link trang chủ: http://www.dragonflybsd.org/download/
Link download trực tiếp: http://mirror-master.dragonflybsd.org/iso-images/dfly-x86_64-4.0.1_REL.iso.bz2

Tải xong giải nén dùng lệnh:
bunzip2 filepath
Git repo (~ 800 MB) cho developer:
# git clone git://git.dragonflybsd.org/dragonfly.git dragonfly
Quá trình cài đặt rất hiển nhiên, không có gì phải nói nhiều nếu bạn đã từng cài Ubuntu server hay một OS nào đó tương tự.

Vài chú ý:
Từ Virtualbox, chọn OS Type là BSD, chọn FreeBSD 64bit (DFBSD tách ra (fork) từ FreeBSD 4.8 nên có thể xem nó như FreeBSD, và bản 4.0 đã bỏ hoàn toàn việc hỗ trợ kiến trúc 32bit i386), nên chọn > 10GB đĩa cứng, RAM 512 là thừa dùng.
Chọn setting cho máy ảo vừa tạo, mục network set là Bridged Adapter để có thể ssh vào một cách dễ dàng khi cài đặt xong.

Sau khi boot lên từ file ISO đã down, enter để chọn lựa chọn đầu tiên, đăng nhập với user ``root`` để nghịch trực tiếp hoặc user ``installer`` để thực hiện cài đặt (Không cần nhập password). Xem hướng dẫn chi tiết ở đây.

2. Cài đặt workspace để dev python2.7
2.1. Cài đặt các package
DFBSD sử dụng pkg để quản lý các binary package (tương tự apt hay yum trên các GNU/Linux OS).
pkg update
pkg install python27 py27-pip vim tmux
chọn ``y`` để xác nhận và đợi một lúc (hoặc có thể cài tmux trước để chạy lệnh cài đặt ở một cửa sổ riêng).

Sau khi cài đặt thành công:
# python
Python 2.7.8 (default, Nov 14 2014, 13:35:42)
[GCC 4.7.4 [DragonFly] Release/2014-06-12] on dragonfly4
Type "help", "copyright", "credits" or "license" for more information.
>>> print "Hello Vietnam"
Hello Vietnam

Nếu đã cài đặt thành công mà không gõ được lệnh, hãy thử tìm trong thư mục /usr/local/bin và chạy file chương trình bằng path đầy đủ. Ví dụ:
dùng /usr/local/bin/python thay vì chỉ gõ python.

Có thể dùng pip để cài các Python package cần thiết khác như virtualenv, ipython, ipdb, requests ...
# pip install virtualenv ipython ipdb requests
...
Successfully installed virtualenv ipython ipdb requests
Cleaning up...

Có một điều hơi thú vị là khi cài vim thì nó lại depends ruby 2.x, tcl86, nên cài xong vim thì cũng có cả ruby, tcl chơi luôn:
# irb
irb(main):001:0>

# tclsh8.6
% echo hello thon
hello thon

Xem thông tin về các pkg đã cài đặt:
# pkg info | tail # hoặc dùng less thay tail để xem đầy đủ thay vì 10 pkg cuối danh sách
tcl86-8.6.3                    Tool Command Language
tiff-4.0.3_4                   Tools and library routines for working with TIFF images
tmux-1.9.a_2                   Terminal Multiplexer
vim-7.4.430_2                  Improved version of the vi editor
xcb-util-0.3.9_3,1             Module with libxcb/libX11 extension/replacement libraries
xcb-util-renderutil-0.3.9      Convenience functions for the Render extension
xextproto-7.3.0                XExt extension headers
xineramaproto-1.2.1            Xinerama extension headers
xorg-fonts-truetype-7.7_1      X.Org TrueType fonts
xproto-7.0.26                  X11 protocol headers

Xem thêm các option khác ở ``man pkg``.

2.2 cấu hình SSH server
để có thể ssh vào và code :3
Do DFBSD setting mặc định cho SSH server  khá "bảo mật", nên phải chỉnh lại một chút cho tiện.

mở file
sửa 2 dòng tương ứng thành giá trị sau:
PermitRootLogin yes
PasswordAuthentication yes
rồi restart ssh server:
# /etc/rc.d/sshd restart
Stopping sshd.
Starting sshd.
Giờ gõ ifconfig để xem địa chỉ của máy ảo và ssh từ ngoài vào với user root / password đã set lúc cài đặt.

Quá trình thực hiện các điều nói trên rất trơn chu và không gặp bất cứ lỗi gì, nên nếu ai gặp phải vấn đề gì thì... cố mà tìm hiểu.

3. Cài trình duyệt để xem phim con ếch
Ở đây sẽ dùng w3m để làm text-base web brower.
# pkg install w3m
Avalon repository is up-to-date.
All repositories are up-to-date.
The following 2 packages will be affected (of 0 checked):

New packages to be INSTALLED:
        w3m: 0.5.3_4
        boehm-gc: 7.4.2_1

The process will require 2 MB more space.
902 KB to be downloaded.

Proceed with this action? [y/N]: y
Fetching w3m-0.5.3_4.txz: 100%  698 KB 102.1k/s    00:07    ^
Fetching boehm-gc-7.4.2_1.txz: 100%  204 KB  41.7k/s    00:05
Checking integrity... done (0 conflicting)
[1/2] Installing boehm-gc-7.4.2_1: 100%
[2/2] Installing w3m-0.5.3_4: 100%
# w3m dragonbsd.org
w3m: Command not found.
# /usr/local/bin/w3m dragonbsd.org
w3m: Can't load dragonbsd.org.
# /usr/local/bin/w3m dragonflybsd.org # (mở shell mới sẽ không cần gõ full path nữa)
4. Linh tinh
DFBSD sử dụng redmine để quản lý project 

Hết.