Blog
ArchLinux: Nâng cấp một bản Arch khá cũ
Cái này ghi lại đây chứ không biết có ích cho ai không ^^
Hôm thứ 7 vừa rồi mình nâng cấp một bản Arch (chuẩn bị làm offline demo). Bản này cài được cập nhật lần cuối vào tháng 4/2011. Nó cũ đến mức mình quên tất cả thông tin đăng nhập vào hệ thống, phải chạy ở single mode mới đặt lại cái password tàng tàng xài tạm ^^
Sau gần 9 tháng thì mình không thể cài thêm gói gì nữa. Lý do là lệnh pacman -sS foobar không hiện ra gì cả, trắng trơn. Còn pacman cũng sạch sẽ, không có tác dụng. Sau một chút hoảng thì mình nghĩ là
-Syvpacman đã qua phiên bản mới, có sự thay đổi về cấu trúc thông tin lưu trữ về hệ thống các gói.
Cách giải quyết lúc nào cũng thành công: Cài pacman bằng tay :) Nếu máy đã có lynx, links thì quá tốt, nhưng mình quên cài hai chú này nên phải dùng một tài khoản khác chép qua
- gói
pacmantừ core http://www.archlinux.org/packages/core/i686/pacman/ (ở đây là kiến trúci686, bạn nhớ chỉnh lại) - gói
pacmancần tới góiglibc, nên phải tải gói này về: http://www.archlinux.org/packages/core/i686/glibc/ - đến lượt
glibccần tớilinux-api-headers: http://www.archlinux.org/packages/core/i686/linux-api-headers/
May mắn là tới đó là đủ ^^ (Trong một số trường hợp trước đây, năm 2007, mình còn phải tải bằng tay cả các gói libarchive, libfetch
dùng bởi pacman -- Xem thêm bằng pacman -Qi pacman)
Sau khi tải về ba gói trên, bạn có thể cài bằng -U, ví dụ:
$ pacman -U ./glibc-2.15-3-i686.pkg.tar.xz # và tiếp tục cho các gói khác :)
Sau đó thì ngon ơ. Bạn đã có pacman mới nhất, chạy pacman -Syv một phát rồi thích cài món gì thì cài ^^
Lưu ý cuối cùng là khi tải về nhớ chọn đúng kiến trúc của mình. Chính mình đã phải mất công ngồi chờ gần 10 phút để tải về một bản không hợp lệ của glibc đấy ^^
Have fun!
FreeSoft: Differential vs. Incremental Backup
Defintion
- Incremental backups catch day-to-day changes
- Differential backups catch all changes since full
Example
- Sets
- Day 1: {0, 1, 2, D}
- Day 2: {0, 1, 2a, 3}
- Day 3: {0a, 1a, 2a, 3, 4}
- Differential backup
- The first archive: {0, 1, 2, D}
- The second archive: {2a, 3}
- The third archive: {0a, 1a, 2a, 3, 4}
- Incremental Backup
- The first archive: {0, 1, 2, D}
- The second archive: {2a, 3}
- The third archive: {0a, 1a, 4}
bronzeboyvn: SingleClientConnManager: connection still allocated.
WARN/SingleClientConnManager(311): Invalid use of SingleClientConnManager: connection still allocated. WARN/SingleClientConnManager(311): Make sure to release the connection before allocating another one.
You need to consume the response body before you can reuse the connection for another request. You should not only read the response status, but also read the response InputStream fully to the last byte whereby you just ignore the read bytes. You need to consume the content even if the response code is not HttpStatus.SC_OK, and in your exception handlers.
FreeSoft: Linux: duplicated account identities
Linux system supports accounts with duplicated identities
1 $ useradd -u 0 -g 0 toor
2 useradd: UID 0 is not unique
3
4 $ useradd -u 0 -g 0 toor -o
5 # no error reported
This feature is very useful if you have multiple authentication sources on your system :)
There is another way: edit the file /etc/passwd directly and then use the command pwconv to transfer your changes to /etc/shadow. Please note that the order of accounts in /etc/passwd is important.
Ruby: Ruby plus
Let see the differences
1 irb> 65. + (20).chr # some spaces before and after the operator
2 TypeError: String can't be coerced into Fixnum
3 from (irb):21:in `+'
4 from (irb):21
5 from /usr/bin/irb:12:in '<main>'
6
7 irb> 65.+(20).chr # no space before/after the operator
8 => "U"
Ruby is fun, isn't it ?
Tiếng Việt: Viên kim cương được tìm thấy ở mỏ Panna tuyệt đẹp
Trên báo Dân trí mới có bài thế này Phát hiện viên kim cương thô trị giá 1 triệu USD
Phần chú thích cho hình ảnh của viên kim cương, tác giả bài báo ghi
Viên kim cương được tìm thấy ở mỏ Panna tuyệt đẹp (Ảnh: Asianage)
Đọc xong thì không hiểu tác giả muốn nói gì: ở đây là Panna tuyệt đẹp hay viên kim cương tuyệt đẹp? Chắc ý tác giả là "Viên kim cương tuyệt đẹp được tìm thấy ở mỏ Panna", chứ cái mỏ khai thác thì khó có ai khen được.
Dù sao đi nữa, với viên kim cương thô như thế này http://dragula.org/attachments/download/666/kim_cuong.jpg thì phải nói là nó rất có giá trị và đẹp thôi :P
Pentax & Photography: Violet
Tiếng Việt: Giỏi hay khá giỏi? (2 comment)
Hãy đọc thử tựa đề trên báo Pháp luật: "Vận động học sinh khá giỏi kèm học sinh yếu kém". Bản điện tử của bài báo ở đây
Rồi đây là một tựa sách Toán nâng cao bồi dưỡng học sinh khá giỏi lớp 1 (hình bìa cuốn sách xem rõ ở đây http://postimage.org/image/1ikcskrk4/)
Viết "khá giỏi", nghĩa là "giỏi sơ sơ, chưa giỏi thật sự". Nhưng có lẽ ý của các tác giả ở trên là "khá, giỏi" (học sinh khá, học sinh giỏi).
Dấu phẩy này coi bộ quan trọng à, ít để ý là sai ý liền tù tì ^^
ArchLinux: Mẹo: pacapt cho các distro ngoài
Xin chào,
Nếu bạn phải làm việc với nhiều distro khác nhau, thì pacapt có thể là gợi ý hay!
Số là ở nhà và trên máy cá nhân, mình dùng pacman với Arch Linux. Nhưng đi làm dịch vụ hoặc ở công ty, có cả mớ kiểu distro khác nhau: Debian, Centos, Fedora Core, OpenSuse. Nhảy vào những hệ thống đó là mình cứ theo thói quen gõ pacman. Tất nhiên là ... làm gì có!
Ngoài ra, nếu bạn nào dùng Debian, thì sẽ phải khốn đốn với các tùy chọn của apt-get, apt-cache. Ngay cả yum cũng phải gõ dài quá trời yum search, yum install (thua xa pacman nhỉ :)
Vấn đề là có một cái nào chung cho mấy cái package manager đókhông? Không lo! Bạn có thể dùng cái kịch bản bash do mình viết: pacapt (là ghép giữa pacman và apt-get, vì ban đầu mình chỉ viết cho Debian.)
Cách dùng trên Debian, Centos, Redhat, Fedora Core, Ubuntu
1 $ su - root
2 $ wget https://github.com/icy/pacapt/raw/master/pacman \
3 -O /usr/local/bin/pacman
4 $ chmod 755 /usr/local/bin/pacman
Rồi thì xử thôi, ví dụ: cập nhật pacman -Syv, tìm kiếm pacman -sS foobar, cài đặt pacman -S foobar, ...
Chi tiết về kịch bản này bạn có thể xem ở https://github.com/icy/pacapt . Hy vọng là nó có ích :)
Bài này đã đăng ở nhóm thư và (blog) pacman cho người dùng Debian và Ubuntu.
ArchLinux: Mẹo: yaourt . lưu lại gói đóng bởi yaourt
Khi dùng Arch thì sẽ gặp tình huống là phải biên dịch một số phần mềm từ mã nguồn. Chuyện biên dịch thật không đơn giản chút nào, nên khi cần cài một phần mềm nào đó, bạn nên lười nhác theo thứ tự sau:
- Tìm gói với pacman (pacman -sS tên_gói)
- Nếu không có, thêm một số repo không chính thức và quay lại (1). Danh sách các repo. có thể tìm thấy tại (i). (Mình hay dùng
archlinuxfr; ví dụ, để càiruby-1.8thì không cần phải biên dịch mà chỉ cần càipacman -S ruby-1.8.7-svntừrepo.đó) - Cách cuối cùng, khi bạn bắt buộc phải biên dịch từ mã nguồn, thử tìm gói từ AUR (ii): có thể dùng giao diện web, nhưng cách đơn giản là như sau:
- Cài gói
yaourttheo chỉ dẫn ở (iii) - Dùng
yaourt -sS tên góithay chopacman -sSđể tìm kiếm - Dùng
yaourt -S tên góiđể biên dịch và cài đặt gói.Yaourtsẽ tự động lấy thông tin từ AUR (ii), biên dịch gói và cài
đặt vào hệ thống.
- Cài gói
Một trong những điều có thể gây phiền toái là sau khi yaourt biên dịch và cài đặt gói thành công, gói sẽ bị xóa (vì nó được lưu trong thư mục tạm /tmp/). Việc lưu gói lại là cần thiết, để sau này có gì lấy ra xài, đỡ mất công làm lại từ đầu.
Vậy đâu là chìa khóa? Thật đơn giản, bạn chỉ việc mở và chỉnh lại tập tin /etc/makepkg.conf (tập tin này của hệ thống Arch, không phải của riêng yaourt, và điều chỉnh sẽ có tác động lên các chương trình tương tự như yaourt). Cách chỉnh: thay đổi giá trị ba biến PKGDEST, SRCPKGDEST và PACKAGER cho phù hợp, như ví dụ sau:
PKGDEST=/home/pacman/packages SRCPKGDEST=/home/pacman/srcpackages PACKAGER="icy <icy@viettug.org>"
Xong rồi đó bạn. Lần tới, khi dùng yaourt để tạo gói thì các gói của bạn sẽ lưu trong thư mục /home/pacman/packages/. Tất nhiên, bạn phải tạo ra thư mục đó trước.
Ghi chú: Bài này cũng có ở nhóm thư (iv). Các liên kết trong bài:
(i) https://wiki.archlinux.org/index.php/Unofficial_User_Repositories
(ii) http://aur.archlinux.org/
(iii) https://wiki.archlinux.org/index.php/Yaourt
(iv) http://groups.google.com/group/archlinuxvn/t/ee9ac1ff59826d80
Also available in: Atom
