Pages

Thursday, April 23, 2009

Đổi biểu tượng trong General - My Computer

Nhìn demo bên dưới...ai thích làm thì ...ngó tiếp

Với này khi bạn bấm chuột phải vào My Computer bạn sẽ thấy có hình bạn và tên bạn trong đó nữa, nhìn pro lém đó



-Bạn tạo 1 file bằng Notepad với nội dung sau và lưu nó lại với tên Oeminfo.ini (nhớ chọn all file)

[general]
Manufacturer=Tên bạn
Model= có thể là địa chỉ cảu bạn
[Support Information]
Line1="thông tin gì đó"
Line2=""
Line3=""
Line4=""
Line5=""
Line6=""

-Sau đó bạn tạo 1 hình định dạng là .bmp với kích thước khoảng 160X130 lưu lại với tên Oemlogo.bmp
-Copy 2 file vừa tạo vào thư mục C:\WINDOWS\system32 và thử kiểm tra xem
__________________

Wednesday, April 22, 2009

Điện toán Đám Mây

Xu thế hướng tới điện toán đám mây bắt đầu vào cuối những năm 80 với những khái niệm về điện toán lưới (grid computing), khi lần đầu tiên một số lượng lớn các hệ thống được sử dụng để giải quyết một vấn đề, thường là vấn đề khoa học.

Nhiều người cũng đã đặt câu hỏi với chúng tôi về sự khác biệt giữa điện toán lưới và điện toán đám mây. Thực ra, sự khác biệt cơ bản nằm ở cách thức mà từng mô hình điện toán đó cung cấp các tài nguyên cần thiết cho một tải công việc.



* Trong điện toán lưới, trọng tâm được đặt vào việc di chuyển một tải công việc đến địa điểm của các tài nguyên điện toán cần thiết, thường là các địa điểm ở xa và sẵn sàng để sử dụng. Thông thường một lưới là một nhóm máy chủ mà trên đó một nhiệm vụ lớn có thể được chia thành những nhiệm vụ nhỏ hơn để chạy song song. Từ quan điểm này, một lưới có thể được xem chỉ là một máy chủ ảo. Các lưới cũng đòi hỏi các ứng dụng tuân thủ các giao diện phần mềm của lưới.


* Trong một môi trường đám mây, các tài nguyên điện toán như máy chủ, có thể được định hình động hoặc được cắt nhỏ từ cơ sở hạ tầng phần cứng nền và trở nên sẵn sàng một tải công việc. Thêm vào đó, điện toán đám mây không chỉ hỗ trợ điện toán lưới mà nó còn hỗ trợ cả những môi trường không phải là điện toán lưới, ví dụ như kiến trúc Web ba lớp chạy các ứng dụng truyền thống hay ứng dụng Web 2.0.

Vào những năm 90, khái niệm về ảo hóa được mở rộng, vượt khỏi phạm vi các máy chủ ảo sang những cấp độ cao hơn của sự trừu tượng hóa, đầu tiên, đó là nền tảng ảo (virtual platform), và tiếp đó là ứng dụng ảo (virtual application). Điện toán theo nhu cầu (Utility computing) cung cấp các nhóm (clusters) như là những nền tảng ảo dành cho điện toán với một mô hình kinh doanh có thể đo lường được. Gần đây, Phần mềm dưới dạng dịch vụ (software as a service - SaaS) đã nâng mức độ của ảo hóa đến cấp độ ứng dụng, với một mô hình kinh doanh trong đó việc tính cước không dựa trên tài nguyên được sử dụng mà dựa trên giá trị của ứng dụng đối với các thuê bao.

Khái niệm của điện toán đám mây đã tiến triển từ khái niệm về điện toán lưới, điện toán theo yêu cầu và SaaS. Nó là một mô hình đang nổi lên trong đó người dùng có thể có được truy nhập đến các ứng dụng của họ từ bất cứ đâu thông qua các thiết bị được kết nối của họ. Các ứng dụng này nằm tại những trung tâm dữ liệu có tính mở rộng rất lớn trong đó các tài nguyên điện toán có thể được cung cấp động và được chia sẻ để đạt được hiệu quả kinh tế. Sự phổ biến của các thiết bị di động thông minh, kết nối không dây tốc độ cao và các giao diện Web 2.0 phong phú đã biến mô hình điện toán đám mây qua mạng không chỉ trở thành hiện thực mà còn là một cách để giảm mức độ phức tạp của hạ tầng công nghệ thông tin.

Thế mạnh của một đám mây nằm ở khả năng quản lý cơ sở hạ tầng cùng với sự trưởng thành và tiến bộ của công nghệ ảo hóa để quản lý và sử dụng tốt hơn các tài nguyên vật lý thông qua sự tự động hóa việc cung cấp, tạo bản sao, cân bằng tải công việc, giám sát và xử lý yêu cầu thay đổi hệ thống.

copy & paste

Thursday, April 16, 2009

Câu đố Zui 2

Phần tóm tắt hay đầu bài đăng

1. CRAVEN "A" - Chơi rồi anh về em nhé anh
2. HEINEKEN - Hôn em ít nên em khều em nhèo - Nếu em khều em nhéo iêu em hơn.
3. TIGER - Tình iêu gởi em rồi.
4. SANMIGUEL -????? Bó tay
5. CARBERG - Các anh ráng lấy sức bế em ra giường

1. Trên lông, dưới lông ban đêm lông trên đè lông dưới
---> Lông Mi

2. Bên nào của con vịt có nhiều lông hơn?
---> Bên ngoài...

3. Đang thèm thì gặp cô nàng
Anh vỗ cái này, nảy rốn cô nàng lên
Sướng sao mà sướng lại rên
Của mua mất tiền nhọc lử người ra
---> Cái Điếu Cày (Ống Điếu)

4. Các bro trổ tài giúp gia đình tiều phu này vượt cây cầu để qua bên kia núi heeee.

_Một gia đình có 05 thành viên cần đi qua bên kia núi trong thời gian là 30s. _Mỗi lượt đi phải cầm theo cây đèn và chỉ tối đa là 02 người cho mỗi lượt.
_Tốc độ lần lượt của từng người khi qua cây cầu là: người anh 01s, người em 03s, người mẹ 06s, người cha 09s, người ông 12s.
_Khi 02 người cầm đèn qua cầu thì tính theo tốc độ của người chậm hơn. Và 01 người bất kỳ khi đã qua cầu phải cầm đèn quay lại để tiếp tục lượt đi mới và cứ tiếp tục như vậy cho đến khi cả gia đình tiều phu này qua hết trong vòng từ 30s trở xuống là thắng.
Kekeke........
--->01,06 wa trước. 01 về bên này
01,03 tiếp theo. 01 ve ben nay. đưa đèn cho
08,12 đi qua. 03 về bân nay
01,03 qua. hết. chỉ cần có 29s thôi.

