Hiển thị các bài đăng có nhãn Tutorials. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn Tutorials. Hiển thị tất cả bài đăng

19.6.15

25 Free File Spreader or Multi Upload Websites to Mirror Your Files (https://www.raymond.cc) + Neembuu Uploader + File & Image Uploader

Most computer users will know about downloading files from the internet, and using bittorrent is possibly still the most popular way for the majority of people to get hold of what they’re looking for. Another hugely popular method is to download files from one-click file hosting websites such as RapidShare, Rapidgator or Megashares etc. It’s no secret that a lot of cyberlocker hosting websites are used to host pirated software such as movies, music, games, applications and much more. They just about all have free download options, are reasonably fast and can possibly help avoid putting any website hosting dubious links in direct trouble with the authorities.
Since the number of file hosting websites stretches into the hundreds if you count them all, it could be time consuming and troublesome for uploaders to upload files to multiple different hosts which can help keep the files available for longer. To go some way in helping to solve this problem, a number of online services have appeared in recent times where you only need to upload a file to the one website, and it will in turn upload the file to multiple hosting sites at once, saving a lot of time and effort of reuploading when the link is dead.

Here we list a total of 25 file spreading or multi host uploading services which will allow you to distribute your files onto several cyberlocker sites at once. They are arranged in alphabetical order and we’ve listed the number of supported hosts, upload methods, file size limit and any other worthwhile information where available. Some sites will also offer extra options and hosts if you sign up for a free account.
1filesharing
File upload method: Local or remote URL.
Number of supported upload hosts: Upload to 5 hosts from a possible 35.
File size limit: 200MB
Other notes: Send download URL to your email.

BikUpload
File upload method: Local or remote URL.
Number of supported upload hosts: Upload to 14 mirrors at once.
File size limit: 900MB
Other notes: None

DigZip
File upload method: Local File or remote upload.
Number of supported upload hosts: Up to 8 hosts from a total of 17.
File size limit: 1000MB (host permitting)
Other notes: 30 second countdown timer to downloads.

list of DirectMirror hosts
File upload method: Local file or remote URL.
Number of supported upload hosts: Select 8 mirrors from 42 file hosts.
File size limit: Unknown
Other notes: Optional file description.

Embed Upload
File upload method: Remote or local upload
Number of supported upload hosts: Supports up to 9 from a total of 27 hosts.
File size limit: 800MB per file.
Other notes: Enter description and send download link to email. Can upload 5 files at once.

exoshare
File upload method: Local file or remote URL upload (remote is registered users only).
Number of supported upload hosts: Can choose 12 from 134 file mirrors
File size limit: Limits listed per host.
Other notes: 10 free uploads as an unregistered user then need a free account. Accepts uploading executable files. Link send to email option.

FlashMirrors
File upload method: Browse for local file only.
Number of supported upload hosts: Can upload to all 30 supported hosts at once.
File size limit: 2GB (host permitting).
Other notes: Option to send download link via email and enter a short description for the file.

Full2Mirror
File upload method: Remote or local.
Number of supported upload hosts: Upload to all 21 mirrors at once.
File size limit: Unknown
Other notes: Page also links to Full2Maza which appears to be an older service with 37 mirror hosts.

GigaMirror
File upload method: Local file or remote URL.
Number of supported upload hosts: Can choose 8 from a total of 48.
File size limit: 400MB
Other notes: Send URL link to email. 5 second countdown timer.

10. Go4Up
Go4Up
File upload method: Local file or remote URL.
Number of supported upload hosts: 12 file mirrors.
File size limit: Upload file size limits listed on separate page .
Other notes: None

MaxMirror
File upload method: Local or remote uploads.
Number of supported upload hosts: Unregistered users can choose up to 8 from a possible 47 hosts.
File size limit: 400MB (1GB for registered users)
Other notes: Send download link to email. 7 second countdown timer to download.

MirroraFile
File upload method: Browse for local file.
Number of supported upload hosts: Supports uploading to 11 hosts.
File size limit: 100MB per file.
Other notes: None

MirrorCreator
File upload method: Local or remote upload, drag and drop supported.
Number of supported upload hosts: Choose up to 12 from a possible 33 mirrors.
File size limit: 400MB
Other notes: File can be password protected, links can also be emailed to you. Batch uploading desktop tool available.
MirrorEngine
File upload method: Local file upload only.
Number of supported upload hosts: Choose 8 from a total of 16 file mirrors.
File size limit: 20MB
Other notes: Ad supported.

MirrorStack
File upload method: Local file or remote.
Number of supported upload hosts: 22 hosts can be uploaded to at once.
File size limit: Found in the FAQ .
Other notes: Select up to 20 files for upload. Separate desktop uploader application. Optional file description can be entered.

MirrorUpload
File upload method: Remote and local file with drag and drop supported.
Number of supported upload hosts: Free service supports up to 12 of 43 services.
File size limit: 1GB with 2 simultaneous downloads.
Other notes: Desktop uploading tool available.

MultiMirrorUpload
File upload method: Local file or remote.
Number of supported upload hosts: Up to 8 hosts.
File size limit: 200MB
Other notes: 30 second timer.

MultiUpload.biz
File upload method: Local or remote uploads.
Number of supported upload hosts: Upload to 6 from a total of 14 hosts.
File size limit: File host dependent.
Other notes: Can upload 10 files at once, also accepts uploading executable files and a file description.

MultiUpload.nl
File upload method: Local source only.
Number of supported upload hosts: 6 hosts supported with a 7th direct download.
File size limit: Unknown
Other notes: Can upload 10 files at once, also accepts uploading executable files. Has a batch uploading desktop tool. Mirror links are ad supported.

20. Qooy
Qooy
File upload method: Local or remote uploads.
Number of supported upload hosts: Choose 6 from a possible 14 mirrors.
File size limit: Unknown
Other notes: Send email of links.

UploadMirrors
File upload method: Local or remote uploads.
Number of supported upload hosts: Upload to 14 from a possible 27 hosts.
File size limit: Unknown
Other notes: Send link to email option.

Uploadonall
File upload method: Local or remote uploads.
Number of supported upload hosts: Choose up to 10 mirrors from 14.
File size limit: 300MB
Other notes: None

UploadSeeds
File upload method: Local file, remote or drag and drop.
Number of supported upload hosts: Choose 15 from a total of 49 hosts.
File size limit: 100MB
Other notes: Option to password protect upload, enter file description.

UpMirror
File upload method: Remote or local file upload.
Number of supported upload hosts: Select up to 10 of 64 file hosts in total.
File size limit: 150MB
Other notes: 10 second timer to downloads, ad supported. Link to email option.

YMirror
File upload method: Local or remote URL.
Number of supported upload hosts: Upload to 15 services at once.
File size limit: 500MB
Other notes: Send download URL to your email. Ad supported.

Note: Although all these services were working at the time of writing, with the volatile nature of cyberlocker services and different websites changing their code or going down almost daily, we can’t really advise you which is the best. You will have to try out which services best suit your needs as they’re all free to use and each will have its own set of pro’s and cons.

//////////////////////////////////////////////

+2 TOOL

File & Image Uploader Download
http://www.datafilehost.com/d/47e59f36
http://hugefiles.net/kjbr5ur59ekj
https://www.sendmyway.com/ro7lsdu021b4
http://www.solidfiles.com/d/39dad7a187/
http://www36.zippyshare.com/v/lkJMcEJe/file.html


Neembuu Uploader Download
http://www.datafilehost.com/d/97b03b14
http://hugefiles.net/43tmkapx2fh9
https://www.sendmyway.com/uug4xn5wdo8f
http://www.solidfiles.com/d/5ed82bf49a/
http://www49.zippyshare.com/v/OGFZv3w5/file.html

15.6.12

Chuẩn viết code và thiết kế giao diện trong C#

CHUẨN VIẾT CODE VÀ THIẾT KẾ GIAO DIỆN TRONG C#

(Bản tóm tắt)

I.      QUY ĐỊNH ĐẶT TÊN

- Pascal                      BackColor
- Camel                      backColor
- Uppercase               BACKCOLOR

1.1.           Tên biến

- Kiểu Camel

1.2.           Tên hằng số

- Sử dụng Uppercase
- Gạch nối giữa các từ

1.3.           Tên kiểu Enum

- Tên kiểu Pascal
- Không tiền, hậu tố

1.4.           Tham số


- Tên kiểm Camel

1.5.           Tên thuộc tính

- Tên kiểu Pascal

1.6.           Tên phương thức

- Tên kiểu Pascal

1.7.           Sự kiện

- Kiểu Pascal
- Thường có hậu tố: EventHandler

1.8.           Tên lớp

- Tên kiểu Pascal
- Không sử dụng gạch chân

1.9.           Giao diện

- Tên kiểu Pascal
- Bắt đầu bằng tiền tố “I”

1.10.       Không gian tên

- Cú pháp: [Tên công ty].[Tên Công nghệ][.Đặc trưng][.Thiết kế]
Ví dụ: SDGVN.Web.Utility
SDGVN.Web.ModuleBase

1.11.       Tên tiền tố của các điều khiển

Control type Prefix Example
Panel pnl pnlGroup
Check box chk chkReadOnly
Combo box, drop-down list box cbo cboEnglish
Command button btn btnExit
Common dialog dlg dlgFileOpen
Control (used within procedures when the specific type is unknown) ctr ctrCurrent
Data dat datBiblio
Data-bound combo box cbo cboLanguage
Data-bound grid grd grdQueryResult
Data-bound list box lst lstJobType
 Repeater rpt drpLocation
Date Time Picker dtp dtpPublished
Form frm frmEntry
Frame fra fraLanguage
DataGridView dgv dgvPrices
GridView grd grdProduct
DataList dtl dtlOrders
Horizontal scroll bar hsb hsbVolume
Image img imgIcon
ImageList ils ilsAllIcons
ImageButton ibt ibtNext
HyperLink hpl hplHome
LinkButton lbt lbtClick
Label lbl lblHelpMessage
List box lst lstPolicyCodes
ListView lvw lvwHeadings
Menu mnu mnuFileOpen
Option button opt optGender
Picture box pic picVGA
Picture clip clp clpToolbar
ProgressBar prg prgLoadFile
RichTextBox rtf rtfReport
Slider sld sldScale
Spin spn spnPages
StatusBar sta staDateTime
Text Box txt txtLastName
Timer tmr tmrAlarm
Toolbar tlb tlbActions
TreeView tre treOrganization
UpDown upd updDirection
Vertical scroll bar vsb vsbRate
SqlDataSource sql sqlAccounts
LinqDataSource linq linqCategories

II.      THIẾT KẾ GIAO DIỆN

2.1.            Thiết kế form

Thiết lập Option Layout Settings của Form như sau:



  • Quy định kích thước Form
Luôn cố gắng đảm bảo tỷ lệ 4×3: Form rộng 4 thì cao 3 để đảm bảo cân xứng với màn hình.
  • Quy định kích thước Control
    • Chiều cao: sử dụng chiều cao mặc định sẵn của Control.
Trường hợp đặc biệt:
  • TextBox multi-lines: đảm bảo không bị che 1 phần của dòng
  • Button có image: đảm bảo hiển thị vừa đủ image 16×16 pixel
  • Độ rộng: tùy độ rộng của text
    • Đảm bảo nguyên tắc các TexBox, Combo trên cùng một Form có độ rộng thống nhất.
    • Đảm bảo nguyên tắc các Button trên tất cả các Form có độ rộng thống nhất, text trên Button không nên vượt quá 2 từ.
    • Nếu text trên Button gồm 2 từ trở xuống: bắt buộc sử dụng độ rộng mặc định (75).
    • Đối với những trường có độ rộng cố định hoặc ít khi thay đổi (ví dụ như trường có kiểu dữ liệu là Date thì độ rộng là cố định là 10 ký tự), tuân thủ theo quy định sau:
      •  Độ rộng control được binding với trường này chỉ được phép rộng đủ để hiện thị hết thông tin trong đó.
  •  Không được để độ rộng control vượt quá độ rộng của trường.
  • Lưu ý: Label đặt AutoSize=FALSE, TextBox đặt AutoSize=TRUE
  • Quy định khoảng cách giữa các Control
    • Các Control cách mép Form 01 ô grid (cả 4 phía).
    • TextBox, ComboBox cách Label dài nhất 01 ô grid
    • Các Control cách nhau 01 ô grid cả chiều dọc và ngang.
Riêng trường hợp sử dụng GroupBox có caption thì các Control bên trong GroupBox cách mép trên của GroupBox 02 ô grid. GroupBox không có caption khoảng cách vẫn là 1 ô grid. 
  • Diện mạo Control
    • Font & Color: sử dụng thiết lập mặc định. Chỉ thay đổi khi yêu cầu thiết kế chỉ rõ.
    • Hot track: thiết lập Hot track cho Button, Combo và DropDown.
    • Căn lề Text trên Control:
      • Chiều ngang (HAlign):
        • Chữ căn trái
        • Số căn phải
        • Riêng với Button thì luôn căn giữa.
        • Chiều dọc (VAlign): căn giữa (Middle)
  • Dóng Control
    • Label: dóng trái
    • Textbox, Combo: dóng đều hai bên
  • Tab Order:
    • Phải thiết lập Tab Order trên mọi giao diện (Form, Control, …) theo nguyên tắc: từ trái sang phải, từ trên xuống dưới.
    • Yêu cầu bắt buộc thiết lập TabOrder theo đúng thứ tự cho mọi Control trên Form, kể cả Control không focus vào được như Label, GroupBox, hay Control invisible. Lưu ý tuân thủ tuyệt đối quy định này vì nó phục vụ nhiều mục đích quan trọng như tạo shortcut key, valid required data, …
  • Anchor & Dock: phải thiết lập Anchor và Dock cho Control trên các Form, Container không cố định kích thước (Sizable).
  • Với thông tin yêu cầu người dùng không dược bỏ trống mà bắt buộc nhập (AllowNull = FALSE) thì Label cho thông tin đó phải sử dụng ký hiệu “(*)” ở cuối và thiết lập shortcut key.

2.2.           Quy định khi tạo MessageBox

- Caption: sử dụng Application.ProductName
- Icon:
  • MessageBoxIcon.Exclamation: dùng cho các trường hợp sau
    • Cảnh báo lỗi
    • Cảnh báo xóa dữ liệu
    • Cảnh báo nhập thiếu, nhập sai dữ liệu
    • MessageBoxIcon.Information: dùng cho các thông báo không có tính chất cảnh báo, ví dụ Kết quả Import, Thông tin về CSDL, …
- Nội dung Message: không được phép viết trực tiếp nội dung message mà phải dùng Resource (sử sụng hàm String.Format để truyền tham số cho Resource nếu cần).

2.3.           Quy tắc viết mô tả (comment) cho code

Sử dụng tiếng Việt có dấu (Unicode) để viết comment.
Comment cho Module, Class
Mỗi Module, Class cần có mô tả ngắn về mục đích của Module hay Class đó. Nội dung gồm:
Mục đích: Module hay Class thực hiện những công việc gì.
Người lập: Người tạo Module hay Class
Những biến/hàm quan trọng (không bắt buộc): Liệt kê tên các biến và hàm quan trọng trong Module/Class
Comment cho Method và Event
-      Tất cả các Method và Event phải có comment.
-      Comment cho Method/Event gồm hai phần:
  • Phần 1 (không bắt buộc): mô tả mục đích và diễn giải ngắn gọn ý nghĩa các tham số đầu vào, đầu ra.
Lưu ý: mô tả Method đó làm gì (What), không mô tả Method đó thực hiện thế nào (How).
Từ  VC# 2005 trở đi, Microsoft cung cấp sẵn một macro dành cho việc viết comment mục đích. Sử dụng như sau: gõ liên tiếp 3 dấu nháy đơn (‘) trên đầu mỗi Method.
Lập trình viên có thể không cần viết phần mô tả mục đích này với các Method/Event đơn giản, không phức tạp.
  • Phần 2 (bắt buộc): ghi thông tin về history tạo và sửa Method/Event đó (người tạo/ngày tạo, người sửa/ngày sửa). Thông tin này bắt buộc phải có với mọi Method/Event.
-      Mẫu comment cho Method/Event đơn giản:
// Created by (người tạo) – (ngày/tháng/năm tạo): diễn giải ngắn gọn mục đích// Modified by (người sửa 1) – (ngày/tháng/năm sửa 1): diễn giải việc sửa 1 // Modified by (người sửa 2) – (ngày/tháng/năm sửa 2): diễn giải việc sửa 2
//…
// Modified by (người sửa n) – (ngày/tháng/năm sửa n): diễn giải việc sửa n
Ví dụ
    // Created by lhhoa – 20/02/2008: hàm lấy khoảng thời gian là ngày đầu và ngày cuối của tháng trước// Modified by nvkieu – 25/02/2008: sửa lỗi gì đó // Modified by nqhoang – 27/02/3008: bổ sung gì đó
private void GetDateLastMonth(fromDate datetime, toDate datetime, currentMonth int, currentYear int)
{
if (currentMonth == 1)
{
fromDate = DateSerial(currentYear – 1, 12, 1);
toDate = DateSerial(currentYear – 1, 12, DaysInMonth(currentYear – 1, 12));
}
else
{
fromDate = DateSerial(currentYear, currentMonth – 1, 1);
toDate = DateSerial(currentYear, currentMonth – 1, DaysInMonth(currentYear, currentMonth – 1));
}
…………………………….
}
-      Mẫu comment cho Method/Event phức tạp:
/// <summary>/// Diễn giải mục đích ///</summary>
///<param name=”Tham số 1″>Diễn giải cho Tham số 1</param>
///<param name=”Tham số 2″>Diễn giải cho Tham số 2</param>
/// …
/// <param name=”Tham số n”>Diễn giải cho Tham số n</param>
/// <remarks>Nhận xét (nếu có)</remarks>
/// Created by (người tạo) – (ngày/tháng/năm tạo)
/// Modified by (người sửa 1) – (ngày/tháng/năm sửa 1): diễn giải việc sửa 1
/// Modified by (người sửa 2) – (ngày/tháng/năm sửa 2): diễn giải việc sửa 2
/// …
/// Modified by (người sửa n) – (ngày/tháng/năm sửa n): diễn giải việc sửa n
Ví dụ:
    /// <summary>/// Hàm lấy khoảng thời gian là ngày đầu và ngày cuối của tháng trước. /// </summary>
/// <param name=”fromDate”>Ngày đầu tháng trước</param>
/// <param name=”toDate”>Ngày cuối tháng trước</param>
/// <param name=”currentMonth”>Tháng hiện tại</param>
/// <param name=”currentYear”>Năm hiện tại</param>
/// <remarks></remarks>
/// Created by lhhoa – 20/02/2008
/// Modified by nvkieu – 25/02/2008: sửa lỗi gì đó
/// Modified by nqhoang – 27/02/3008: bổ sung gì đó
private void GetDateLastMonth(fromDate datetime, toDate datetime, currentMonth int, currentYear int)
{
if (currentMonth == 1)
{
fromDate = DateSerial(currentYear – 1, 12, 1);
toDate = DateSerial(currentYear – 1, 12, DaysInMonth(currentYear – 1, 12));
}
else
{
fromDate = DateSerial(currentYear, currentMonth – 1, 1);
toDate = DateSerial(currentYear, currentMonth – 1, DaysInMonth(currentYear, currentMonth – 1));
}
…………………………….
}
Comment cho đoạn Code
-      Những đoạn code phức tạp cần có comment gắn liền bên trên để chú giải.
-      Những đoạn code được sửa đổi (modified), bổ sung (added) hoặc rem (removed) bởi người không phải tác giả cần có comment rõ ngay tại nơi sửa đổi, bổ sung: người sửa, ngày sửa, mục đích.
-      Comment cho đoạn code áp dụng bắt buộc với các Base Form/Base Class/Base Control.

2.4.           Quy tắc phân nhóm (region) khi coding:

Phải sử dụng Region phân nhóm code để tiện cho việc sửa đổi, bảo trì.
Phân nhóm code theo cấu trúc như sau: (theo thứ tự bắt buộc, nhưng không bắt buộc có đủ tất cả các region)
      Declaration
      Constructor
      Property
      Method/Function
      Event
Tùy theo yêu cầu của các form, class và module, lập trình viên có thể chia nhỏ các Region chính trên thành các sub-region. VD: region Method/Function có thể chứa các region con sau:
Method/Function
Public
Overridable (trường hợp là base form/class)
Override (trường hợp là derive form/class)
Private
Other
Trường hợp form hoặc class có sử dụng các component độc lập (Security, Document, MassEmail,…) thì phải tạo các Region riêng cho từng component, chứa toàn bộ code liên quan đến việc tương tác với các component đó.

2.5.           Quy định bẫy lỗi khi coding

-      Bắt buộc bẫy lỗi (sử dụng try … catch) trong tất cả các Event của Form và Control trên Form.
-      Nghiêm cấm sử dụng cú pháp try … catch để che dấu lỗi (không xử lý gì sau từ khóa catch).

Bad!!!

Good!!!

2.6.           Quy định thiết kế Dataset:

-      Tên của Dataset khi visual design đặt như sau: “Dataset” + Mục đích. VD: DatasetDictionary, DatasetCAPayment, …
-      Số lượng DataTable trong một Dataset: quy định từ 10 trở xuống. Mỗi Dataset chỉ được phép có tối đa 10 DataTable. Khi thiết kế phải tách Dataset để đảm bảo nguyên tắc này. Nếu một Dataset có nhiều DataTable thì tốc độ load/save dữ liệu sẽ bị ảnh hưởng nghiêm trọng.

Nguồn: Internet

26.8.11

Cài đặt phần mềm trên linux dùng YUMyum


https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpPc-gwrQpGdxiB7q8jfwdqD0CEMnBm7q8jI66dbmcVrsISLS4clmc0EzTuDkOR5HJR6F8lotP6ialooF5jKKMXL0fAKiaKE0mphSKPXgx_uxvZTjep7XJm-YbKdlreTp2CBst-_3jNy8/s1600/FEDORA_4af2169d75d00.jpg
YUM là một lệnh thường dùng trong Centos để cài đặt, gỡ bỏ, update....các phần mềm. Đây là một lệnh rất hữu ích và tiện dụng!

Hôm nay mình sẽ liệt-+ kê một số option cơ bản của lệnh yum này nhé!

Tìm một phần mềm nào đó:

#yum search package-name
VD: #yum search java

Liệt kê tất cả các gói phần mềm đã được cài đặt trên máy:
# rpm -qa
# yum list installed


Hiển thị danh sách các gói phần mềm đã có bản update:
# yum list updates

Thực hiện nâng cấp tất cả các gói phần mềm:
# yum update

Liệt kê các gói phần mềm với bộ lọc: (vd: samba)
# rpm -qa | grep samba*
# yum list installed samba


Kiểm tra xem một gói phần mềm cụ thể đã có bản update mới chưa:
# yum update package-name

VD: # yum update samba

Tìm kiếm một gói phần mềm lọc theo tên:
# yum list package-name
# yum list regex


VD: samba, có thể dùng dấu * để thay thế cho các kí tự chưa xác định
# yum list samba
# yum list java*


Cài đặt gói phần mềm cụ thể:
# yum install package-name-1 package-name-2
# yum install samba vnc-viewer


Gỡ bỏ gói phần mềm cụ thể:
# yum remove package-name-1 package-name-2
# yum remove samba vnc-viewer


Hiển thị danh sách các gói đang kích hoạt:
# yum list all

Hiển thị các gói phần mềm theo nhóm:
# yum grouplist

Cài đặt tất cả các gói phần mềm có trong nhóm:
# yum groupinstall "Development Tools"

Update tất cả các gói phần mềm có trong nhóm:
# yum groupupdate "Development Tools"

Gỡ bỏ tất cả các gói phần mềm có trong nhóm:
# yum groupremove "Development Tools"


Hiển thị các gói phần mềm ko thể cài đặt:
# yum list extras

Hiển thị thông tin về gói phần mềm của một file cụ thể:
# yum whatprovides /etc/passwd

Xem trợ giúp thêm về lệnh Yum:
# man yum

 
Nguồn: Internet

Các cách Install một phần mềm tren linux

http://files.cyberciti.biz/cbzcache/3rdparty/fedora-logo.png
Có nhiều bạn khi lần đầu tiên đến với Linux cảm giác sự khó khăn và bất tiện của việc cài đặt các ứng dụng trên Linux, đặc biệt là các ứng dụng phải cài đặt từ mã nguồn như xine, openGL .v.v...
Trên Windows, bạn chỉ cần tải ứng dụng về, giải nén rồi click vào file setup là hòan tất việc cài đặt, nhưng trên Linux đó là một chuyện hòan tòan khác. Bài viết này sẽ nhằm mục đích hướng dẫn bạn các thao tác cài đặt các phần mềm ứng dụng trên Linux và cung cấp các kiến thức căn bản giúp bạn có thể quản lý hệ thống của riêng mình.
Bài viết sẽ giả sử rằng bạn đã biết cách sử dụng một số phần mềm quản lý gói như rpm. Để dễ dàng thì bài viết sẽ gọi các phần mềm trên Linux là các gói (package). Thực tế tên gọi 'gói' đúng đắn hơn vì các gói trên Linux có thể không phải là một trình ứng dụng nào đó mà chỉ là các thư viện nền như thư viện đồ họa Gtk+ hoặc OpenGL .v.v...

1. Giới thiệu
Bạn có thể sẽ tự hỏi rằng tại sao các phần mềm trên Linux không tự đóng gói sẵn cho chúng ta rồi khi xuất bạn chỉ cần tải về và cài đặt nó. Câu trả lời nằm ở 2 vấn đề, vấn đề thứ 1 là các phần mềm viết trên Linux không hẳn chỉ có thể chạy trên Linux mà có thể chạy trên nhìều hệ thống khác nhau trong họ Unix như Solaris, AIX, HP-UX .v.v.. thậm chí các phần mềm đó có thể chạy trên rất nhiều vi xử lý khác nhau như Intel, Motorola, PPC .v.v... Có được sự đa năng đó là nhờ vào tính đa nền (portable) của ngôn ngữ C/C++ nhưng đòi hỏi chúng ta phải biên dịch lại phần mềm từ mã nguồn cho hệ thống mà chúng vận hành. Bạn sẽ tự hỏi là tại sao các nhà phát triển lại không biên dịch sẵn cho chúng ta trên hệ thống thông dụng nào đó như Linux chẳng hạn.

Câu trả lời là bởi vì các phần mềm này là phần mềm mã nguồn mở Smiling và các nhà phát triển không có cách gì hơn là để lại phần biên dịch cho chúng ta. Tuy nhiên bạn đừng thất vọng vì có một số nhà phát triển rất là tốt bụng có thể biên dịch sẵn cho chúng ta ra các gói có dạng rpm và cùng với sự hỗ trợ của công ty Red Hat chúng ta cũng đã có những chương trình quản lý các phần mềm hiệu quả không kém gì trên Windows như RPM (Redhat Package Manager). Mặc dù là thế nhưng không phải lúc nào các gói mới nhất từ các nhà phát triển gốc đều có phiên bản biên dịch sẵn mà thường là một khỏang thời gian sau các phiên bản đó mới có được dưới
dạng biên dịch sẵn. Bên cạnh đó còn có rất nhiều nhà phát triển không hề biên dịch sẵn sản phầm của mình mà đòi hòi người dùng phải biên dịch, điển hình là trình chơi phim và nhạc xine. Các gói biên dịch sẵn các bạn có từ xine đa số là từ các nhà phát triển khác. Do đó nếu bạn không bạn không biết cách cài đặt các gói từ nguồn là một trở ngại rất lớn cho việc hiểu và quản trị hệ thống của riêng mình.

2. Căn bản của việc cài đặt
Điều đầu tiên khi bạn tiến hành cài đặt là bạn phải có mã nguồn của gói đó trước. Hãy lên mạng search bất kì gói nào bạn thích như thư viện Gtk+ hoặc Gnome .v.v... Sau khi tải về, thông thường có dạng là .gz hoặc .bz2, đây đều là 2 chuẩn nén khác nhau, sau khi giải nén bằng gunzip cho gz hoặc bunzip2 cho bz2 thì các gói sẽ có dạng mới là tar, cũng là một chuẩn nén khác, bạn có thể giải nén bằng lệnh, tar -xvf ... Thế nhưng đế dễ dàng và tiết kiệm dung lượng ổ đĩa thì chúng ta có thể gộp các câu lệnh đó thành 1 như sau:

- Đối với gói .gz:
Code:
# tar -zxvf tengoi.gz

- Đối với gói .bz2:
Code:
# tar -jxvf tengoi.bz2

Sau khi giải nén xong và tìm tập tin INSTALL để đọc cụ thể cho phần hướng dẫn cài đặt. Thế nhưng hầu như các gói đều tuân theo các thao tác tuần tự sau:

Code:
# ./configure
# make
# make install

Chỉ có vài gói đặc biệt sẽ có riêng cách cài đặt nhưng khi bạn đã nắm vững nguyên tắc chung thì dù là cách thức nào bạn cũng có thể xoay xở được. Chúng ta hãy xét đến câu lệnh đầu tiên,
Code:
./configure

... Thực chất configure là một shell script sẽ kiểm tra những yêu cầu của hệ thống của bạn có đáp ứng đủ để cài đặt gói lên không, ví dụ như một số gói đòi hỏi bạn phải có sẵn thư viện đồ họa Gtk 2.4 trở lên hoặc là thư viện để giải nén nhạc Mp3..v.v... Rất nhiều gói có sự phụ thuộc như thế chứ các gói khi tải về không hề có sẵn các gói tương ứng cần thiết cho nó. Khi bạn chạy configure xong kết quả sẽ cho bạn biết các gói nào cần thiết để cài đặt. Nhiệm vụ của bạn không gì hơn là phải tìm các gói phụ thuộc đó cài lên máy rồi mới tiếp tục việc cài đặt. Nếu như hệ thống của bạn thỏa mãn đầy đủ các yêu cầu để cài đặt thì các Makefile sẽ được tạo ra. Makefile là một file đặc biệt của tiện ích make nhằm hướng dẫn biên dịch mã nguồn của gói ra dạng thực thi. Sau khi bạn thực thi lệnh 'make' xong thì tòan bộmã nguồn của gói đã được biên dịch sang dạng thực thi nhưng các file thực thi vẫn còn nằm trên thư mục hiện hành. Do đó bạn cần phải thực hiện thêm lệnh 'make install' để chép các file thực thi đó sang đúng vị trí của nó trên hệ thống. Nếu như không có thông báo lỗi gì xảy ra thì bạn đã hòan tất việc cài đặt gói lên hệ thống của mình.

3. Tổ chức các file trên hệ thống
Bạn hòan tòan biết thư mục trên Linux thì thư mục /usr là thư mục quan trọng nhất vì nó sẽ chứa các chương trình và hàm thư viện trên đó. Trong thư mục /usr/bin là sẽ chứa các file thực thi cho các gói bạn đã cài đặt trên máy, các file trong thư mục này bạn sẽ thấy các file rất quen thuộc như mozilla, gedit .v.v... Thư mục /usr/lib sẽ chứa các hàm thư viện, bạn sẽ thấy rất nhiều files có phần mở rộng là .so (shared object) là các hàm thư viện liên kết động hoặc .a (archive) hoặc .la đều là các hàm thư viện liên kết tĩnh. Đặc tính căn bản của 2 dạng thư viện này là hàm thư viện liên kết tĩnh sẽ được liên kết thẳng với files thực thi luôn trong quá trình liên kết, còn hàm thư viện liên kết động thì sẽ được liên kết trong quá trình thực thi, cho nên sau khi chương trình đã được biên dịch và liền kết rồi các thư viên tĩnh chúng ta có thể bỏ đi nhưng thư viện liên kết động thì bắt buộc phải đi kèm với chương trình. Thư mục /usr/share sẽ chứa các icon, manual hoặc info của gói.

4. Lọai bỏ một gói
Nếu bạn mong muốn lọai bỏ một gói đã cài đặt trên hệthống thì cách duy nhất là bạn phải vào lại thư mục mã nguồn của gói và gõ lệnh
Code:
'make uninstall'

... thông thường bạn sẽ có các câu lệnh sau: 'make clean' 'make
distclean' ... Các câu lệnh có ý nghĩa rất tương đối và được định nghĩa trong tập tin Makefile, nên đầu tiên bạn cứ thử với 'make uninstall' rồi
Code:
'make clean'

cái cuối cùng
Code:
'make distclean'

là giúp bạn xóa hết các tập tin đã biên dịch ở thư mục nguồn và đồng thời xóa Makefile, bạn phải chạy lại ./configure để tạo lại Makefile.

5. Quản lý các gói
Do việc xóa bỏ một gói như trên rất là phiền phức đôi lúc bạn chẳng thể xóa bỏđược nếu như mất đi mã nguồn, cho nên bạn có thể thay vì cài nó vào thư mục mặc định là /usr thì bạn có thể cài vào các thư mục của riêng bạn, ví dụ như bạn có thể tạo thư mục '/soft' ... Sau đó để cài gói gedit thì bạn tạo thêm thư mục /soft/gedit và dùng lệnh ./configure ... bạn thêm tùy chọn sau:
Code:
./configure --prefix=/soft/gedit

thì khi bạn gõ
Code:
make install

sẽ copy tòan bộ sang thư mục /soft/gedit .. Khi bạn muốn xóa tòan bộ gói thì chỉ đơn giản xóa đi thư mục đó thôi. Lưu ý là khi bạn cài vào thư mục riêng của mình rồi bạn phải tạo 2 đường dẫn cho 2 biến mội trường (environment variable) LD_LIBRARY_PATH và PKG_CONFIG_PATH ...LD_LIBRARY_PATH sẽ có đường dẫn đến thư mục lib của gói vừa tạo (ví dụ như /soft/gedit/lib) còn PKG_CONFIG_PATH sẽ có đường dẫn đến thư mục pkg_config trong thư mục lib (ví dụ như /soft/gedit/lib/pkg_config) .. Bên cạnh đó nếu bạn muốn chương trình gọi tự động thì bạn cũng nên thêm vào biến PATH cho gói của mình.

6. Lời kết
Đối với cách cài trên thì bạn dể dàng quản lý các gói của mình nhưng đối với các dạng thư viện thì bạn nên cài nó vào thư mục /usr hơn là thư mục riêng của mình vì một số gói sẽ tìm các thư việc trên thư mục mặc định /usr và /usr/local hơn là các thư mục riêng người dùng nên nếu bạn cài lên thư mục riêng thì đôi lúc các thư viện đó sẽ không được tìm ra. Thông thường lênh ./configure đi đôi với rất nhiều tùy chọn cho phép bạn lựa chọn nhiều tính năng khác nhau, bạn hãy gỏ ./configure --help để mà biết đầy đủ các tùy chọn của gói.


b>Instal bằng rpm
Có thể thì hầu hết các gói rpm qua site : rpmseek.com , findrpm.com or google.com.com
Cơ bản về rpm
--version:hiện thị ver đang sử dụng
--quiet:hiện thị lỗi khi installl
-v:hiện thị quá trình install
i|--install: install 1 patket :
ex :#rpm -ivh x-unikey-0.9.2-1.i586.rpm
-e :uninstall
ex:#rpm -e x-unikey
rpm -Uvh :nâng cấp
#rpm -Uvh x-unikey-0.9.2-1.i586.rpm
Nói chung việc install bằng rpm đơn giản hơn so với tư mã nguồn rất nhiều


c>Install online bằng cách sử dụng yum (fc)
download gói freshrpms-release-1.1-1.fc.noarch.rpm tại ftp.freshrpms.net/pub/freshrpms/fedora/l...-1.1-1.fc.noarch.rpm Download: freshrpms.net/packages/RPM-GPG-KEY.txtapt.sw.be/dries/RPM-GPG-KEY.dries.txt
vào thư mục /home/yourname/key
install
Trích:
#rpm -ivh freshrpms-release-1.1-1.fc.noarch.rpm
Mở một trình soạn thảo văn bạn ưa thích của bạn (nhớ mở với account root)
+ Tạo file macromedia.repo lưu vào thư mục /etc/yum.repos.d/ với nội dung:
Trích:
[macromedia]
name=Macromedia for i386 Linux
baseurl=macromedia.rediris.es/rpm/
enabled=1
gpgcheck=1
gpgkey=macromedia.mplug.org/FEDORA-GPG-KEY
Tạo file dries.repo lưu vào thư mục /etc/yum.repos.d/ với nội dung:
Code:
[dries]
name=Extra Fedora rpms dries - $releasever - $basearch
baseurl=ftp.belnet.be/packages/dries.ulyssis.org/fedora/linux/$releasever/$basearch/dries/RPMS/
enabled=1
gpgcheck=1

Bước 3:
Gõ lệnh sau với account root để import GPG key cho freshrpms và dries repository.
Code:
cd /home/yourname/key
rmp --import *.txt

Vậy là từ nay bạn có thể cài đặt các phần mềm cho hệ thống của mình dễ dàng hơn khi online, trình yum sẽ tự động detect ra các dependecies của phần mềm.

hai chức năng cơ bản của yum:
Code:
yum -y install application
yum -y update application

nếu bạn muốn update cho hệ thống gõ lệnh:
Code:
yum -y update

để hiểu rõ về cách dùng yum bạn xem them manual của nó:
Code:
man yum

Nguồn: Internet

25.8.11

Tạo file spec cho các gói RPM

http://jeudisdulibre.be/wp-content/uploads/2011/01/rpm-package-fedora1.png

1. Cấu trúc Spec File

Các file RPM (gói phần mềm) được sử dụng rất nhiều trong nhiều distro Linux: Redhat, Fedora, Turbo Linux... Cấu trúc RPM do Redhat phát triển. Để tạo ra các file RPM chúng ta dùng lệnh rpmbuild với tham số là file spec.
File spec là file text bao gồm sáu phần chính: header (đầu mục), %prep, %build, %install, %clean, %files, %changelog, các mục này chỉ có một và theo trình tư như đã liệt kê, trong mỗi mục đó có thể có một số macro (lưu ý là các macro cũng có dấu % ở trước). Trong các mục này có thể thực hiện các lệnh shell (sh), nhưng không cần có #!/bin/sh.
Các macro có thể xuất hiện nhiều lần trong một mục.
File Spec được sử dụng để tạo các gói rpm. Tên file chúng ta nên đặt theo quy ước chuẩn: têngói-gạchngang-sốhiệuphiênbản-sốhiệupháthành-chấm-spec.
Đây là một ví dụ (eject-2.0.2-1.spec):

Summary: A program that ejects removable media using software control.
Name: eject
Version: 2.0.2
Release: 3
Copyright: GPL
Group: System Environment/Base
Source: http://metalab.unc.edu/pub/Linux/utils/disk-management/eject-2.0.2.tar.gz
Patch: eject-2.0.2-buildroot.patch
BuildRoot: /var/tmp/%{name}-buildroot

%description
The eject program allows the user to eject removable media
(typically CD-ROMs, floppy disks or Iomega Jaz or Zip disks)
using software control. Eject can also control some multi-
disk CD changers and even some devices' auto-eject features.

Install eject if you'd like to eject removable media using
software control.

%prep
%setup -q
%patch -p1 -b .buildroot

%build
make RPM_OPT_FLAGS="$RPM_OPT_FLAGS"

%install
rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT/usr/bin
mkdir -p $RPM_BUILD_ROOT/usr/man/man1

install -s -m 755 eject $RPM_BUILD_ROOT/usr/bin/eject
install -m 644 eject.1 $RPM_BUILD_ROOT/usr/man/man1/eject.1

%clean
rm -rf $RPM_BUILD_ROOT

%files
%defattr(-,root,root)
%doc README TODO COPYING ChangeLog

/usr/bin/eject
/usr/man/man1/eject.1

%changelog
* Sun Mar 21 1999 Cristian Gafton 
- auto rebuild in the new build environment (release 3)

* Wed Feb 24 1999 Preston Brown 
- Injected new description and group.

[ Some changelog entries trimmed for brevity.  -Editor. ]

2. Tiêu đề (The Header)

Tiêu đề bao gồm một số mục sau:
  • Summary: Một dòng mô tả về sản phẩm.
  • Name: tên gói mà bạn sẽ sử dụng.
  • Version: chuỗi số phiên bản.
  • Release: chuỗi phát hành.
  • Copyright: Bản quyền.
  • Source: Là thư mục chứa mã nguồn hoặc nơi chứa mã nguồn. Bạn cũng có thể mô tả nhiều nơi chứa mã nguồn như sau::
    Source0: blah-0.tar.gz
    Source1: blah-1.tar.gz
    Source2: fooblah.tar.gz

  • Patch: nơi mô tả các gói patch, các goi snày phải có tên file chính xác sẽ được sử dụng sau này trong quá trình patch:
    Patch0: blah-0.patch
    Patch1: blah-1.patch
    Patch2: fooblah.patch
    Các file này phải nằm trong thư mục mã nguồn (SOURCES directory).
  • Group: Là nhóm mà gói phần mềm thuộc trong đó, có thể là mức cao nhất trong bộ gói cài đặt của Red Hat (Red Hat's gnorpm). Bạn cũng có thể tìm thấy một số thông tin ở /usr/doc/rpm*/GROUPS. Ví dụ về cây của các nhóm gói phần mềm:
    Amusements/Games
    Amusements/Graphics
    Applications/Archiving
    Applications/Communications
    Applications/Internet
    Applications/Multimedia
    Applications/Publishing
    Applications/System
    Development/System
    Development/Tools
    Documentation
    System Environment/Base
    System Environment/Shells
    User Interface/Desktops
    User Interface/X
    User Interface/X Hardware Support
  • BuildRoot: Dòng này quy định thư mục "gốc" cho mã nguồn để biên dịch và cài đặt.
  • %description mô tả về phần mềm, có thể được viết ở dạng nhiều dòng.

3. Prep

Đây là phần chuẩn bị để biên dịch, bao gồm giải nén, vá chuẩn bị để chạy chương trình make.
Bạn có thể tạo ra file shell để làm các công tác chuẩn bị, tuy nhiên rpm có sẵn một số macro để làm đơn giản quá trình đó.Macros đầu tiên là %setup . nếu không có tham số thì nó đơn giản là giải nén mã nguồn và chuyển (cd) đến thư mục chứa mã nguồn. %setup có một số tham số sau:
  • -n name Quy định tên thư mục mã nguồn biên dịch khác với mặc định với tên là name. Mặc định là $NAME-$VERSION. Hoặc có thể là $NAME, ${NAME}${VERSION}, hoặc bất kỳ thế nào do tar file sử dụng. (Chú ý rằng dấu "$" ở đây không hẳn là biến thực trong file spec. Bạn phải dùng tên và version thật.
  • -c tạo và chuyển thư mục đến thư mục trước khi giải nén (untar).
  • -b sẽ giải nén mã nguồn thứ #n trước khi chuyển thư mục tới thư mục mã nguồn. Tham số này có ích nếu có nhiều file mã nguồn.
  • -a sẽ giải nén mã nguồn thứ #n sau khi chuyển tới thư mục mã nguồn.
  • -T Tham số này sẽ không giải nén và yêu cầu các tham số -b 0 hoặc -a 0 để có mã nguồn giải nén.
  • -D không xoá thư mục trước khi giải nén. Thường được dùng khi có nhiều %setup, để tránh xoá phần giải nén ở %setup trước, tuy nhiên thường không dùng nếu chỉ có 1 %setup.
Macro tiếp theo là %patch. Phần này sẽ tự động vá (patch mã nguồn), có một số tham s
  • sẽ thực hiện patch#n như là các patch file.
  • -p chỉ ra số thư mục sẽ thực hiện patch(n) command.
  • -P Mặc định sẽ thực hiện Patch (hay Patch0). This flag inhibits the default action and will require a 0 to get the main source file untarred. This option is useful in a second (or later) %patch macro that required a different number than the first macro.
  • Bạn có thể thực hiện %patch thay cho thực hiện lệnh thực tế: %patch #n -P
  • -b extension sẽ lưu lại các file gốc với phần mở rộng là filename.extension trước khi thực hiện vá (patching).
Ngoài các macro này ra bạn cũng có thể thực hiện bất kỳ lệnh nào dạng shell (sh) cho đến mục %build.

4. Build

Bạn có thể liệt kê các lệnh ở đây để biên dịch mã nguồn sau khi đã giải nén và chuyển thư mục hiện thời tơi sthư mục mã nguồn.
Biến RPM_OPT_FLAGS được thiết lập với các giá trị trong /usr/lib/rpm/rpmrc. Hãy kiểm tra với các giá trị thích hợp. Hoặc có thể không cần sử dụng trong file spec.

5. Install

Ở đây không có macro nhưng bạn có thể thực hiện bất kỳ lệnh nào dạng shell để cài đặt, thường bạn dùng lệnh make install để thực hiện phần cài đặt.Bạn lưu ý rằng thư mục hiện thời phải là thư mục mã nguồn.
Biến RPM_BUILD_ROOT cũng được sử dụng để quy định về thưc mục trong phần tiêu đề Buildroot.

6. Dọn dẹp (clean)

Thông thường trước khi buil, tạo gói bạn nên xoá bỏ các file xuất hiện trong quá trình biên dịch, và macro %clean sẽ giúp bạn thực hiện điều đó.

7. Một số scripts dành cho trước và sau khi cài đặt

Bạn có thể thực hiện một số scripts trước và sau khi cài đặt hoặc gỡ bỏ (installation and uninstallation) của các gói nhị phân (binary). Mục đích chính là có thể chạy ldconfig sau khi cài đặt hoặc gỡ bỏ các gói dùng các thư viện chi sẻ (shared libraries). Bao gồm các macro sau::
  • %pre là macro thực hiện trước khi cài đặt (pre-install scripts).
  • %post là macro thực hiện sau khi cài đặt (post-install scripts).
  • %preun là macro thực hiện trước khi gỡ bỏ (pre-uninstall scripts).
  • %postun là macro thực hiện sau khi gỡ bỏ (post-uninstall scripts).
Nội dung các macro này là các lệnh shell (sh) nhưng không cần dòng #!/bin/sh ở đầu.

8. Files

Mục này liệt kê các danh sách file và thư mục cho gói nhị phân. Thường danh sách này bạn có thể xem ở trong phần make install.
Ở đây cũng có một số macro để phục vụ cho một số mục đích nào đó:
  • %doc chỉ ra các file tài liệu (doc) sẽ được đóng gói trong file nhị phân. Tài liệu sẽ được cài trong thư mục /usr/doc/$NAME-$VERSION-$RELEASE. Bạn có thể liệt kê nhiều tài liệu sau phần macro này, hay có thể liệt kê từng tài liệu sau từng macro này.
  • %config đánh dấu rằng đây là các file config. Bao gồm cả các file như sendmail.cf, passwd, etc. Sau này dù các file config có thay đổi thì nó cũng vẫn được remove.
  • %dir chỉ ra rằng chỉ có riêng thư mục được liệt kê ở đây như là thành phần của gói. Bình thường nếi liệt kê thư mục không có macro %dir, thì tất cả những gì có trong thư mục đó sẽ được cho vào gói.
  • %defattr cho phép bạn đặt thuộc tính mặc định cho các file được liệt kê ở dưới. Thuộc tính được mô tả theo dạng (mode, owner, group) , mode là số cơ số 8 mô tả bit pattern (giống như trong lệnh chmod), owner là username , group là tên group mà bạn có thể gán được. Bạn cũng có thể đặt ở một trường nào đấy dấu '-' nếu sử dụng mặc định.
  • %files -f cho phép bạn liệt kê các file trong một file nào đó của bạn trong thư mục mã nguồn. Chức năng này thường được sử dụng khi gói có file liệt kê danh sách riêng, trong trường hợp đó bạn không phải liệt kê tất cả các file ở đây mà chỉ cần chèn file chứa danh scáh file là được.
Ghi chú: nếu bạn chẳng may liệt kê /usr/bin thì gói nhị phân sẽ bao gồm tất cả các file có trong thư mục này.

9. Changelog

log ghi lại những cập nhật và thay đổi của gói, mỗi khi thay đổi RPM bạn nên ghi lại những thay đổi ở đây.
Định dạng khá là đơn giản, mỗi mục bắt đầu bằng một dòng có dấu '*' sau đó là ngày tháng, tên người cập nhật, địa chỉ email, theo định dạng sau:
 date +"%a %b %d %Y"
Phần còn lại là text theo một trình tự nhất định nào đó, thường là các dòng có gạch đầu dòng ở đầu.


Nguồn: Internet

Biến CD/DVD/ISO thành kho chứa yum trên Fedora/RHEL/CentOS

http://manthang.files.wordpress.com/2010/11/yum-local-repo.jpg
Mặc định, yum sẽ chỉ tìm kiếm và tải về các gói nằm trong các kho chứa (repository) là các server trên Internet. Vì vậy, việc cài đặt phần mềm với yum yêu cầu bạn cần phải có kết nối Internet tốc độ cao để việc tải gói về được nhanh chóng.
Nhưng, chỉ với CDs/DVD/ISO image có sẵn chứa bộ cài Fedora/RHEL/CentOS và làm theo hướng dẫn trong bài viết này là bạn hoàn toàn có thể cài đặt phần mềm với yum sử dụng CDs/DVD/ISO làm kho chứa.
Giới thiệu
  • yum là một công cụ quản lý các gói phần mềm trên các phiên bản Linux như Red Hat, CentOS, Fedora…
  • yum giúp việc truy vấn thông tin, tải về, cài đặt, cập nhật, gỡ bỏ, giải quyết gói phụ thuộc (dependency)… các gói trở nên đơn giản và an toàn hơn.
Chú thích về dependency:
Giả dụ bạn đang cần cài gói A. Gói A này yêu cầu trên máy phải cài đặt sẵn 2 gói B, C. Nếu máy chưa có 2 gói B, C này thì khi cài đặt gói A bạn sẽ nhận được thông báo lỗi và việc cài đặt gói A thất bại. Trong trường hợp này, B và C được gọi là dependency của A.
Điểm mạnh của yum so với chương trình rpm là: yum sẽ tự động kiểm tra và nhận biết được các dependency nào cần thiết dành cho chương trình mà bạn đang muốn cài.
Cách làm
1. Mount CDs/DVD/ISO image
* Đối với DVD
# mkdir /mnt/dvd/
# mount /dev/cdrom /mnt/dvd/
* Đối với file ISO (giả sử tên file là centos-5.5.iso)
# mkdir /mnt/dvd/
# mount -o loop /root/ centos-5.5.iso /mnt/dvd
* Đối với bộ cài bao gồm nhiều CD
# mkdir -p /mnt/{1,2,3,4,5}
# mount -o loop centos-5.5-disc1.iso /mnt/1
# mount -o loop centos-5.5-disc2.iso /mnt/2
# mount -o loop centos-5.5-disc3.iso /mnt/3
# mount -o loop centos-5.5-disc4.iso /mnt/4
# mount -o loop centos-5.5-disc5.iso /mnt/5
 
2. Cài đặt gói cần thiết
Công cụ createrepo giúp tạo thông tin dạng  metadata về các gói rpm. Trong bộ cài RHEL/CentOS/Fedora đã có sẵn gói createrepo này, để cài đặt nó bạn sử dụng lệnh sau:
# rpm –ivh <đường dẫn tới thư mục chứa gói này>/createrepo*.rpm
3. Tạo metadata
# createrepo /mnt/
Thời gian khởi tạo tùy thuộc vào số lượng gói có trong kho.
4. Định nghĩa cho kho chứa mới
Bạn tạo file text /etc/yum.repos.d/local.repo có cấu trúc như sau:
[Chuỗi-Tùy-Ý]
name=Tên-Tùy-Ý
baseurl=file:///mnt/
enabled=1
gpgcheck=0
Giải thích
Dòng 3: đường dẫn tới thư mục chứa bộ cài.
Dòng 4: 1= kích hoạt kho này, 
        0= không sử dụng kho này.
Dòng 5: 0= bỏ qua kiểm tra tính toàn vẹn của gói,
        1= cho phép kiểm tra xem gói có bị lỗi hay không.
5. Kiểm tra
# yum clean all
# yum list
Nếu lệnh yum list liệt kê danh sách các gói có trong CDs/DVD/ISO thì việc tạo kho chứa yum đã hoàn tất!

Nguồn: Internet

20.8.11

Đăng nhập vào Root (giao diện đồ họa) trên Fedora 15

Login as a root from GUI Fedora 15

 https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKAtVV7amYOoiJsX3RpERQ9L0G5k11Tr2qhbxsss3nI9cRzAB66urb9jx31wyoMe5s2oYe_WAl1oAGcW01rXJfVCH5OlzBf_m37_qEbyQmL-bn63uOmUSOHfuqCcP3VhhvWm_7WsMryIJW/s640/340x_fedora_logo.jpg

In Fedora 15 You cannot login as a root from gui. By Default, only Normal users are allowed to login from gui mode.
I Managed to Login as a root from GUI on Fedora 15. Follow these steps and you will able to Login as a root from GUI on Fedora 15
If You want to login as a root from GUI in Fedora 15 then you have to edit something like some files which are located to /etc/pam.d/
Open your Te rminal from Applications -> System Tools -> Terminal
Now Login as a root  from your terminal

Step 1 :- [itsolutions@ask4itsolutions.com]$ su – root
Password:-

Step 2:- Now go to your /etc/pam.d/ directory.
[root@ask4itsolutions]# cd /etc/pam.d/
Then first take a backup of gdm file
cp gdm gdm.bkp ( always take backup if anything goes wrong you can correct it by original file)

Step 3 :- Now Open gdm file in your favourite editor. I am using vi as my editor.
[root@ask4itsolutions pam.d]#  vi gdm
Find and Comment or remove this line into your gdm file
auth required pam_succeed_if.so user != root quiet

Step 4 :- Save & Exit From that File. ( In Fedora10 Till step 4 is enought to Login as a root from GUI but for Fedora 15 you need one more file to edit otherwise you cannot Login as a root even though you edited gdm file).

Step 5 :- Here is the additional file that you need to edit and that file name is gdm-password. Open gdm-password file in your favourite editor. I am using vi as my editor.
Then first take a backup of gdm-password file
cp gdm-password gdm-password.bkp ( always take backup if anything goes wrong you can correct it by original file)
[root@ask4itsolutions.com pam.d]#vi gdm-password
Find and Comment or remove this line into your gdm file
auth required pam_succeed_if.so user != root quiet


Step 6 :- Save & Exit from File. Now Logout and Try to Login as a root user. Now you are able to Login as a root user from GUI in Fedora 15.

Nguồn: Internet

14.8.11

Truy cập Internet trên Ubuntu với USB D-com 3G Viettel

Tình hình là hiện nay Viettel bắt đầu cung cấp cho khách hàng các mẫu modem USB (USB 3G) mới đó là các dòng MFxxx. Điều này gây không ích khó khăn trong quá trình cài đặt cho những ai sử dụng Ubuntu. Mình đã gặp không ít khó khăn và cũng đã phải đổ không ít công sức ra để tìm giải pháp cho vấn này. May mắn là mình đã tìm được cách giải quyết vấn đề này. Hôm nay mình sẽ chia sẻ với các bạn cách để sử dụng modem USB ZTE MFxxx trong Ubuntu. Thực ra thì có hai cách, một cách thì cài phần mềm giống như bên Win vậy rồi mỗi lần lên mạng cứ phải chạy phần mềm đó, trong phần mềm đó cũng có sẵn tiện ít gọi điện thoại và nhắn tin luôn (chỉ có điều tính năng gọi bị Viettel khóa rồi nên có chỉ để trang trí); cách kia thì là một mẹo nho nhỏ, cắm modem USB vô chọn network là xong, chạy lên mạng bình thường. Ở đây mình hướng dẫn đơn giản để ai cũng dễ làm và trực quan, còn với mấy pro xài Ubuntu lâu chắc tải về là biết cách xài rôi, nên nếu thấy thừa thì bỏ qua phần này nhé!
  1. Cách 1:
  2. Cắm modem usb vào, sau đó vào terminal gõ lsusb xác định Vender ID và Product ID. Chú ý cái dòng tương tự thế này
  3. Bus 001 Device 006: ID 19d2:0108 ONDA Communication S.p.A. Trong đó Vender ID là: 19d2 và Product ID là 0108.
  4. Vào terminal chạy sudo nautilus để chạy nautilus với vai trò root, rồi vào thư mục /etc/ tạo một folder mới tên udev.d/, trong thư mục này tạo một file 15-zte-mfxxx.rules (tùy theo modem mà thay đôỉ thông số xxx nhé, mà không thay đổi cũng không sao, thay đổi để sau này biết đường mà lần). Mở file bằnggedit paste cái này vào
  5. ACTION!=”add”, GOTO=”ZTE_End” # Is this the ZeroCD device? SUBSYSTEM==”usb”, SYSFS{idProduct}==”2000″, SYSFS{idVendor}==”19d2″, GOTO=”ZTE_ZeroCD” # Is this the actual modem? SUBSYSTEM==”usb”, SYSFS{idProduct}==”0108″, SYSFS{idVendor}==”19d2″, GOTO=”ZTE_Modem” LABEL=”ZTE_ZeroCD” # This is the ZeroCD part of the card, remove # the usb_storage kernel module so # it does not get treated like a storage device RUN+=”/sbin/rmmod usb_storage” LABEL=”ZTE_Modem” # This is the Modem part of the card, let’s # load usbserial with the correct vendor # and product ID’s so we get our usb serial devices RUN+=”/sbin/modprobe usbserial vendor=0x19d2 product=0×0108″, # Make users belonging to the dialout group # able to use the usb serial devices. MODE=”660″, GROUP=”dialout” LABEL=”ZTE_End”
    Chú ý mấy phần màu đỏ (Vender ID) và màu cam (Product ID) mà các bạn đã tìm thấy ở bước trên.
  6. Vào Synaptic Package Manager tìm vài cài wvdial hoặc ppp
  7. Save file lại rút USB ra.
  8. Vô System > References > Network connections chọn tab Mobile Broadband và làm như trong hình:
  9. selection018 Truy cập Internet trên Ubuntu với USB D com 3G Viettel selection019 Truy cập Internet trên Ubuntu với USB D com 3G Viettel selection021 Truy cập Internet trên Ubuntu với USB D com 3G Viettel selection022 Truy cập Internet trên Ubuntu với USB D com 3G Viettel selection023 Truy cập Internet trên Ubuntu với USB D com 3G Viettel
  10. Cắm USB vô, đợi tí cho máy nhận. Click lên network applet ở bên trên chọn Viettel Mobile D-Com 3G. Đợi tí là có thể lên mạng
  11. menu018 Truy cập Internet trên Ubuntu với USB D com 3G Viettel
Lưu ý các bạn là các bạn có thể dùng sim có kết nối GPRS để lên mạng. Nếu hết tiền thì cứ đổi sim thường có GPRS để lên mạng nhé. Nhưng phải tạo thêm một kết nối. Quan trọng là ở bước Choose your Billing Plan các bạn chọn Mobile Internet là xong. Như các bạn thấy trong hình, kết nối Viettel Mobile Mobile Internet1 là kết nối dùng sim có GPRS.
  • Cách 2: Sử dụng D-com 3G

  • Mình thường dùng cái này để kiểm tra tài khoản và nhắn tin, cũng khá tiện, nhưng có cái bất tiện là nếu dùng nó thì mỗi lần lên mạng là phải chạy một phần mềm. Như thế bất tiện lắm phải không. Chính vì vậy mình không thường sử dụng nó.
    1. Trước hết các bạn vào đây tải về
    2. Giải nén file vừa tải về xong được thư mục Linux. Vào thư mục Linux tiếp tục giải nén filePCL_VIEVN.tar.gz sẽ ra folder PCL_VIEVN.
    3. Sau đó gõ sudo nautilus để quản lý với file với vai trò root. Quay trở lại folder PCL_VIEVNhồi nảy, open file install.sh. Cửa sổ hiện ra chọn Run in terminal. Đợi tí là xong. Xong nó sẽ chạy D-com 3G với vai trò root. Bạn có thể để nó chạy chơi cũng được hoặc tắt đi rồi ra ngoài với vai trò user bình thường xài cho nó an toàn. Vậy là xong.Chú ý: Dùng cái này lên mạng, gọi cho 900 để kiểm tra tài khoảng + nhắn tin thì ok.
    Nguồn: Internet

    Cài USB 3G cho UBUNTU

    Trong bài viết này, tôi sẽ giới thiệu cách thiết lập kết nối USB 3G trên ubuntu 10.04, dịch vụ truy nhập Internet băng rộng từ máy tính thông qua thiết bị USB HSPA/HSDPA có gắn SIM 3G. Khi sử dụng dịch vụ này, thuê bao có thể truy cập Internet với tốc độ cao qua sóng di động 3G.
    Đối với người dùng xài windows, trong usb 3g có sẵn driver, chỉ cần cài đặt là sử dụng kết nối internet được dễ dàng.
    Đối với người dùng là linux, unix, Viettel không có tài liệu chỉ dẫn về driver, …

    1. Tậu một usb 3g

    Các bạn có thể liên lạc với các đại lý bán hàng của Viettel để sở hữu modem 3g usb
    các bạn có thể tham khảo tại đây: http://viettelonline.com/3g-usb/usb-3g

    2. Cấu hình

    1. Tham khảo tại đây để biết được usb của bạn đã được hỗ trợ driver: https://wiki.ubuntu.com/NetworkManager/Hardware/3G
    2. Cắm usb-3g vào máy tính
      - từ command line, gõ lsusb
    $ lsusb
    Bus 002 Device 006: ID 12d1:1001 Huawei Technologies Co., Ltd. E620 USB Modem
    ..
    - Nếu kết quả hiển thị có dòng “USB Modem ” thì máy bản đã nhận đúng thiết bị, thường thì ban đầu, ubuntu chỉ nhận usb của bạn là 1 usb storage bình thường:
    $ lsusb
    Bus 002 Device 006: ID 12d1:1446 Huawei Technologies Co., Ltd.
    - Để ubuntu nhận ra usb-3g là modem, thêm script sau để mỗi khi cắm usb-3g vào, hệ điều hành load đúng driver thiết bị
    $ sudo vi /etc/udev/rules.d/15-huawei-e1550.rules
    SUBSYSTEM=="usb",
    SYSFS{idProduct}=="1446",
    SYSFS{idVendor}=="12d1",
    RUN+="/lib/udev/modem-modeswitch --vendor 0x12d1 --product 0x1446 --type option-zerocd"
    - Trong đó, 12d1 là Vender ID của Huawei, 1446 là product id, các số này hiển thị khi gõ lệnh lsusb ở trên.
    - Rút usb-3g(nếu đang cắm vào máy) và cắm vào lại để hệ thống nhận đúng usb-3g
    1. Cấu hình:
      1. chọn: system > References > Network connections
      2. chọn tab "Mobile Broadband”, click Add
      3. chọn cấu hình theo hình dưới:


    Chọn NetworkManager Applet 0.8 góc trái màn hình, chọn "Viettel Mobile connection” để kết nối internet.
    Nguồn: Internet