5. Bình sinh là loại trái cây
Cắt đầu em nói rằng đây miếu chùa
Bệnh này thật không dễ đùa
Thắc mắc thêm hỏi( dấu hỏi) rằng ưa bệnh này.
Đố các bro là trái gì...
---> Trái Cam.


Các câu đố Zui 1

1/Một cặp vộ chồng ở ANh ,chồng là người Châu Phi,vợ Châu Mỹ.Hỏi đứa con sinh ra có răng màu gì?
==>[I]COn mới sinh ra làm gì có răng,nên ko có màu gì hết[/i]

2/Xe gì vô ga rùi muh vẫn nằm ì,tắt máy?
==> Xe lửa


3/Con gì đi cũng nằm,đứng cũng nằm,ngủ cũng nằm,ăn cũng nằm?
==> COn rắn

4/ ANh có C...
EM có L...
Hai đứa mình cùng Đ...
Để rồi có C...
Đọc ra là thế nỳ :
ANh có Cờ
EM có Lờ
Hai đứa mình cùng Đờ
Để rồi có Cờ
Điền từ thích hợp vào chỗ trồng
==> Anh có Củi
Em có Lửa
Hai đứa mình cùng Đốt
Rồi sẽ có Cơm

1.xưa kia em trắng như ngà
bởi chăng ngủ lắm nên đà em thâm
lúc bẩn chàng đáng chàng đâm
đến khi rửa sạch chàng nằm lên trên .
==> Cái giường tre

2.cây khô mọc rễ trên đầu
sông sâu chẳng sợ,sợ cầu bắc ngang .
==> Cái ghe

3.có một gia đình có hai đứa con.Đứa đầu tay chân bình thường,đứa thứ hai chỉ có một cánh tay phải.Hỏi tại sao?
==> Chẳng lẽ 2 cái tay phải?

4.Máy chém mà chẵng chém ai .xuân hè chăm việc,đông thì ngủ lun.
==> Máy gặt

5.Không tay cũng chẳng có chân
Chỉ có mũi nhọn và thân dài thòong
Xỏ xiên là một biệt tài
Đến khi gãy mũi còn ai cậy nhờ
Đố là cái gì?
==> Cây kim

1.Tại sao người châu Phi không thích ăn kem que chocolate?
==> Vì sợ cắn nhầm ngón tay

2.có sống mà chẳng có lưng
có lưỡi có mũi mà không có mồm
Con gì vậy?
==> COn dao

3.2 con rùa vào hang.Hỏi con rùa nào ra trước và tại sao?
==> COn ràu đực ra trước ,vì con rùa cái còn nằm ngửa trong hang

4.TRên một bàn tay,hỏi ngón nào nặng nhất?
==> Ngón áp út vì chúng ta ko giơ ngón đó lên nỗi và vì..đeo nhẫn cưới nên nặng nhất

5.Thằng Tý có 1 cái
Thằng Tèo có 1 cái
Vợ Tý xài của Tý không xài của Tèo
Ông Thằng chùa có 1 cái mà không xài
Hỏi cái đó là cái gì?
==> Cái tên

1.Thằng Tèo hơn thằng Tí " cái đó "
Ông chồng cho bà vợ " cái đó "
Thầy tu có " cái đó " mà không được xài...
Đố các bạn " cái đó " là cái gì ??????????
==> Cái tên

2.Bành ra ba tấc vẫn còn thưa
Khép lại đôi bên thịt vẫn thừa
Em ơi nhấp nhấp cho thêm đã
Không thôi một hồi nước chảy ra
==> Cái quạt xếp

3.Có một cây cầu nối liền hai làng với nhau.Một bên đang có khủng bố ,bên kia không.Muốn đi từ bờ bên đây wa bên kia mất 8 fút dù đi bằng bất cứ phương tiện gì (từ dưới chân cầu đi lên tới giữa cầu mất 4 fút).Ở giữa cầu có một tên lính gác khù khờ chẵng biết gì về thời gian cả ,lại có tật hay ngủ gật ,cứ 4 fút lại thức một lần(sao nhiều số 4 thế ).
Có một đứa bé muốn trốn sang làng bên kia.Các bro hãy nhanh nhanh tìm cách giúp nó wa mà không bị tên lính gác đuổi về.
==>đi đến gần giữa cầu ,canh lúc thằng lính gần thức thì way người lại.... thằng lính đần đó sẽ đuổi về làng mà thằng bé muốn sang.

4.Con gì vừa dẻo vừa dai... vừa dài vừa ngắn... vừa cứng vừa mềm...
==> COn lươn, con rắn

1. Một thằng mù ra cầu SG đứng từ sáng tới chiều hỏi nó thấy gì?
==> Thấy mõi chân

2.có 6 que diêm làm sao xếp thành 4 hình tam giác?
==> lấy 3 que xếp thành hình số 4,3 que còn lại xếp thành hình tam giác đặt nằm bên cạnh

3.Con gì đập thì sống ,không đập thì chết?
==> COn tim

4. Tuấn Và Nam cùng ngồi trên 1 cành cây , 1 cơn gió mạnh thổi wa làm cho cả Tuấn lẫn Nam đều té . Dzậy trên cây còn mấy ngừ ?
==> Còn 1 người tên Và

1.Không cổ không đầu mắt ở trên lưng
Không xương không gân, ma mình vẫn cứng
==> Con cua

2.Chặt không đứt,bứt không rời,đốt không cháy
==> Nước

3. Khi tiệc tàn,cô dầu chú rễ vào phòng hỏi việc đầu tiên họ làm là gì?
==> Đếm tiền

4.Vua gọi người iu là Ái khanh,Ái phi...Vậy vua gọi vợ bằng gì?
==> Bằng miệng

5.Trên một bãi cát vắng ,không gian rất êm đềm không một cơn gió.mọi thứ đều yên tĩnh.Trên bãi cát có một người đàn ông đang bước những bước chân nặng nề.Ông ta đi được một lúc thì bổng xoay đầu lại.Điều kỳ lạ là ông ta không thấy dấu chân của ông ta.
Theo các bạn thì chuyện gì đã xảy ra??
==> Vì ông ta đi ngược

Wednesday, April 15, 2009

How to restore Show Desktop icon in quick launch bar

I think many of you might accidentally deleted the Show Desktop icon in the quick launch bar. I also did accidentally deleted the Show Desktop icon at quick launch bar. Finally i found the solution to re create or restore this Show Desktop icon in quick launch bar again.


Just follow the steps below and you will restore Show Desktop icon back in your quick launch bar:-

Click Start -> Run -> type Notepad and enter
Copy the contents below to your Notepad and save as Show Desktop.scf

[Shell]
Command=2
IconFile=explorer.exe,3
[Taskbar]
Command=ToggleDesktop

Once the file created, drag the file to the Quick Launch bar.

You will see the icon above if you restore the Show Desktop successfully
Done! You just restore Show Desktop icon.
Note: By default Notepad save all document as txt file. To save your file as .scf file extension, type the full file name together with the extension and simply select the “Save as type” from txt to “All files” and click “Save”

There are another way to restore show desktop icon in quick launch bar:-

Click Start -> Run and type regsvr32 /n /i:U shell32.dll and enter
Done! You just restore your Show Desktop icon

Monday, April 13, 2009

HOWTO reset CentOS or RHEL root password

Restart

'e'dit
navigate to second grub.conf line (kernel)
'e'dit the second line of the 'grub' bootloader to

append 1 (" 1") to the end of the line
or
append S (" S") to the end of the line
or
append "single" to ro root=LABEL=/ single

enter

'b'oot

Reset Root Password

# passwd


Shutdownn

# poweroff

Phần còn lại

Friday, January 9, 2009

Tạo một File rỗng (empty) với kích thước chỉ định

Nếu bạn có cần phải tạo một tập tin cụ thể về kích thước, và không có nội dung, Windows XP, và các version cao hơn (Windows NT, 5,1 +), có fsutil.exe công cụ command-line.

Những cú pháp để sử dụng fsutil.exe để tạo một tập tin mới là:

fsutil file createnew FileName kích_thước_file

nơi FileName là tên của tập tin, chẳng hạn như test.txt, hoặc c: \ thư mục \ test.doc, và kích thước là kích cỡ của tập tin trong byte.

Wednesday, December 31, 2008

Giới thiệu về RPM

RPM là tên viết tắt của RedHat Package Manager, là một chương trình cho phép người dùng quản lý các phần mềm được cài đặt trên Linux một cách mềm dẻo và hữu dụng. Với RPM bạn có thể cài đặt các gói phần mềm một các tự động, có thể gỡ bỏ các phần mềm đã được cài một cách an toàn , có thể kiểm tra tính toàn vẹn của các chương trình, có thể tự đóng gói phần mềm riêng cho mì nh, có thể...rất nhiều...!

I- RPM với người dùng

1. Cài đặt phần mềm

Cú pháp đầy đủ là :

rpm -i (hoặc --install) [ các tuỳ chọ n ]

các tuỳ chọ n là :

-h (hoặc --hash) In kí tự ‘#’ trong quá trình cài đặt
--test Chỉ thử cài đặt, không cài thật--percent Hiện số phần trăm trong quá trình cài đặt
--excludedocs Không cài các tài liệu kèm theo gói
--includedocs Cài cả tài liệu đi kèm (ngầm định)
--replacepkgs Cài đè một bản mới lên gói đã cài đặt trước đó
--replacefiles Có thể chép đè lên file của gói khác
--force Bỏ qua sự xung đột giữa các gói và các file
--noscripts Không thực hiện các script pre-install và post-install
--prefix Ðổi thư mục cài đặt ngầm định của gói (nếu có thể)
--ignorearch Không kiểm tra dòng máy tính (i386, i686, noarch..)
--ignoreos Không kiểm tra hệ điều hành (OS)
--nodeps Không kiểm tra tính phụ thuộc (dependencies)
--ftpproxy Dùng máy tí nh như là một FTP proxy
--ftpport Dùng cổng làm FTP port

Khi một gói nào đó được cài đặt, chương trình rpm sẽ thực hiện các công việc sau :

- Kiểm tra tính phụ thuộc của gói. Một số gói không hoạt động đúng nếu không có một gói nào đó được cài đặt từ trước. Hoặc nó kiểm tra xem có làm thay đổi tính phụ thuộc của các gói đã được cài đặt trước hay không.

Kiểm tra tình trạng xung đột giữa các file. Trong phần này chương trình rpm phải thử cài đặt các file, sau đó kiểm tra xem có xung đột hay không, hoặc thử thay đổi các file cấu hình. Sau đó kiểm tra lại.

- Thực hiện các script trước lúc cài đặt. Một số gói trước khi được cài đặt phải thực hiện một số công việc nhất định nào đó (back up chẳng hạn). Ðây là các shell script được tạo ra bởi người đóng gói.

- Sửa lại các file cấu hì nh đang có trong hệ thống. Một trong những ưu điểm khác của RPM với các trình quản lý cài đặt khác là cách chúng xử lý các file cấu hình. Khi một phần mềm được cài đặt, chúng cần phải thay đổi một số file cấu hình có sẵn trong hệ thống, rpm không chép đè các file cấu hình mới lên các file cũ mà nó phân tích tình trạng của các file cũ để chỉ thực hiện các thay đổi cần thiết (xem phần sau)

- Bung nén các file từ gói cài đặt vào các vị trí thí ch hợp. Bước này mới thật sự là copy các file từ gói cài đặt vào hệ thống, sau đó các thuộc tính của file cũng được rpm xác lập.

- Thực hiện các script sau cài đặt. Tương tự như các script trước lúc cài đặt, bước này đối với một số gói cũng cần được thực hiện, ví dụ như chạy ldconfig để cho các thư viện liên kết động mới có thể được dùng ngay.

- Lưu lại tất cả các thông tin trên vào cơ sở dữ liệu. RPM có một cơ sở dữ liệu rất lớn lưu trữ tất cả các công việc mà nó thực hiện với các gói cùng các thông tin về các gói. Nó sẽ sử dụng cơ sở dữ liệu này để tra cứu thông tin về sau hoặc kiểm tra xung đột.

Ðể cài đặt một gói, đơn giản là dùng lệnh :

rpm -i

Nhớ là tên gói và tên file của gói là khác nhau ví dụ tên gói có thể là : eject-1.2-2 nhưng tên file của gói lại là eject-1.2-2.i386.rpm

Các tùy chọn:

- Thay vì chỉ ra tên file cụ thể nằm trong hệ thống file của máy tính, ta có thể chỉ ra một URL chứa gói cài đặt. Ví dụ :

rpm -i ftp://ftp.redhat.com/RPMS/example-1.0-2.noarch.rpm

Có thể một lúc nào đó bạn cần phải cung cấp cả tên người dùng và mật khẩu để truy cập file đó, lúc đó cần một URL đầy đủ như sau :

ftp://elnino:passwords@ftp.redhat.com/RPMS/example-1.0-2.noarch.rpm

Nhưng xem ra để cho mật khẩu hiện lên như vậy là điều không nên. Bạn có thể chỉ cần cung cấp tên người dùng trong URL, rpm sẽ hỏi bạn mật khẩu và lúc đó mới nhập mật khẩu theo cách không hiện lên màn hình.

- Thông thường thì chỉ cần một dòng lệnh rpm -i nh- vậy là đủ. Nó sẽ thực hiện cài đặt mà không hiện gì ra màn hình cả, trừ khi có lỗi khi cài đặt. Nếu muốn hiện thêm một số thông tin bạn có thể thêm các tùy chọ n -v,-h hoặc -vv, hoặc --percent cứ thử xem.

- Có lúc bạn chỉ thử cài một gói nào đó để xem nó có xung đột hoặc cần một file nào đặc biệt không. Hãy dùng tùy chọn --test

- Có lúc một gói nào đó bị hỏng hoặc mất một số file cần cài lại. Bạn có thể dùng thêm tùy chọ n --replacepkgs. (Không phải là nâng cấp, bạn phải cài lại đúng gói đó theo đúng version và release)

- Một gói nào đó chứa một file mà file đó trong hệ thống đang thuộc về một gói khác (cơ sở dữ liệu của rpm lưu trữ tất các những thông tin này). Khi cài gói mới, rpm sẽ cảnh báo sự xung đột file này và không thực hiện cài đặt.

Nhưng nếu cần thiết phải chép đè như vậy thì hãy dùng thêm tùy chọ n --replacefiles (một file backup sẽ được rpm tạo ra *.rpmsave). Cảnh giác với điều này vì nếu một lúc nào đó bạn xóa gói cài sau ra khỏi hệ thống, file bị ghi đè kia tất nhiên sẽ biến mất. Lúc đó cần phục hồi lại bằng file .rpmsave.

- Khi một gói nào đó (A chẳng hạn) phụ thuộc vào sự tồn tại của một gói nào đó có trước (ví dụ là B). Bạn có thể sẽ không cài được gói A. Nhưng nếu bạn vẫn muốn cài gói A trước, rồi lúc nào đó cài gói B sau thì có thể dùng tùy chọ n --nodeps . Hãy lợi dụng tùy chọn này khi bạn không biết thứ tự của các gói khi cài đặt.

- Thông thường các gói cài đặt sẽ cài đặt các file của mì nh vào một số thư mục nhất định nào đó trong hệ thống. Tuy nhiên có một số phần mềm cho phép người dùng cài đặt vào một vị trí khác (relocateable). Lúc đó bạn phải thêm tùy chọn --prefix vào trong câu lệnh rpm -i.

- Tùy chọn --noscript : RPM thật sự còn làm nhiều công việc hơn là chỉ copy các file đơn thuần. Nó có các mã thi hành cần thiết trước và sau cài đặt, và điều này rất có ý nghĩa với sự hoạt động của một số phần mềm . Nhưng có lúc oái oăm nào đó bạn biết thừa là các script đó làm gì và không muốn chúng thực hiện thì hãy thêm tùy chọn --noscript.

2. Xóa một gói ra khỏi hệ thống

Ðể xóa một gói ra khỏi hệ thống, dùng lệnh :

rpm -e (hoặc --erase) [ các tùy chọ n ]

Các tùy chọ n :

--test Thử xóa, không xóa thực sự.
--noscripts Không thực hiện các mã pre-uninstall và post-uninstall
--nodeps Không kiểm tra tí nh phụ thuộc.

Khi một gói được xóa khỏi hệ thống, rpm thực hiện các công việc sau :

- Kiểm tra xem có một gói nào trong hệ thống phụ thuộc vào gói sẽ bị xóa không.
- Thực hiện script pre-uninstall nếu có.
- Kiểm tra các file cấu hì nh có bị thay đổi không, nếu có sẽ lưu lại một bản copy.
- Tra cứu cơ sở dữ liệu rpm để xóa các file của gói đó.
- Thực hiện các script post-uninstall nếu có.
- Xóa các thông tin liên quan đến các gói trong cơ sở dữ liệu.

3. Nâng cấp một gói

Nâng cấp một gói cách thức cũng tương tự như cài đặt gói. Chỉ khác là tham số không phải -i mà là -U .

Nhưng cần chú ý : bạn có một file .rpm, sẽ có 2 khả năng, một là phần mềm đó hoàn toàn chưa có trên hệ thống của bạn, như vậy bạn chọn tham số -i để cài mới, nếu phần mềm đó đã tồn tại trong hệ thống nhưng với phiên bản cũ hơn, bạn phải chọn tùy chọn -U , nếu chọn -i sẽ xảy ra tì nh trạng xung đột các file giữa gói cũ và gói mới.

Thêm một chú ý nữa là đôi khi bạn cần cài một gói cũ hơn đè lên một gói có phiên bản mới hơn đang tồn tại trong hệ thống, lúc này bạn cần thêm tham số --oldpackage

4. Lấy thông tin về các package

Một trong những điểm thú vị nhất về rpm là nó luôn sẵn sàng cung cấp những thông tin cần thiết về toàn bộ các gói có trong hệ thống của bạn.

Cú pháp đầy đủ như sau :

rpm -q (hoặc --query) [ tùy chọ n ]

+ Chọ n các gói cần cung cấp thông tin (gọ i là query cho tiện):
* pkg1 pkg2 .. pkgN Danh sách các gói cần query (đã cài đặt).
* -p Query một file rpm có thể chưa cài.
* -f Query gói nào chứa file .
* -a Query tất cả các gói đã được cài đặt.
* --whatprovides Query gói nào cung cấp .
* -g Query gói nào thuộc nhóm .
* --whatrequires Query gói nào cần đến .

+Chọ n loại thông tin cần hiển thị :
* (Bỏ trống các tham số sau) Hiện ra tên gói.
* -i Hiện các thông tin chung về gói.
* -l Hiện danh sách các file trong gói.
* -c Hiện danh sách các file cấu hì nh.
* -d Hiện danh sách các file tài liệu.
* -s Hiện danh sách các file cùng với trạng thái.
* --script Hiện ra các script install, uninstall và verify.
* --queryformat Hiện thông tin theo một dạng riêng yêu cầu.
* --dumb Hiện tất cả các thông tin của từng file.
* --provides Hiện các file dùng chung mà gói cung cấp.
* --requires Hiện các file (gói) mà gói cần có.

Có rất nhiều tình huống cần đến việc lấy thông tin từ một hoặc một vài gói nào đó. Chẳng hạn như bạn gặp một file bất kỳ trong hệ thống. Bạn muốn biết file đó thuộc về gói nào, hãy dùng lệnh : rpm -qf . Hoặc bạn có một gói chương trình, bạn không biết nó có gì , chức năng của nó như thế nào... , không cần cài đặt nó, bằng lệng sau bạn có thể có các thông tin đó : rpm -qilp . Bạn có một phần mềm đã được cài đặt trong hệ thống từ rất lâu rồi nhưng không biết nó cài vào đâu và tài liệu ở đâu.v.v. tất cả các thông tin đó đều được đáp ứng bằng rpm -q.

Tips : Bạn có thể sinh ra một danh sách các tên gói đã được cài đặt trong hệ thống bằng lệnh rpm -qa > tên_file_kết_quả . Nếu cần nhiều thông tin hơn, cứ việc thêm các tham số cần thiết vào.

Tips : Bạn có thể có một cách hiển thị thông tin riêng của mì nh. Ví dụ như chỉ đưa ra tên gói và dung lượng mà không đưa ra các thông tin khác (không dùng -i). Hãy dùng thêm --queryformat ‘%{NAME}\n%{SIZE}\n\n’ , chú ý về khuôn dạng của xâu format :

- Tất cả xâu queryformat phải được đặt trong một cặp nháy đơn
- Các thẻ được đặt trong cặp {}, trước mỗi thẻ cần có ký tự %.
- Bạn có thể quy đị nh độ rộng của các trường thông tin cần đưa ra bằng cách thêm một con số n vào trước tên thẻ (sau ký tự %).

Tips : Nhiều khi bạn không rõ có bao nhiêu loại thẻ l\và tên của chúng thế nào, hãy dùng rpm -querytag . Sẽ có rất nhiều thẻ hữu dụng, hãy thử lệnh đó.

Tips : Bạn cần tì m một số gói có một xâu nào đó trong tên, chẳng hạn cần tìm các gói có tên tận cùng là sh, hãy dùng lệnh :

rpm -qa | grep -i sh

Bạn sẽ được ash, bash csh..v.v.

Tips : Dành cho những người muốn xây dựng cơ sở dữ liệu về rpm. Chẳng hạn như lập một bảng hai cột, một cột là tên gói, một cột là thông tin mô tả ngắn gọn (summary hoặc description đều được) :

rpm -qa --queryformat ‘%{NAME}#%{Summary}\n’ > result

Sau đó dùng MS Word convert nội dung tệp result sang table với sapate text at #.

4. Dùng RPM để kiểm tra các gói đã cài đặt

Sau một thời gian vận hành hệ thống, có thể có lúc bạn tự hỏi : "Hệ thống của mì nh có gì trục trặc không nhỉ, có file nào bị lỗi không ? Trạng thái của các phần mềm đang chạy như thế nào ?” Tất cả các vấn đề đó đều được giải quyết ổn thỏa bằng rpm -V.

Cú pháp đầy đủ là :

rpm -V ( --verify, -y) [ các tùy chọ n ]

Các tùy chọn có thể là :

* pkg1 .. pkgN Danh sách các gói cần kiểm tra.
* -p Kiểm tra chí nh file .rpm (không dùng rpmdb).
* -f Kiểm tra gói nào chứa file .
* -a Kiểm tra tất cả các gói.
* -g Kiểm tra các gói thuộc về nhóm .
* --noscripts Không chạy script kiểm tra.
* --nodeps Không kiểm tra tí nh phụ thuộc.
* --nofiles Không kiểm tra thuộc tí nh của file.

Như đã nói ở các phần trước, toàn bộ thông tin về các gói đều được lưu trữ trong cơ sở dữ liệu của rpm. Kể cả là nội dung của từng file ( rpm sử dụng thuật toán MD5 để lưu trữ thông tin về nội dung của một file ). Do đó, mọi sự thay đổi của các gói rpm đều được lưu lại. Lệnh rpm -V sẽ kiểm tra lại tất cả các thông tin đó xem có khớp với ban đầu hay không. Khi có một lỗi nào đó sảy ra, rpm -V sẽ cung cấp các thông tin về lỗi phát hiện được, có các loại lỗi sau :

1. S Kích thước file.
2. M File mode.
3. 5 MD5 check sum.
4. D Số thiết bị (minor và major).
5. L Link file.
6. U Người sở hữu file.
7. G Nhóm sở hữu file.
8. T Thời điểm thay đổi nội dung của file.
9. c File cấu hì nh.
10. missing Thiếu file.
11. Một file cụ thể bị lỗi.

- Một cách kiểm tra khác :

Khi bạn có một file .rpm. Bạn đang phân vân xem có nên cài nó hay không, bạn đang không biết là liệu gói đó có là nguyên bản hay không ? Có bị một tay hacker nào đó thay đổi thông tin cũng như chương trì nh trong đó không ?. Bạn cần đến lệnh sau :

rpm -K (hoặc --checksig) [ các tùy chọ n ]

ở đây chỉ có một tùy chọ n riêng là --nopgp : không kiểm tra chữ ký PGP.

Khi bạn lấy một phần mềm nào đó về, nếu hợp pháp, bạn sẽ được nhà sản xuất cung cấp một file chữ ký số PGP. Hãy lưu thông tin này vào cơ sở dữ liệu của pgp trong hệ thống của bạn, bằng lệnh sau :

pgp -ka RPM-PGP-KEY ./somekeys.pgp

lúc này chữ ký đó đã có trong hệ thống của bạn. Khi bạn gặp một phần mềm nào đó, họ (ai đó) nói rằng đó là phần mềm của một hãng A nổi tiếng nào đó, mà bạn đã có chữ ký này lưu trong hệ thống rồi..Hãy kiểm tra lời họ nói :

rpm -K

Lệnh trên sẽ so sánh chữ ký số pgp của gói với chữ ký lưu trong hệ thống của bạn để xem có đúng là nhà sản xuất nọ đã đóng gói nó không. Tiếp theo nó kiểm tra kích cỡ file, kiểm tra MD5 checksum..để đảm bảo là file .rpm đó không bị hỏng trên đường truyền (qua internet chẳng hạn). Không nhất thiết là mỗi gói đều phải được ký với một chữ ký PGP nào đó, chi tiết hơn một chút về PGP sẽ được đề cập đến ở phần sau.

II- RPM cho người đóng gói phần mềm

Có hai kiểu đóng gói phần mềm, một là đóng gói chương trì nh (binary, hai là đóng gói mã nguồn (source code). Một gói binary là một gói chương trì nh thực sự, cài nó vào hệ thống tức là bạn cài đặt một phần mềm. Còn gói source code là một gói chứa các file mã nguồn của một phần mềm nào đó. Thông thường một gói source code sẽ có một file nén, các file patch, và một file .spec để xây dựng lên gói binary. Chuyện có một gói source code mà xây dựng thành một gói binary là vấn đề cũng cần phải bàn kỹ hơn...

Trước khi đưa ra cú pháp của lệnh đóng gói rpm, cần đề cập đền một số vấn đề sau.

1- Cấu trúc thư mục dành cho quá trì nh đóng gói

RPM cần một số thư mục đặc biệt để phục vụ cho quá trình đóng gói (RedHat ngầm định một thư mục gốc, đó là /usr/src/redhat (Ta sẽ thay đổi điều này, sẽ đề cập đến trong file rpmrc ở phần cuối !!!).

* /usr/src/redhat/SOURCE Chứa các file source code (file nén), các file patch, các file icon. Nếu ta cài đặt một gói source code, nó sẽ ném các file mã nguồn vào đây.

* /usr/src/redhat/SPECS Chứa các file .spec điều khiển quá trình xây dựng gói. Khi cài một gói source code, file .spec của gói binary cũng được copy vào đây.

* /usr/src/redhat/BUILD Thư mục diễn ra qua trình xây dựng gói

* /usr/src/redhat/RPMS Thư mục mà các gói binary được tạo ra sau quá trình xây dựng. Thật ra còn có các thư mục cấp nhỏ hơn là i386, i686, noarch chứa gói ứng với từng hệ thống cụ thể.

* /usr/src/redhat/SRPMS Thư mục mà các gói source code được tạo ra đặt ở đây.

2- File .spec trái tim của quá trì nh đóng gói rpm

Ðể đóng gói được một phần mềm, rpm cần đến một file mô tả tất cả các quá trình nó cần tiến hành, tất cả các thông tin liên quan đến phần mềm đó, file .spec là một file text thông thường (bạn có thể nghĩ file .spec như là cái gì đó gần giống với Makefile).

Có thể chia nó ra thành các phần sau :

Phần thông tin chung

Ðây là phần chứa tất cả các thông tin về gói mà bạn xây dựng. Nó sẽ được hiện ra khi người dùng query với tham số -i nh- đã nói ở trên.

Phần này bao gồm :

Name: Tên gói (tên chương trì nh), tên này sẽ được kèm theo trong tên file rpm.

Version: Số hiệu phiên bản, số này nên gồm một số phiên bản chính (major) một dấu chấm "." và hai số phiên bản nhỏ (minor). Hai số này sẽ được ghép vào trong tên file rpm tạo ra.

Release: Lần phát hành, thường mỗi lần đóng gói người ta lại tăng số này lên (không nhất thiết là phải thay đổi nội dung của phần mềm). Số này cũng được ghép kèm vào tên file rpm.

Group: Tên nhóm, tên này chỉ ra một nhóm của phần mềm đó. Khi người dùng cài gói vào hệ thống của họ , gói sẽ thuộc nhóm đó. Tên nhóm cha phân cách với nhóm con bởi dấu "/". Về lý thuyết thì ta có thể đặt bất cứ cái tên nhóm nào mà ta muốn, nhưng nên chú ý tới cách mà hệ thống sẽ dùng phần mềm này sắp xếp các gói, nhờ đó mà người dùng của chúng ta có thể query dễ dàng các thông tin về gói.

Copyright: Bản quyền, đây là thông tin xác đị nh bản quyền của phần mềm, có GNU hay không, có thương mại hay không...

Summary: Là các thông tin ngắn gọ n nói lên chức năng, đặc điểm của phần mềm, thông thường chỉ nằm trên một dòng (thông thường), nếu có xuống dòng thì cũng không chứa ký tự xuống dòng \n.

Distribution: Nhà phân phối - tên của nhà phân phối bản Linux mà gói này được dùng trong bản Linux đó.

Vendor: Nhà sản xuất - tên của nhà sản xuất phần mềm, là tổ chức sẽ chịu trách nhiệm về sản phẩm này.

Packager: Người đóng gói, hoặc tổ chức thực hiện việc đóng gói phần mềm.

Source: Nơi lưu trữ source code mà người dùng có thể lấy sau này (một URL).

Do đặc tí nh của các chương trình thuộc khuôn khổ GNU, một phần mềm thường có cả source code được cung cấp miễn phí . Ðây thông thường là một địa chỉ url có tận cùng là một tên file .src.rpm. Tên của gói source này phải trùng với tên file đặt trong thư mục /.../SOURCE. Cần chính xác nếu ta đị nh build gói source.

URL: Là đị a chỉ chứa các thông tin liên quan đến phầm mềm này, là nơi người dùng sẽ nhận được các thông tin về phần mềm đó một cách trực tuyến.

%description: Là mô tả chi tiết hơn về gói phần mềm đó, nó có thể chứa nhiều dòng, có thể có các ký tự xuống dòng.

Provides: Các file dùng chung có thể có ích cho các chương trình khác (thư viện động chẳng hạn..

Require: Cần một số gói nào đó có trước, hoặc một số file nhất đị nh nào đó (phần lớn là các thư viện động)..

Conflict: Một hoặc một số chương trì nh nào đó xung đột với phần mềm này, cần phải chỉ ra chúng ở đây.!

Còn rất nhiều tag khác nữa (xem trong maximum rpm trang 397)...

Phần chứa các script

Phần này chia thành 2 loại script khác nhau, một là loại script cần cho quá trình xây dựng gói, hai là script cần cho quá trình cài đặt.

- Các script cần cho quá trì nh đóng gói :

%prep
........

Phần này là các script chuẩn bị cho quá trình đóng gói (nó có thể chứa các macro rất tiện lợi mà rpm cung cấp), nhưng nếu bạn định đóng gói lại một chương trình đang chạy ổn định trong hệ thống thì phần này sẽ không có gì ..! Oái oăm thay, công việc thật sự hiếm khi lại như vậy. Nhiều khi bạn phải đóng gói một phần mềm từ source code .? Sẽ liên quan đến Makefile, config, patch... Ðó là cả một mảng vấn đề lớn,,,? tôi sẽ dần tìm hiểu, sorry! Xin hãy tạm thời chấp nhận ở mức đơn giản này..!

%build
........

Ðã có phần %prep dường như là đủ chỗ cho bạn đặt các script của mình rồi nhưng để cho mọi đoạn mã được rõ ràng, phần này vẫn là các script giúp bạn tiến hành xây dựng gói rpm từ source code. Thông thường chỉ là một lệnh make (càng làm mới càng thấy công cụ make thật quá tuyệt vời).

Nhưng này !! nếu bạn mới tập tành build rpm từ các file đang chạy ổn định trong hệ thống thì bỏ trống nó và cả phần dưới đây nhé ...!* ! Thank and sorry.!

%install
.........

Lại phải cám ơn công cụ make một lần nữa ! ở đây cũng chỉ cần một lệnh make install có lẽ là đủ cho nhiều trường hợp. (Chú ý đọc dòng in ngiêng ở trên!)

%clean
........

Nghe cái tên đã biết nó là gì ..! Thật vậy, nếu trong quá trình đóng gói, bạn có để lại rác rưởi gì thì hãy dọn dẹp đi bằng các script trong phần này.

- Các script dành cho quá trì nh cài đặt gói :

%pre
.......

Phần này là đoạn script cần thi hành trước khi gói thật sự cài đặt. Theo kiểu những chuyên gia dùng UNIX thì hiếm khi có gì phải làm ở phần này. Nhưng nếu chúng ta định cung cấp phần mềm cho enduser thì bạn hãy cứ thoải mái thêm các script thông báo gì đó, hỏi gì đó..ở đây...!!!?

%post
........

Ðoạn script sau phần này sẽ được thực hiện sau khi gói đã được cài đặt thành công. Có nhiều lý do hơn để viết script ở đoạn này, bạn có thể chạy ldconfig để các thư viện động có thể được dùng ngay, có thể cập nhật lại các file cấu hình, các init script, có thể restart lại một số tiến trình deamon nào đó để có thể dùng ngay được mà không cần reboot máy tí nh...

%preun

Ðến một lúc nào đó phần mềm của bạn không được user tin dùng nữa thì họ sẽ loại bỏ nó. Trước khi họ thật sự loại bỏ nó, bạn thích là gì ở đây thì tuỳ...!

%postun

Lúc này thì phần mềm của bạn ở hệ thống đó đã tiêu rồi...!! Bạn cần phải trả lại trạng thái cũ như trước khi gói đó chưa được cài đặt. Hãy nhớ là bạn đã sửa những file nào, đã thêm gì vào đâu, rồi giải quyết hậu quả ở đây...!! Sau đó chớ quên chạy ldconfig nếu như bạn có một thư viện dùng chung nào đó, restart lại một số dịch vụ có liên quan, nói chung là không nên để người dùng phải reboot lại hệ thống.

Ngoài ra còn một phần script nữa là :

%verifyscript

..... là các script mà bạn muốn chạy để thực hiện các công việc ngoài các công việc mà lệnh rpm -V làm..Ví dụ như là kiểm tra nội dung một file cấu hì nh nào đó không phải thuộc gói của bạn..v.v.

Ngoài ra (lại ngoài ra), còn có các macro %setup và %patch do rpm cung cấp giúp bạn tiện lợi hơn trong quá trì nh xây dựng gói rpm

Phần danh sách các file

%files

Phần này bạn phải chỉ rõ danh sách các file mà gói của bạn có, mỗi file trên một dòng.

Chẳng hạn :

/usr/bin/myprogram
/usr/lib/mylib.so

-Nếu có file cấu hình thì thêm %config vào trước tên file đó, ví dụ :

%config /etc/myprogram.conf

-Nếu là file tài liệu thì thêm %doc vào trước tên file đó, ví dụ :

%doc /usr/doc/myprogram/README

Nếu bạn muốn kèm theo cả thuộc tính file, hãy thêm %attr(filemode,owner,group) vào trước tên mỗi file. Thường thì owner,

group đều là root (hiếm khi ai đó đóng gói phần mềm chỉ riêng cho một người dùng cụ thể trên một hệ thống cụ thể..!)

Tips: Bạn có thấy là việc sinh ra một danh sách file loằng ngoằng như vậy là rất chán không ? Tôi chưa tìm hiểu rõ về việc sinh ra danh sách file từ source code (mà tôi đoán là có tool--hãy thử autoconf). Nhưng nếu bạn không chê mẹo nhỏ sau thì hãy dùng :

- Tạo một thư mục temp nào đó, coi nó như là /

- Chép tất cả các file thuộc gói vào trong thư mục temp đó nhưng theo cấu trúc mà nó thật sự sẽ tồn tại trong hệ thống (có /usr/bin, có /etc...)

- Tại thư mục temp, dùng lệnh find > list

- Bạn sẽ có một danh sách các file trong file list. Hãy edit lại một chút bằng cách loại bỏ tất cả các xâu “./” ở đầu mỗi dòng, nhanh thôi mà..! (bằng mc)

- Sau đó dùng tí nh năng chép vào clipboard của mc (^+insert).

- Mở file .spec cũng bằng mc, paste vào sau %files (Shift+insert).

Ðược chứ..!

Viết một thôi một hồi như vậy, bây giờ mới đến lúc bạn cần phải build :

3- Cú pháp lệnh rpm -b :

rpm -b [các tuỳ chọ n]

là một trong các ký tự sau :

* p Thi hành %prep.
* c Thi hành %prep và %build
* i Thi hành %prep, %build và %install
* b Thi hành %prep, %build, %install và đóng gói binary.
* a Thi hành %prep, %build, %install đóng gói cả binary và source
* l Chỉ kiểm tra %files (kiểm tra danh sách file)
* s Chỉ đóng gói source code.

Các tuỳ chọn là :

* --test Chỉ thử đóng gói.
* --clean Dọ n dẹp sau khi đóng gói.
* --sign Ký chữ ký số PGP vào gói.
* --buildroot Thay thư mục BUILD ngầm định.
* --buildarch Ðóng gói riêng cho một hệ thống nhất định (i386, i686, hoặc noarch)
* --buildos Ðóng gói riền cho một hệ điều hành cụ thể (Linux, Sun Solaris...)

Còn rất nhiều phần thú vị nữa chưa viết hết được :

-RPM cho người lập trì nh với các hàm giao tiếp với các ngôn ngữ lập trì nh như C, python..

-Tạo và ký chữ ký số vào gói rpm.....

Tôi sẽ cố gắng cùng một vài người nữa hoàn thành tài liệu này sao cho thật đầy đủ.

Sunday, December 28, 2008

Tổng quát cách cài đặt gói và phần mềm trên Linux

Xin tổng hợp cách cài đặt phần mềm và các gói trên Linux để các bạn có thể tiện theo dõi.
Khi release các gói thường có các dạng sau:
- .tar.gz hoặc .tar.bz2
- .rpm (đối với debian là .deb)

Đối với các file dạng .tar.gz và .tar.bz2 thì lấy về xong gõ:

đối với .gz:
gunzip file_name.tar.gz && tar -xf file_name.tar

đối với .bz2
bunzip2 file_name.tar.bz2 && tar -xf file_name.tar

nó sẽ bung ra thành một thư mục có tên file_name.

Sau đó tùy theo cái gói đó nó release ra sao mà làm theo nó. Nếu có file configure thì chuyển vào thư mục đó và gõ :

1. Buoc 1:
./configure

nếu muốn chỉ định nơi sẽ cài gói đó thay cho mặc định thì gõ:
./configure --prefix=/<đường dẫn>

2. Sau đó:
make

3. rồi:
make install

Đây là tổng quát của quá trình cài 1 gói trong Linux, đối với một vài gói khi release nó có thể đã confige sẵn rồi, không có file configure nữa thì chỉ cần làm 2 bước sau thôi.
Cũng có thể có một vài gói không có configure gì hết mà nó gói hết script trong một file install, chỉ việc chạy nó như là chạy setup trên Win vậy. Việc này thì các bạn phải đọc readme để biết sẽ phải làm sao. Trên đây là release dạng source. Còn đối với các gói dạng .rpm là dạng binary đã built sẵn thì làm như sau:

rpm -Uivh tên_gói.rpm

Tham số -U có nghĩa là update, cái này không cần nếu bạn cài mới.
Các gói rpm sẽ được cài mặc định vào nơi mà lúc release người ta chỉ định, muốn biết nó được cài vào đâu bạn phải đọc document đi kèm, thường là nó sẽ tạo link hoặc file chạy trong /usr/bin

Sau khi cài xong gói rpm, nếu muốn tìm xem nó được cài vào đâu bạn có thể dùng lệnh sau:
rpm -ql

Nếu không nhớ chính xác tên gói mà chỉ nhớ một phần thì bạn có thể tìm ra bằng cách:
rpm -qa | grep

Khi cài 1 gói, có thể nó sẽ báo thiếu gì đó, mún bỏ qua thì thêm option để bỏ qua check dependency --no-deps :
rpm --no-deps ...

Câu lệnh trên là ta query location (-l) và available (-a) đối với các gói.

Trên đây là 2 động tác thường dùng nhất đối với người dùng Lix và sự thật là đối với những người mới dùng thì cách thứ 1 đối với gói source khi cài sẽ gặp không ít khó khăn, các bạn nên lấy gói rpm về cài sẽ dễ dàng hơn nhiều.

Một số trang để down rpm:
www.freshrpms.net
rpm.livna.org
www.freshmeat.net
www.rpmfind.net

Hoặc lên chính trang của distro mà bạn đang dùng để search. rpm hiện nay trên Internet nhiều vô kể và mirror cũng nhiều vô kể, các bạn hãy vào google và search từ khóa "fedora rpm" thử xem

2/
YUM là viết tắt của chữ "Yellow dog, Updater, Modified", nó là một cách để cài đặt phần mềm rất dễ dàng đơn giản, khi các bạn down cái gói source về để build sẽ gặp phải những trở ngại như thiếu các gói cần thiết - mà đây lại là công việc tốn thời gian công sức nhất của chúng ta, thay vào đó, YUM sẽ tự động tìm các gói cần thiết và cài luôn cho chúng ta, rất nhẹ nhàng.
Yêu cầu để sử dụng yum là: bạn phải connect vào internet để nó down phần mềm về cho bạn. Các bạn này không có net thì đừng đọc bài này ........ hic

Đầu tiên các bạn download nó về tại đây (http://linux.duke.edu/projects/yum/download/2.4/yum-2.4.2.tar.gz). Phiên bản stable hiện tại là 2.4.2. Hiện đã có bản 2.5.x nhưng đó là phiên bản developer, các bạn nếu không có ý định sẽ hỗ trợ phát hiện bugs và phát triển nó thì đừng dùng.
Sau khi lấy về các bạn tiến hành cài đặt như ở trên đã hướng dẫn. Sau đó bạn hãy bỏ cái file /etc/yum.conf cũ của bạn đi và thay bằng file này (http://www.fedorafaq.org/samples/yum.conf). Các bạn cũng có thể không cần thay nếu các bạn đọc hướng dẫn config yum tại đây (http://wiki.linux.duke.edu/ManYumConf). File ở trên là một file mẫu cho những người mới dùng và không muốn phải làm nhiều.
Trong file config đó có một chỗ khá quan trọng đó là tham số

gpgcheck = x

Tham số này cho biết sẽ kiểm tra cái Public key hay không mỗi khi cài đặt phần mềm. Public key này để chứng nhận rằng cái gói rpm đó được lấy từ đúng nguồn tin cậy, không phải là ở một nơi cù bơ cù bất nào đó. Nếu bạn để là "0" nó sẽ không kiểm tra, bạn sẽ đỡ rắc rối khi cài đặt nhưng nguy hiểm. Nếu bạn để là "1" thì mỗi khi cài nó sẽ kiểm tra, và muốn cho nó biết có gì để kiểm tra bạn phải import Public key từ các nơi cung cấp rpm.

Ex: để cung cấp Public key cho yum từ thằng livna, bạn gõ:

rpm --import http://rpm.livna.org/RPM-LIVNA-GPG-KEY-i386

Các public key này các bạn search trực tiếp trong trang cung cấp rpm sẽ có.

Vậy là xong, bây giờ bạn có thể dùng yum. Cách sử dụng rất đơn giản.

Để kiểm tra xem một phần mềm nào đó có bản update chưa:
yum check-update

Để cài đặt một phần mềm:
yum install

Và còn rất nhiều, bạn chạy
yum --help

để biết thêm, ở trên là 2 câu lệnh hay dùng nhất. Còn yum GUI thì dễ rồi, các bạn có thể tự xem tại đây (http://linux.rasmil.dk/cms/modules/dokuwiki/doku.php?id=yumex:yumex) hoặc dùng yum để cài :

yum install yumex

(Sưu tầm)

Wednesday, December 24, 2008

Howto: Linux Add User To Group

How can I add a user to a group under Linux operating system?

You can use useradd or usermod commands to add a user to a group. useradd command creates a new user or update default new user information. usermod command modifies a user account i.e. it is useful to add user to existing group. There are two types of group. First is primary user group and other is secondary group. All user account related information is stored in /etc/passwd, /etc/shadow and /etc/group files to store user information.


useradd example - Add a new user to secondary group

Use useradd command to add new users to existing group (or create a new group and then add user). If group does not exist, create it. Syntax:

useradd -G {group-name} username

Create a new user called vivek and add it to group called developers. First login as a root user (make sure group developers exists), enter:

# grep developers /etc/group
Output:

developers:x:1124:

If you do not see any output then you need to add group developers using groupadd command:

# groupadd developers

Next, add a user called vivek to group developers:
# useradd -G developers vivek

Setup password for user vivek:
# passwd vivek

Ensure that user added properly to group developers:
# id vivekOutput:

uid=1122(vivek) gid=1125(vivek) groups=1125(vivek),1124(developers)

Please note that capital G (-G) option add user to a list of supplementary groups. Each group is separated from the next by a comma, with no intervening whitespace. For example, add user jerry to groups admins, ftp, www, and developers, enter:

# useradd -G admins,ftp,www,developers jerry
useradd example - Add a new user to primary group

To add a user tony to group developers use following command:
# useradd -g developers tony

# id tony
uid=1123(tony) gid=1124(developers) groups=1124(developers)
Please note that small -g option add user to initial login group (primary group). The group name must exist. A group number must refer to an already existing group.
usermod example - Add a existing user to existing group

Add existing user tony to ftp supplementary/secondary group with usermod command using -a option ~ i.e. add the user to the supplemental group(s). Use only with -G option :
# usermod -a -G ftp tonyChange existing user tony primary group to www:
# usermod -g www tony