banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Messages posted by: quanta  XML
Profile for quanta Messages posted by quanta [ number of posts not being displayed on this page: 0 ]
 
Xác nhận trường hợp này: Tớ đã có lần gặp ở nhà bạn tớ. Trước đó thì máy bạn tớ không đặt pass, nhưng mỗi lần log on lại phải click vào cái avatar để vào màn hình Desktop, sau đó tớ dùng
Code:
control userpasswords2

để remove cái bước đó đi. Nhưng sau này bạn tớ lại đặt pass, và nó trở thành chập chờn: lúc thì hỏi, lúc thì không hỏi. Thật không hiểu làm sao nữa (Windows XP SP1).

1. Dùng sonic music link taker
2. Vào google và gõ: tải nhạc tại sonic
Chương 3: Sử dụng RPM

Chương này bao gồm các vấn đề:
  • Cài đặt và nâng cấp phần mềm

  • Gỡ bỏ phần mềm


3.1 Lệnh rpm

Tất cả những gì bạn làm với gói RPM đều yêu cầu lệnh rpm. Những tác vụ thông thường như cài đặt và gỡ bỏ phần mềm có thể thao tác nhanh và hiệu quả. Cơ bản về lệnh rpm không quá khó, bạn có thể thực hiện những tác vụ cơ bản sau khi đọc xong chương này.

3.2 Nâng cấp và cài đặt phần mềm

3.2.1 Nâng cấp với lệnh rpm

Hầu hết các bước cài đặt sử dụng lệnh rpm với tùy chọn –U, cú pháp cơ bản là:
Code:
rpm –U package_name

Bạn cũng có thể sử dụng tùy chọn dài hơn là --upgrade thay thế cho –U

3.2.1.1 Kiểm tra một gói đã được cài đặt hay chưa

Bạn dùng lệnh
Code:
rpm –q <tên gói>

Nếu gói đó chưa được cài đặt bạn sẽ nhận được thông báo:
Code:
Package <tên gói> is not installed

3.2.1.2 Lấy thông tin phản hồi trong suốt quá trình cài đặt và nâng cấp

Tùy chọn –h đi với lệnh rpm sẽ in ra những ký hiệu #, còn được gọi là hash marks. Những hask marks này cung cấp một vài sự xác nhận rằng lệnh rpm vẫn đang được chạy. Điều này là quan trọng khi những gói lớn sẽ mất nhiều thời gian để cài đặt hoặc nâng cấp
Code:
rpm -Uh jikes-1.16-1.i386.rpm
You'll see this output:
########################################### [100%]
########################################### [100%]

Nếu gói đó không được tạo chính xác, bạn sẽ nhìn thấy những cảnh báo như sau:
Code:
########################################### [100%]
warning: user cabbey does not exist - using root
warning: user cabbey does not exist - using root
warning: user cabbey does not exist - using root
########################################### [100%]

Bạn có thể cài đặt một gói nhiều hơn một lần. Nhưng khi upgrade nó sẽ remove tất cả các version khác của gói đó. Đây là một trong nhiều lý do sử dụng tùy chọn –U
Thêm vào các hash marks bạn có thể lấy được thông tin chi tiết hơn khi thực hiện lệnh rpm. Tùy chọn –v đi với lệnh rpm sẽ in ra thông tin chi tiết về lệnh đang chạy, cú pháp như sau:
Code:
rpm -Uhv jikes-1.16-1.i386.rpm

Với tùy chọn –v bạn sẽ nhìn thấy output như sau:
Code:
Preparing... ########################################### [100%]
1:jikes ########################################### [100%]

Muốn có nhiều thông tin hơn nữa bạn có thể dùng tham số -vv (double verbose)
Code:
rpm -Uhvv jikes-1.16-1.i386.rpm
D: ============== jikes-1.16-1.i386.rpm
D: Expected size: 702988 = lead(96)+sigs(100)+pad(4)+data(702788)
D: Actual size: 702988
D: jikes-1.16-1.i386.rpm: MD5 digest: OK (2dba32192eca23eb480d1d02a9b6c022)
D: added binary package [0]
D: found 0 source and 1 binary packages
D: opening db environment /var/lib/rpm/Packages joinenv
D: opening db index /var/lib/rpm/Packages rdonly mode=0x0
D: locked db index /var/lib/rpm/Packages
D: ========== +++ jikes-1.16-1
D: opening db index /var/lib/rpm/Depends create mode=0x0
D: Requires: rpmlib(PayloadFilesHavePrefix) <= 4.0-1 YES (rpmlib provides)
D: opening db index /var/lib/rpm/Providename rdonly mode=0x0
D: opening db index /var/lib/rpm/Pubkeys rdonly mode=0x0
D: read h# 9 Header V3 DSA signature: NOKEY, key ID 897da07a
D: Requires: ld-linux.so.2 YES (db provides)
D: read h# 9 Header V3 DSA signature: NOKEY, key ID 897da07a
D: Requires: libc.so.6 YES (db provides)
D: read h# 9 Header V3 DSA signature: NOKEY, key ID 897da07a
D: Requires: libm.so.6 YES (db provides)
D: read h# 633 Header V3 DSA signature: NOKEY, key ID 897da07a
D: Requires: libstdc++-libc6.2-2.so.3 YES (db provides)
D: read h# 9 Header V3 DSA signature: NOKEY, key ID 897da07a
D: Requires: libc.so.6(GLIBC_2.0) YES (db provides)
D: read h# 9 Header V3 DSA signature: NOKEY, key ID 897da07a
D: Requires: libc.so.6(GLIBC_2.1) YES (db provides)
D: read h# 9 Header V3 DSA signature: NOKEY, key ID 897da07a
D: Requires: libc.so.6(GLIBC_2.1.3) YES (db provides)
D: Requires: rpmlib(CompressedFileNames) <= 3.0.4-1 YES (rpmlib provides)
D: closed db index /var/lib/rpm/Pubkeys
D: closed db index /var/lib/rpm/Depends
D: closed db index /var/lib/rpm/Providename
D: closed db index /var/lib/rpm/Packages
D: closed db environment /var/lib/rpm/Packages
D: ========== recording tsort relations
D: ========== tsorting packages (order, #predecessors, #succesors, tree, depth)D: 0 0 0 0 0 +jikes-1.16-1
D: installing binary packages
D: opening db environment /var/lib/rpm/Packages joinenv
D: opening db index /var/lib/rpm/Packages create mode=0x42
D: getting list of mounted filesystems
D: sanity checking 1 elments
D: opening db index /var/lib/rpm/Name create mode=0x42
D: read h# 707 Header sanity check: OK
D: computing 3 file fingerprints
Preparing... D: computing file dispositions
D: opening db index /var/lib/rpm/Basenames create mode=0x42
########################################### [100%]
package jikes-1.16-1 is already installed
D: closed db index /var/lib/rpm/Basenames
D: closed db index /var/lib/rpm/Name
D: closed db index /var/lib/rpm/Packages
D: closed db environment /var/lib/rpm/Packages

Chú ý: Mặc dùng hầu hết các ứng dụng trên Linux và Unix sử dụng dấu trừ (-) để thực hiện lệnh. Nhưng với rpm, nhiều chương trình lại dùng hai dấu trừ (--) để gán cho một tham số dài hơn. Chẳng hạn khi bạn dùng: -U và –upgrade là tương đương.

Một tùy chọn hiếm khi sử dụng là –percent. Tùy chọn này in ra phần trăm hoàn thành của lệnh rpm. Tùy chọn này sẽ có ích khi bạn dùng lệnh rpm trong một vài lệnh khác, như là GUI tạo từ Perl, Python …
Cú pháp cơ bản là:
Code:
rpm -U --percent jikes-1.16-1.i386.rpm

Khi chạy lệnh này bạn sẽ nhìn thấy output như sau:
Code:
%% 0.000000
%% 2.661902
%% 5.318614
%% 10.632039
%% 15.945465
%% 18.602177
%% 23.915603
%% 29.229028
%% 34.542453
%% 39.855879
%% 45.169304
%% 50.482729
%% 53.139442
%% 55.796154
%% 61.109580
%% 66.423005
%% 71.736430
%% 74.393143
%% 79.706568
%% 82.363281
%% 87.676706
%% 90.333419
%% 95.646844
%% 98.303557
%% 99.422736
%% 99.910411
%% 99.994892
%% 100.000000

3.2.1.3 Tác vụ cài đặt chi tiết

Khi một lệnh rpm cài đặt một gói, nó sẽ đi qua các bước sau:
+ Kiểm tra gói và các file muốn cài
+ Thực hiện preinstallation trước khi cài
+ Giải nén và đặt các file vào đúng vị trí
+ Thực hiện post-processing
+ Cập nhật rpm database
Khi kiểm tra 1 gói, rpm sẽ check tất cả các gói phụ thuộc vào nó. Các gói phụ thuộc, hiểu đơn giản là nó phải được cài trước khi gói chính có thể cài.
Ngoài ra khi check 1 gói, rpm cũng check tất cả các gói conflict với nó. Ví dụ khi bạn thử cài đặt 1 phiên bản cũ của một gói đè lên một phiên bản mới hơn.
Sau khi check, lệnh rpm sẽ thi hành các tác vụ preinstallation. Sau khi các công việc này hoàn tất, lệnh rpm sẽ bắt tay vào công việc và cài đặt các file trong gói. Các files này được lưu dưới định dạng nén bên trong file rpm.
Sau khi cài đặt, có thể có 1 vài tác vụ post-processing được thực hiện. Cuối cùng nó sẽ update RPM database để phản ánh các thông tin về gói mới. Việc này rất quan trọng, và cho phép bạn track packages.

3.2.1.4 Taking a Test Drive

Để test install or upgrade nhưng không tiến hành cài đặt bạn dùng tham số --test
Code:
rpm -U --test jikes-1.16-1.i386.rpm

Lệnh này sẽ không in ra output nếu quá trình test install hoặc upgrade diễn ra êm ả. Nếu không, bạn sẽ nhận được thông báo lỗi. Nếu gói đó đã được cài đặt bạn sẽ nhìn thấy thông báo như sau:
Code:
package jikes-1.16-1 is already installed

Nếu bạn biết về phần mềm bạn đang cài đặt, bạn có thể xác định các gói phụ thuộc khi nhìn thoáng qua. Ví dụ nếu bạn biết Ruby là một ngôn ngữ scripting, bạn có thể đoán rằng những gói bắt đầu với eruby như eruby-devel-0.9.8-2.i386.rpm, sẽ phụ thuộc vào gói ruby cơ bản.
Để làm điều này, bạn query cho bất kỳ gói ruby nào bằng lệnh
Code:
rpm -q ruby

Nếu bạn chưa cài đặt gói ruby bạn sẽ nhận được thông báo
Code:
package ruby is not installed

Chú ý: phần lớn các gói sử dụng tên viết thường (lowercase names), do đó bạn có thể expect rằng Ruby scripting language bắt đầu bởi ruby
Các gói phụ thuộc có thể trở thành cơn ác mộng đối với bạn, khi mà một gói phụ thuộc vào 1 số gói khác, và các gói này lại phụ thuộc vào 1 số gói khác
Lúc này bạn sẽ cần đến tuỳ chọn –test, bạn có thể check các gói phụ thuộc trước khi thử cài đặt. Ví dụ nếu bạn thử cài đặt gói eruby-devel-0.9.8-2.i386.rpm, bạn có thể chạy:
Code:
rpm -U --test eruby-devel-0.9.8-2.i386.rpm

Sau đó bạn sẽ nhìn thấy thông báo sau:
Code:
error: Failed dependencies:
eruby-libs = 0.9.8 is needed by eruby-devel-0.9.8-2

Bây giờ bạn có thể biết rằng gói eruby-devel-0.9.8-2.i386.rpm phụ thuộc vào eruby-libs.
Lúc này bạn có thể test xem gói này có làm việc tốt không bằng lệnh
Code:
rpm -U --test eruby-libs-0.9.8-2.i386.rpm

Oa, lúc này output cho bạn biết gói này lại phụ thuộc vào các gói khác:
Code:
error: Failed dependencies:
ruby-libs >= 1.6.4 is needed by eruby-libs-0.9.8-2
libruby.so.1.6 is needed by eruby-libs-0.9.8-2


3.2.1.5 Cài đặt hoặc nâng cấp nhiều gói cùng một lúc


Bạn có thể làm việc này bằng lệnh:
Code:
rpm -U package1.rpm package2.rpm .. package100.rpm

3.2.1.6 Cài đặt trên một thư mục khác

Tùy chọn --prefix và --relocate đi với lệnh rpm sẽ chỉ định một thư mục cài đặt cho gói:
Code:
rpm -U --prefix /new/directory package.rpm\
rpm -i --relocate /old/directory=/new/directory package.rpm

3.2.1.7 Forcing the Issue

Tùy chọn --replacepkgs đi với lệnh rpm để thay thế hoặc cài lại, các gói này có thể đã được cài
Tùy chọn --replacefiles đi với lệnh rpm sẽ ghi đè bản thân các file bởi một gói khác
Tùy chọn --justdb sẽ cập nhật cơ sở dữ liệu rpm mà không cài đặt các files. Bạn cần phải log in với quyền root để thực hiện việc này.
Tùy chọn --excludepath sẽ chặn không cài tất cả các file với đường dẫn sau đó, ví dụ:
Code:
rpm -U --excludepath /usr/lib eruby-devel-0.9.8-2.i386.rpm

Lệnh này sẽ cài đặt hoặc nâng cấp tất cả các files trong gói ngoại trừ các file được đặt trong thư mục bắt đầu bằng /usr/lib
Tùy chọn --allfiles sẽ cài đặt tất cả các file trong gói, bất kể file đó đã tồn tại hay chưa trên ổ cứng của bạn
Tùy chọn --oldpackage sẽ cho phép bạn cài đặt một phiên bản cũ hơn đè lên 1 phiên bản gần đó

Để tổ hợp các tùy chọn này, bạn có thể sử dụng --force, tùy chọn này sẽ bao gồm cả 3 tùy chọn: --replacepkgs, --replacefiles, and --oldpackage
Tùy chọn --nodeps sẽ bỏ qua sự kiểm tra các gói phụ thuộc và cài đặt tùy ý.

3.2.2 Nâng cấp các gói

Lệnh rpm –U thực hiện cùng lúc 2 công việc: cài đặt các gói mới, và nâng cấp các gói cũ

3.2.1.1 Tùy chọn khi nâng cấp

Chú ý khi nâng cấp, tùy chọn --noscripts chỉ bỏ qua các scripts của những gói mới, nếu một gói cũ được removed thì những đoạn scripts gỡ bỏ cài đặt cho gói này vẫn được thi hành.
Khi nâng cấp bạn cũng có thể sử dụng tùy chọn --repackage để tạo một gói, một file rpm, từ bất kỳ gói nào nó sẽ xóa. Chú ý rằng tùy chọn này không tạo một gói hoàn chỉnh. Bạn sẽ không thể cài đặt lại một gói được tạo bởi tùy chọn --repackage. Tốt nhất là sử dụng tùy chọn này để sao lưu gói cũ, từ đó tạo 1 gói để làm việc. Hãy cẩn thận với tùy chọn này.
Ví dụ:
Code:
rpm -U --repackage jpilot-0.99.2-8.i386.rpm

3.2.2.2 Smart Upgrades

3.2.3 Freshening up
Quá trình làm mới có nghĩa là cài đặt một phiên bản mới của một gói nếu bạn đã cài một phiên bản cũ của gói đó. Quá trình này rất giống với quá trình nâng cấp ngoại trừ là: làm mới sẽ yêu cầu bạn đã cài một phiên bản trước đó của gói, còn nâng cấp có thể cài một gói lần đầu tiên. Cú pháp cơ bản của lệnh này với tùy chọn –F
Code:
rpm -F package_name

Bạn cũng có thể sử dụng tùy chọn dài hơn: --freshen

3.2.4 Cài đặt các gói
Cú pháp:
Code:
rpm –i filename.rpm

Ví dụ:
Code:
rpm –i jikes-1.16-1.i386.rpm

Bạn nên sử dụng tùy chọn –U thay vì –i. Một lý do chính là rpm –i cho phép bạn cài nhiều instances của gói giống nhau. Đây không phải là điều bạn muốn

3.2.5 Cài đặt qua Internet

3.2.5.1 Sử dụng FTP

Chìa khóa để tạo những giao thức làm việc với lệnh rpm là bạn cần tạo một URL để remote tên file, cú pháp như sau:
Code:
rpm -i ftp://hostname/path/to/file/filename.rpm

Ví dụ, lệnh sau sẽ tải xuống một gói từ IBM FTP Server:
Code:
rpm -i ftp://www-126.ibm.com/pub/jikes/jikes-1.16-1.src.rpm

Nhiều FTP Server yêu cầu bạn nhập username và pass. Nếu bạn không nhập đúng, nó sẽ thông báo lỗi dữ liệu
Bạn có thể chèn username vào ngay trước host name và ngăn cách chúng bằng ký hiệu @, ví dụ:
Code:
rpm -i ftp://unclejoe@www-126.ibm.com/pub/jikes/jikes-1.16-1.src.rpm

Sau khi nhập username, lệnh rpm sẽ yêu cầu bạn nhập password, nhưng bạn cũng có thể chèn luôn vào lệnh rpm, và ngăn cách với username bởi dấu hai chấm(smilie
Code:
rpm -i ftp://unclejoe:workers@www-126.ibm.com/pub/jikes/jikes-1.16-1.src.rpm

Trong trường hợp này: username là: unclejoe, và password là workers

3.2.5.2 Cài đặt sử dụng HTTP

Lệnh rpm hỗ trợ giao thức HTTP, sử dụng bởi nhiều Web servers. Cũng giống như FTP, bạn phải đưa vào một URL định danh file:
Code:
rpm –i http://ftp.redhat.com/pub/contrib/noarch/SRPMS/Squeak-sources-3-1.src.rpm

3.2.6 Cài đặt các gói RPM nguồn

Các gói rpm nguồn chứa đựng mã nguồn sử dụng để build một ứng dụng hoặc thư viện chương trình, và các đoạn scripts sử dụng để build phần mềm trong ứng dụng hoặc thư viện đó. Những đoạn scripts này được gọi là phương pháp xây dựng phần mềm

Các gói rpm nguồn thường chứa mã nguồn chương trình. Chúng có thể cũng chứa các bản vá mã nguồn, các đoạn scripts để build chương trình, hoặc các file đặc biệt sử dụng cho môi trường desktop, các icons, và các file khác được coi như là một phần của mã nguồn.
Chú ý rằng:
Một bản vá là một file chỉ chứa những phần khác nhau của một phiên bản với một phiên bản khác.
Trong hầu hết các trường hợp thì mỗi file rpm sẽ có file nguồn rpm tương ứng

Phần mềm mã nguồn mở:
Linux và hàng nghìn ứng dụng chạy trên Linux được gọi là các phần mềm mã nguồn mở. Đó là bởi vì mã nguồn của Linux và các phần mềm ứng dụng này sẵn có để dùng, nhưng chúng được sử dụng dưới các loại giấy phép mã nguồn mở khác nhau. Xem thêm tại: www.opensource.org/licenses

3.3 Gỡ bỏ phần mềm


Để remove một gói bạn sử dụng tùy chọn –e (viết tắt của erase):
Code:
rpm -e package_name

Chú ý rằng khi xóa hoặc remove các gói, bạn phải sử dụng tên gói, chứ không phải tên file rpm
Ví dụ:
Code:
rpm -e jikes-1.16-1

Luôn nhớ rằng bạn phải log in với quyền root, hoặc super user để remove phần lớn các gói. Đó là bởi vì các file gói này được bảo vệ. Thêm vào đó, cơ sở dữ liệu rpm cũng được bảo vệ
Khi remove một gói, đầu tiên lệnh rpm sẽ kiểm tra tất cả các gói phụ thuộc vào gói mà bạn định remove. Điều này rất quan trọng để đảm bảo bạn không tình cờ remove đi những gói cần thiết cho phần còn lại của hệ thống.
Cũng giống như khi cài đặt, lệnh rpm cũng hỗ trợ tùy chọn --test khi remove. Ví dụ nếu bạn muốn thử remove một gói quan trọng như
syslinux-1.75-3, bạn có thể sử dụng tùy chọn --test:
Code:
rpm -e --test syslinux-1.75-3

Lệnh này sẽ gây lỗi như sau:
Code:
error: Failed dependencies:
syslinux is needed by (installed) mkbootdisk-1.4.8-1

3.3.1 Kiểm tra các gói vừa được remove

Sau khi chạy lệnh rpm –e bạn có thể dùng rpm –q để kiểm tra cách gói vừa được remove. Nếu rpm chỉ ra rằng gói đó chưa được cài đặt -> chứng tỏ bạn đã xóa thành công.
Code:
# rpm -q jikes
jikes-1.16-1
# rpm -e jikes-1.16-1
# rpm -q jikes
package jikes is not installed


3.3.2 Remove nhiều gói cùng lúc

Code:
rpm -e aspell-en-ca-0.33.7.1-16 aspell-en-gb-0.33.7.1-16


3.3.3 Tùy chọn khi remove gói

Tùy chọn --nodeps sẽ bỏ qua việc test các gói phụ thuộc, sử dụng tùy chọn này khi bạn thực sự, thực sự muốn uninstall một gói
Tùy chọn --nopreun sẽ không chạy pre-uninstallation scripts
Tùy chọn --nopostun sẽ không chạy post-uninstallation scripts

3.4 Các tùy chọn lệnh rpm khác

Tùy chọn --quiet sẽ không hiển thị phần lớn các thông tin đầu ra ngoại trừ các lỗi
Tùy chọn --version sẽ in ra số phiên bản của lệnh và sau đó thoát luôn
Code:
rpm --version
RPM version 4.1


3.5 Tóm tắt

Chương này nói về các phần dễ của việc quản lý gói với các thao tác cơ bản như: cài đặt, gỡ bỏ, hay nâng cấp phần mềm
Bảng sau tóm tắt lại các lệnh cơ bản:

Command Usage
rpm –i install_options package_files Install packages.
rpm –e remove_options packages Erase, remove, packages.
rpm –U install_options package_files Upgrade or install packages. Use this option for installations.
rpm –Uvh install_options package_files Upgrade or install packages with extra output. This is the recommended command to install packages.
rpm –F install_options package_files Freshen packages.

Khi quản lý các hệ thống hiện đại thì sẽ có nhiều phức tạp hơn. Trong chương tới chúng ta sẽ nói về các gói phụ thuộc, và sự phức tạp khi một gói phụ thuộc vào một số gói khác, và chúng lại phụ thuộc vào một số gói khác nữa.

Hết chương 3.



Bạn thử cái này xem:
http://www.quantrimang.com/view.asp?Cat_ID=8&Cat_Sub_ID=0&news_id=113
Bản tiếng Anh các bạn có thể xem tại:
http://docs.fedoraproject.org/drafts/rpm-guide-en/
Sau đây tớ xin dịch tóm tắt lại tài liệu này. Bài dịch của tớ chú trọng cú pháp lệnh, giải nghĩa các tham số và lưu ý khi thực hiện các lệnh nên một số phần lý thuyết các bạn vui lòng đọc trên site. Đây cũng là lần đầu tiên tớ viết bài dịch nên rất mong sự đóng góp và thông cảm của tất cả các bạn. Xin chân thành cảm ơn.

Chương 1. Giới thiệu về RPM

Chương này sẽ bao gồm các vấn đề sau:
  • Lịch sử quản lý gói

  • Giới thiệu tính năng RPM

  • Làm quen với công nghệ RPM

Một vài trình quản lý sẵn có cho Linux để track và thao tác với các ứng dụng đã được cài đặt trên hệ thống. Phần lớn sử dụng trình quản lý gói Linux đó là RPM Package Manager, gọi tắt là RPM.
Mặc dù ban đầu RPM được dùng để phát triển Red Hat Linux, nhưng ngày nay một loạt các tính năng công nghệ và sự điều chỉnh hợp lý đã làm cho RPM trở thành một chuẩn cho các phần mềm đóng gói dùng trên phần lớn các distro của Linux.

1.1 Sự cần thiết cho hệ thống quản lý gói trên Linux

1.2 RPM Design Goals


1.2.1. Sự thuận tiện khi cài đặt từ RPM

+ Việc cài đặt 1 gói sử dụng RPM chỉ cần 1 lệnh đơn:
Code:
rpm –U <tên file.RPM>

Trong khi cài đặt 1 gói từ nguồn, cần ít nhất 6 bước:
Code:
tar zxf software_package
cd software_package
./configure
make
su
make install

Các phần 1.2.2 đến 1.2.8 các bạn đọc trên site

1.3 Công nghệ RPM

Khi làm việc với các gói RPM, hiểu được khái niệm gói là then chốt. Một gói RPM được cung cấp dưới dạng một file nén, chứa 1 hay nhiều file, với thông tin cài đặt rõ ràng từ những file đó, bao gồm sở hữu và quyền được apply với mỗi file trong suốt quá trình cài đặt. Chỉ dẫn cũng có thể chứa những đoạn script để chạy sau khi cài đặt hoặc trước khi gỡ bỏ

Để thuận tiện trong việc cài đặt và quản lý, các gói này được gán nhãn, với khả năng định danh cao. Thông thường, một gói gồm 4 phần như sau:

• kernel-smp-2.4.18-3.athlon.RPM
• kernel-smp-2.4.18-3.i586.RPM
• kernel-smp-2.4.18-3.i686.RPM
• kernel-source-2.4.18-3.i386.RPM
• rootfiles-7.2-1.noarch.RPM
Cấu trúc đặt tên file của 1 gói là:
name-version-release.architecture.RPM
Thông thường tên định danh chính là tên ứng dụng hoặc tên gói khi nó được cài đặt trên hệ thống.
Trường thứ 2 chính là phiên bản, trường này định nghĩa số phiên bản của phần mềm chứa đựng file gói
Mọi tên file gói còn có 1 trường thứ 3 gọi là “Trường phát hành”. Trường này lưu giữ ngày phát hành phiên bản phần mềm mà file gói chứa đựng. Các file gói chứa đựng cả phần mềm và chỉ dẫn về cách cài đặt. Với những gói đặc biệt, đôi khi trong file chỉ dẫn bao gồm luôn các lỗi từng phát sinh, và các bugs đã được fix trong các phiên bản trước
Trường cuối cùng trong tên file gói chính là kiểu kiến trúc, định danh các loại hệ thống và file đó tương thích. Ví dụ gói kernel-smp-2.4.18-3.athlon
Có dụng ý được sử dụng trên máy AMD Athlon CPU

RPM hỗ trợ nhiều loại kiến trúc khác nhau. Bảng sau liệt kê các kiến trúc có thể cho các nền tảng khác nhau với phiên bản RPM.\

Platform Architectures
Intel compatible 32-bit i386, i486, i586, i686, athlon
Intel compatible 64-bit ia64
HPAlpha (formerly Digital, Compaq) alpha, alphaev5, alphaev56, alphapca56, alphaev6, alphaev67
Sparc/Ultra Sparc (Sun) sparc, sparcv9, sparc64
ARM armv3l, armv4b, armv4l
MIPS mips, mipsel
Power PC ppc, ppciseries, ppcpseries, ppc64
Motorola 68000 series m68k, m68kmint
SGI MIPS Sgi
IBM RS6000 rs6000
IBM S/390 i370, s390x, s390
Platform independent noarch
 

Chú ý rằng 4 trường trong tên gói RPM được ngăn cách với nhau bởi dấu gạch ngang (-) hoặc dấu chấm (.). Cuối cùng luôn nhớ rằng tất cả các tên file gói RPM đều sử dụng phần mở rộng “.RPM” để biểu thị đó là một gói RPM.

1.4 Tóm tắt:

Hệ thống RPM được tạo ra không phải để giải quyết những vấn đề mang tính lý thuyết. Thay vào đó, nó là kết quả của những kinh nghiệm thực hành trong sự cố gắng quản lý các hệ thống với nhiều ứng dụng. Các gói RPM được xây dựng trên các hệ thống cũ hơn, được tạo ra để giải quyết một số vấn đề về quản trị hệ thống. RPM sẽ còn phát triển hơn nữa, và cố gắng để trở thành một giải pháp quản lý gói hoàn chỉnh

Phần lớn các hệ điều hành khác không hỗ trợ nhiều hơn 1,2 bộ vi xử lý. Linux thì có và còn có thể hơn nữa. Phần lớn các hệ điều hành khác cũng không bao gồm nhiều ứng dụng, linux thì có từ Open Office đến Apache Web server. Cuối cùng các hệ điều hành khác thường cung cấp các ứng dụng mã nguồn đóng, còn linux thì lại có đến hàng trăm mã nguồn mở.

Tóm tắt các tính năng của RPM:
+ hỗ trợ đa kiến trúc
+ Cho phép nhiều phiên bản phần mềm chạy song song
+ 1 file cho cả 1 chương trình
+ Yêu cầu chỉ 1 lệnh khi thực hiện
+ sử dụng mã nguồn mở

Hết chương 1.

Chương 2: Khái quát về RPM

Chương này bao gồm các vấn đề:
  • Hiểu biết về file gói

  • Querying the RPM database

  • Chạy các lệnh RPM

Làm việc với các gói, file, lệnh, database có thể rất phức tạp. Có hàng nghìn file trong hàng trăm gói cài đặt trên hệ thống của bạn. Bạn cần vài cách để quản lý tất cả. Hệ thống RPM có thể giúp bạn làm điều đó.
Chương này sẽ cung cấp một cái nhìn khái quát về các thành phần tạo nên hệ thống RPM cho việc quản lý gói: file gói, cơ sở dữ liệu và lệnh RPM

2.1 Hiểu biết về file gói

RPM cung cấp khả năng cài đặt, nâng cấp, gỡ bỏ các gói. Thông thường mỗi gói là một ứng dụng và các file cần thiết liên kết với ứng dụng đó. Ví dụ máy chủ web Apache sẽ có một số file cấu hình, một tập hợp lớn các file tài liệu và bản thân Apache. Tất cả nằm trong một gói RPM
Một thuận lợi chính của hệ thống RPM đó là: Một file RPM là một gói hoàn chỉnh

2.1.1 Định dạng file RPM

Một file gói RPM chứa 4 phần. Phần đầu là sự nhận biết chính, nó đánh dấu file như một gói RPM. Các phần sau lần lượt là: signature, header, và payload. Mỗi phần đều chứa những thông tin quan trọng về gói, mặc dù phần chứa nội dung thực sự về gói chính là payload.
Signature: giúp xác nhận tính toàn vẹn của một gói. Nó không kiểm tra lỗi trong các ứng dụng phần mềm. Thay vào đó, nó đảm bảo rằng bạn đã tải xuống một tài liệu RPM hợp lệ
Header: có thể chứa những khối dữ liệu thuộc về gói hoặc không. Nó chứa đựng những thông tin như là: thông điệp bản quyền, số phiên bản, hoặc tóm tắt về gói
Payload: chứa những file thực sự được sử dụng trong gói. Những file này được cài đặt khi bạn cài đặt gói

2.1.2 RPM nhị phân và RPM nguồn

Có 2 loại chính của các gói RPM, đó là RPM nhị phân và RPM nguồn. Một gói RPM nhị phân được biên dịch riêng cho một kiến trúc đặc biệt. Phần lớn những gói RPM nhị phân chứa đựng các ứng dụng hoàn chỉnh, số còn lại cung cấp các thư viện. Một số các chương trình, phần lớn là games sử dụng các thư viện này để nâng cao multimedia. RPM cung cấp các thư viện cho phép nhiều ứng dụng chia sẻ các thư viện giống nhau

2.1.3 Các gói RPM nguồn

Theo quy ước, các gói RPM nguồn có tên file kết thúc bằng .src.RPM
Các gói RPM nguồn chứa đựng tất cả các lệnh, thường là các scripts cần thiết để tạo lại các gói RPM nhị phân. Có gói RPM nguồn có nghĩa là bạn có thể tạo lại các gói RPM nhị phân bất cứ lúc nào. Đây là một điểm rất quan trọng của hệ thống RPM.

Ngoài ra nếu các bạn để ý trên các site cho download sẽ thấy có các gói kết thúc bằng: ppc.rpm (dành cho Pocket PC), và noarch.rpm (Không phụ thuộc vào kiến trúc - no architect).

2.2 Querying the RPM database

Cơ sở dữ liệu RPM chứa thông tin về tất cả các gói RPM cài đặt trên hệ thống của bạn. Bạn có thể sử dụng cơ sở dữ liệu này để query những gì đã cài đặt
Cơ sở dữ liệu RPM được lưu trong /var/lib/RPM và chứa đựng các file như sau:

• Basenames
• Conflictname
• __db.001
• __db.002
• __db.003
• Dirnames
• Filemd5s
• Group
• Installtid
• Name
• Packages
• Providename
• Provideversion
• Pubkeys
• Requirename
• Requireversion
• Sha1header
• Sigmd5
• Triggername
 

File __db.001 và các file tương tự là các file khóa của hệ thống RPM. Phần lớn các file quan trọng là các packages. Các file khác như name, provide name, group tồn tại nhằm làm tăng tốc độ truy cập với những loại thông tin đặc biệt

2.3 Chạy các lệnh RPM

2.3.1 Làm việc với lệnh rpm

Các tham số chính của RPM:

Upgrade/install -U --upgrade
Install -I --install
Remove -e --erase
Query -q --query
Verify -V --verify
Check signature -K --checksig
Freshen (upgrade) already-installed package -F --freshen
Initialize database None --initdb
Rebuild database None –rebuilddb
 

Để install hay upgrade một gói sử dụng lệnh:
Code:
rpm –U <tên file.RPM>

Để chi tiết hơn, bạn gõ lệnh
Code:
rpm –uvh <tên file.RPM>

Với tham số -h (hence), lệnh RPM sẽ in ra một loạt các hash mark, để thông báo rằng lệnh vẫn đang được chạy. Với tham số -v (verbose message), lệnh này sẽ cung cấp nhiều thông báo chi tiết hơn.
Để remove một gói, các bạn dùng tham số -e:
Code:
rpm –e <tên gói>

Lưu ý rằng, khi bạn cài đặt 1 gói, thì tên file sẽ có phần mở rộng “RPM”, còn khi gỡ bỏ hoặc xóa một gói thì sẽ không có phần mở rộng này. Tên file và tên gói không bắt buộc phải tương ứng, nhưng thông thường thì chúng giống nhau.

Để liệt kê tất cả các gói đã được cài đặt trên hệ thống của bạn:
Code:
rpm –qa

Thường thì danh sách này rất dài, và để sử dụng lệnh này một cách có hiệu quả hơn, chúng ta dùng:
Code:
rpm –qa | more


2.3.2 Các lệnh rpm khác

Hệ thống RPM còn có một số lệnh như: RPM build và RPM2cpio
RPMbuild giúp build một gói RPM
RPM2cpio sẽ export 1 file gói RPM theo một định dạng mà cpio chỉ định. Lệnh cpio làm việc với nhiều gói sao lưu. Bạn có thể liệt kê các file riêng lẻ trong 1 file nén cpio.
Để liệt kê các file trong 1 gói RPM, sử dụng lệnh:
Code:
rpm2cpio package_file.RPM | cpio –t


Lệnh rpm2cpio cũng có thể extract 1 file đơn từ gói RPM với tùy chọn –ivd
Code:
rpm2cpio xcopilot-0.6.6-3.i386.RPM | cpio –ivd


Hết chương 2.

gsmth wrote:

quanta wrote:
Add đoạn này vào fstab liệu có được không các bác:
Code:
/dev/hda1 /mnt/C ntfs rw, umask=002, nls=utf8
 

Trong trường hợp nào?! Hỏi cho rõ ràng mạch lạc xem. lúc thì ntfs lúc thì ntfs-3g, blah... 

Sorry bác, ý em là nếu cài kernel-ntfs, rồi add đoạn code đó vào fstab thì có read-write được không vậy?

YHT wrote:
Mình thì chưa bị trường hợp hibernate này, nhưng nhìn log quanta đưa ra thì ntfs-3g không cho mount luôn chứ không phải chỉ cho read-only. không biết hiện tại thì nó đã cho phép read-only chưa. Mà hibernate cũng có gì ghê gớm đâu, sao không cho con người ta mount cho rồi nhỉ, smilie.
 

Chính xác là nó không cho mount luôn YHT à,



Add đoạn này vào fstab liệu có được không các bác:
Code:
/dev/hda1 /mnt/C ntfs rw, umask=002, nls=utf8
Tớ dùng ntfs-3g để mount, ban đầu nó ra cái error này:
Code:
mount -t ntfs-3g /dev/hda1 /mnt/windows
$MFTMirr does not match $MFT (record 0).
Failed to mount '/dev/hda1': Input/output error
NTFS is inconsistent. Run chkdsk /f on Windows then reboot it TWICE!
The usage of the /f parameter is very IMPORTANT!
No modification was
made to NTFS by this software.

Sau đó google thì biết cách fix là:
Code:
ntfsfix /dev/hda1
ntfs-3g /dev/hda1 /mnt/C -o force

Tớ đã thử và thành công rồi. Nhưng sau đó tớ log vào Win và hibernate Win, rồi log vào FC, thì ổ C không được mount tự động nữa (đã add trong fstabCode:
/dev/hda1 /mnt/C ntfs-3g defaults 0 0
).

Tớ thực hiện mount lại thì lại gặp lỗi này:
Code:
[root@localhost ~]# ntfsfix /dev/hda1
Mounting volume... FAILED
Attempting to correct errors...
Processing $MFT and $MFTMirr...
Reading $MFT... OK
Reading $MFTMirr... OK
Comparing $MFTMirr to $MFT... OK
Processing of $MFT and $MFTMirr completed successfully.
Setting required flags on partition... OK
Going to empty the journal ($LogFile)... OK
Remount failed : No such file or directory
[root@localhost ~]# ntfs-3g /dev/hda1 /mnt/C -o force
Windows is hibernated, refused to mount.
Failed to mount '/dev/hda1': Operation not permitted
The NTFS partition is hibernated. Please resume and shutdown Windows
properly, so mounting could be done safely.


Tớ muốn hỏi tại sao Linux lại không cho mount NTFS patition khi Win cài trên patition đó đang được hibernate.
Thanks
ps: Nhân tiện cho tớ hỏi, muốn hibernate trong FC4, có thể cài gói nào?

Bạn thử cái này:
http://support.microsoft.com/kb/295824
hoặc gõ cái thông báo kia và google và search.
Thử link này:
http://hvaonline.net/hvaonline/posts/list/10312.html
Trong đó có đoạn:

Nếu gặp phải lỗi "The page can not be displayed" hoặc mở ra chỉ thấy trang đầu tiên bạn thử làm như sau:
-Vào Control Panel--->Regional and language options---->language--->check vào ô "install files for complex script and.....ok windows yêu cầu đưa đã cài đặt,xong khởi động lại máy.
-Vào Control Panel--->Regional and language options---->advance rồi chọn vietnamese trong phần "language for non-unicode programs" >> Restart máy.
===> Bảo đãm sẽ đọc được tiếng việt đầy đủ.
 
Tình cờ tớ kiếm được cái này trên mạng:

http://www.itgatevn.com.vn/?u=nd&scid=10&nid=8750

http://www.softvnn.com/forums/showthread.php?t=29544

Tớ thấy cái hay nhất có lẽ là google translate. Chẳng hạn khi bạn search trên google một thông tin nào đó, bạn kiếm được nó rồi, nhưng rất tiếc khi load lên lại là tiếng Pháp hoặc tiếng Trung, đây chính là lúc bạn cần đến google translate để dịch sang tiếng Anh.
Ví dụ đây là site tớ kiếm được về cách dùng Captive-static để mount NTFS trong linux, nhưng là tiếng Trung:
http://buxus.s31.xrea.com/pukiwiki/pukiwiki.php?Captive
Còn đây là tiếng Anh sau khi dùng Google translate:
http://www.google.com/translate?langpair=cn|en&u=http://buxus.s31.xrea.com/pukiwiki/pukiwiki.php?Captive

Một số ký hiệu ngôn ngữ thông dụng:
Anh: en
Trung Quốc: cn, zh
Pháp: fn
Tây Ban Nha: es
Hàn Quốc: ko
Nhật Bản: ja



Thanks Mr.Khoai,
D chính là patition D của tớ, nó là FAT32. Mr.Khoai có thể nói rõ hơn về việc filesystem không support tạo link không? Còn MPlayer không nhất thiết cài lame à? Cả tuần nay tớ ngồi cài một cài video Player mà không xong, bực thật. Một phần là do đọc tài liệu không kỹ, muốn lao vào làm ngay, một phần là cài cái quái gì cũng gặp lỗi, mà toàn lỗi khó hiểu, google cũng không ra. Nhiều gói thì quá nhiều dependencies như "xine" chẳng hạn. Bây giờ tớ chỉ tập trung vào cài 1 cái, đó là MPlayer bằng được thì thôi.
Cảm ơn các bác nhé, các bác giúp em với, thanks.


Anh confirm giúp em về độ tin tưởng của tài liệu về MPlayer này:
[url]http://www.mjmwired.net/resources/mplayer-fedora.html
[/url]
Tại sao phần requirement của tài liệu trên lại khác với trong file Readme này:
http://www.mplayerhq.hu/DOCS/README

Theo file readme, sau khi thực hiện chạy script "./configure", thấy ko có gì lỗi, em tiến hành "make" thì gặp lỗi này:

ln -sf libdha.so.1.0 libdha.so.1
ln: creating symbolic link `libdha.so.1' to `libdha.so.1.0': Operation not permitted

make[1]: *** [libdha.so.1.0] Error 1

make[1]: Leaving directory `/mnt/D/linux/Packages/Multimedia/MPlayer/MPlayer-1.0rc1/libdha'

make: *** [libdha/libdha.so] Error 2

 


Em muốn hỏi thêm về cách đọc và fix những lỗi này (chúng đều xảy ra khi em thực hiện "make")

1. Lỗi khi em cài thư viện gtk:

passing argument 1 of 'strlen' differ in signedness
make[2]: *** [gstrfuncs.lo] Error 1

make[2]: Leaving directory `/mnt/D/linux/Packages/Multimedia/glib-1.2.10'

make[1]: *** [all-recursive] Error 1

make[1]: Leaving directory `/mnt/D/linux/Packages/Multimedia/glib-1.2.10'

make: *** [all-recursive-am] Error 2
 


2. Lỗi khi em cài gói dependency : lame-3.97 cho MPlayer theo tài liệu 1

config.status: creating Makefile

config.status: creating libmp3lame/Makefile

config.status: creating libmp3lame/i386/Makefile

config.status: creating frontend/Makefile

config.status: creating mpglib/Makefile

config.status: creating doc/Makefile

config.status: creating doc/html/Makefile

config.status: creating doc/man/Makefile

config.status: creating include/Makefile

config.status: creating Dll/Makefile

config.status: creating misc/Makefile

config.status: creating debian/Makefile

config.status: creating dshow/Makefile

mkdir: cannot create directory `ACM': File exists

config.status: error: cannot create directory "ACM"

 

Không hiểu sao đoạn cuối, sau khi tạo makefile, nó lại báo thư mục ACM đã tồn tại. Em tìm theo đường dẫn "dshow/Makefile" nhưng không thấy.
Ngoài "make clean", "make distclean" và "make uninstall", có cách nào để remove hoàn toàn những gì đã cài trước đó không anh? Em đã thử vào /usr/local và /usr/local/bin, /usr/local/bin/lib tìm những file đó để xóa đi.



Sorry anh, em gõ vội quá, nó là "xine-lib-1.1.6". Nó là một core engine để cài "xine" mà. Em dùng Fedora core 4 mà anh, em load nó từ đây: http://xinehq.de/index.php/download



conmale wrote:

dat file là codec gì vậy?
 

Oái, anh lại "châm" em rồi, ý em là khi thử play các định dạng file đó trên RealPlayer thì nó gặp lỗi đó. Em đọc và biết là thiếu codec. Em có nói "dat file" là 1 codec đâu! hi,

conmale wrote:

Với RealPlayer thì đọc cái FAQ ở https://player.helixcommunity.org/2005/help/playerfaq.html.

Có 1 câu:

Q. What media types are not supported?
The following media types are not supported:

* RealAudio 3
* Windows Media (wmv/wma/asf, mms streaming)
* Older QuickTime codecs (eg, Sorenson. New QuickTime supported via MPEG4)
* MPEG1, MPEG2
* Digital CD playback
* DVD 


Nếu RealPlayer không dùng mấy cái ở trên thì làm sao mà được?

MPlayer có lẽ player có nhiều chức năng và hỗ trợ nhiều codec nhất. Trước khi cài, đọc thật kỹ:
http://www.mplayerhq.hu/DOCS/README

Những trở ngại thông thường của các player là thiếu codecs mà thôi. Không riêng gì trên Linux mà tất cả các hệ điều hành khác, nếu thiếu codec thì không có cách gì play được. Bởi thế, dùng player nào, đọc kỹ đòi hỏi của player đó.
 

Cảm ơn anh.

conmale wrote:

quanta wrote:

Anh chỉ cho em cách fix lỗi này được không:
Code:
error: unpacking of archive failed on file /usr/lib/libxine.so.0.5.0;4641d4df: cpio: read

 

Lỗi này do cái gì mà ra? Em "unpack" nó? và unpack từ cái gì? thao tác ra sao? 

Lỗi này xảy ra khi em thực hiện lệnh "make" cho gói xine-lib-1.1.6. Em đã đọc kỹ readme and install, đã cho chạy cái script "./configure", em đã dò kỹ từng dòng và thấy không có gì bất ổn xảy ra, nhưng khi thực hiện make thì lại gặp lỗi trên. Em đã thử "make clean" rồi làm lại, nhưng vẫn gặp lỗi đó.
Vấn đề của em bây giờ là: cài codec cho RealPlayer10GOLD anh à, em search suốt 3, 4 ngày hôm nay mà không kiếm được. Em cài được RealPlayer rồi nhưng chỉ play được mp3 thôi. Chạy dat file thì báo lỗi:
Code:
The player does not have the capabilities to play back this content

Chạy mpg file thì:
Code:
Unsupported document type

Em đã thử gstreamer, win32-codec... nhưng cũng không được.
Anh giúp em với nhé.
Nhân tiện anh cho em hỏi, trong các video player trên Linux, gói nào dễ cài hơn cả? Mấy ngày nay em ngồi cài đủ các loại mà không thành công: xine, MPlayer, Xmovie, ...
xine thì em thấy nó có nhiều gói phụ thuộc quá, xmovie thì em cũng thiếu codec, không chạy được file nào cả, hoặc có file chạy được lại không có hình...
Anh chỉ cho em cách fix lỗi này được không:
Code:
error: unpacking of archive failed on file /usr/lib/libxine.so.0.5.0;4641d4df: cpio: read

1. Cố gắng ngồi nghĩ lại
2. Kiếm một cái soft recover nó (nếu nó <= 6 ký tự)
(Office password recover)
ý 1: Có thể máy để chế độ hibernate
ý 2: Bạn vào box Virus tìm hiểu
Bạn tìm trong diễn đàn với keyword: "JForum", sẽ tìm được bài viết hướng dẫn cài đặt JForum của KHUNGLONG, đọc kỹ lại nó.

conmale wrote:

configure chỉ là một cái script để chuẩn bị những thứ cần thiết trước khi make (compile + build). Bởi thế, chạy ./configure có nghĩa là phải có cái configure script hiện diện ở thư mục mình đang làm việc (đây là kiến thức căn bản).
 

Vâng ạ, cái này em đã biết sau khi tìm đọc lại. Vì vậy cho nên có những gói đặc biệt, nó không dùng script này, mà phải đọc trong install để cài.

conmale wrote:

configure cho phép mình ấn định những thứ thích hợp để build cho thích hợp và một trong những ấn định thông thường là --prefix. Theo mặc định, nếu không ấn định cụ thể giá trị --prefix thì binaries sau khi build xong sẽ được cài vào /usr/local/ chớ không phải /usr/
 

Cảm ơn anh.

conmale wrote:

Chạy ./configure không thành công thì tất nhiên không thể make được và không thể make thì không có cái chương trình nào được tạo ra sau đó để mà chạy cả.
 

Nếu trong 1 gói nào đó em "./configure" đã thành công, nhưng khi "make" lại lỗi, chẳng hạn như:

make all-recursive
make[1]: Entering directory `/mnt/D/linux/Packages/Multimedia/xine-lib-1.1.6'
Making all in doc
make[2]: Entering directory `/mnt/D/linux/Packages/Multimedia/xine-lib-1.1.6/doc'
Making all in man
make[3]: Entering directory `/mnt/D/linux/Packages/Multimedia/xine-lib-1.1.6/doc/man'
Making all in en
make[4]: Entering directory `/mnt/D/linux/Packages/Multimedia/xine-lib-1.1.6/doc/man/en'
make[4]: Nothing to be done for `all'.
make[4]: Leaving directory `/mnt/D/linux/Packages/Multimedia/xine-lib-1.1.6/doc/man/en'
make[4]: Entering directory `/mnt/D/linux/Packages/Multimedia/xine-lib-1.1.6/doc/man'
make[4]: Nothing to be done for `all-am'.
make[4]: Leaving directory `/mnt/D/linux/Packages/Multimedia/xine-lib-1.1.6/doc/man'
make[3]: Leaving directory `/mnt/D/linux/Packages/Multimedia/xine-lib-1.1.6/doc/man'
Making all in hackersguide
make[3]: Entering directory `/mnt/D/linux/Packages/Multimedia/xine-lib-1.1.6/doc/hackersguide'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/mnt/D/linux/Packages/Multimedia/xine-lib-1.1.6/doc/hackersguide'
Making all in faq
make[3]: Entering directory `/mnt/D/linux/Packages/Multimedia/xine-lib-1.1.6/doc/faq'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/mnt/D/linux/Packages/Multimedia/xine-lib-1.1.6/doc/faq'
make[3]: Entering directory `/mnt/D/linux/Packages/Multimedia/xine-lib-1.1.6/doc'
make[3]: *** No rule to make target `README', needed by `all-am'. Stop.
make[3]: Leaving directory `/mnt/D/linux/Packages/Multimedia/xine-lib-1.1.6/doc'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/mnt/D/linux/Packages/Multimedia/xine-lib-1.1.6/doc'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/mnt/D/linux/Packages/Multimedia/xine-lib-1.1.6'
make: *** [all] Error 2

 

Anh có thể chỉ em cách "đọc" và "fix" lỗi này không? Em đoán nó ở dòng này:
Code:
No rule to make target `README', needed by `all-am'. Stop.


conmale wrote:

Thông thường, cài chương trình từ RPM cần nắm 2 điều quan trọng:
- rpm cho Linux Distribution nào và cho phiên bản nào. Không thể download bất kỳ rpm nào về để install và hy vọng nó sẽ chạy được.

 

Em đã download đúng bản rpm i386 dành cho Distro của em anh à.

conmale wrote:

- rpm còn đòi hỏi các thư viện cần thiết để nó hoạt động. Bởi thế, khi cài rpm phải xem chừng nó cảnh bản "dependencies" thế nào. Đừng nhắm mắt mà cài đại.
Cách tốt nhất là đọc ReadMe và những thông tin đòi hỏi trước khi cài từ nơi mình tải rpm đó.
 


Cái này em cũng đã "thông" rồi anh à, chẳng hạn trước khi cài Realplayer cần phải cài thằng này "compat-libstdc++-33-3.2.3-47.fc4.i386.rpm" trước.

conmale wrote:

Riêng với việc cài từ source, em phải bảo đảm thỏa mãn những gì được đưa ra trong readme hoặc INSTALL file đi kèm với gói nguồn. Đừng nhắm mắt làm mà không hiểu mình làm cái gì.
 

Ok, em xin tiếp thu.

conmale wrote:

1. xem ở trên.

2. man rpm

Nói tóm lại, dùng distribution nào, đọc tài liệu hướng dẫn của distribution đó. Đừng làm mò. 

Không, ý em là nếu sau khi cài thành công một gói rồi, nếu trong các tài liệu đi kèm họ không nói đến lệnh để chạy gói đó, file chạy của gói đó không có trong /usr/local/bin (hoặc có nhưng double click lại không chạy) thì làm thế nào?
Trước khi cài đặt các gói em đã tìm đọc 2 file: install và readme. Khi dùng lệnh
Code:
./configure

để cài đặt các gói, nếu không dùng tham số "--prefix", thì mặc định các gói đó được cài vào "/usr/bin" hoặc "/usr/local/bin", còn các thư viện thì ở "usr/lib" hoặc "usr/local/lib" đúng không anh?. Nếu trong các tài liệu đi kèm như: Documentation, Installing guide, FAQ ... không thấy nói gì đến lệnh để chạy gói đó, thì em có thể tìm ở đâu để biết lệnh chạy gói đó là gì? Chẳng hạn khi em cài RealPlayer10.rpm, nhưng khi chạy không được(chạy bằng lệnh "realplay" ở Terminal thì lỗi, chạy trong KDE thì nó chớp 1 cái rồi không lên gì cả, chạy trong bin thì không phản ứng gì)

Tóm lại em cần hỏi 2 điều:
1. Khi cài đặt các ứng dùng từ Source mà không dùng "--prefix", ngoài các đường dẫn mặc định trên, thì các gói đó có thể nằm ở đâu nữa không?
2. Em có thể tìm ở đâu để biết lệnh để chạy 1 gói là gì?

Em cảm ơn anh.
Bạn capture cái screen đó, up lên đây, chưa hình dung ra lắm.
1. Phần mềm chụp màn hình trong linux (giống snagIT của win) ? (Tớ đã tìm được)
2. Phần mềm thao tác với file (giống Total commander) ?
3. Sau khi cài xong 1 gói, nó có file chạy giống như win không, nếu có thì nó nằm ở đâu. Nếu chạy bằng Terminal, thì xem ở đâu để biết lệnh chạy gói đó là gì ? (chẳng hạn như xine, mplayer, x-unikey ..., tớ cài xong mà ko biết lệnh chạy nó là gì). Nếu vào trong session KDE thì có thể tìm ở đâu ?
4. xvnkb có phím tắt chuyển như Ctrl + Shift hoặc Alt + Z như Unikey không? Hoặc bộ gõ nào khác có chức năng này (tớ chưa chạy được x-unikey nên chưa biết)
5. Khi nào xảy ra lỗi này:
Code:
bash: ./configure: No such file or directory

khắc phục thế nào? (Chắc là do gói đó build bị lỗi à)
6. Tạo biến môi trường như thế nào?
7. Xoá luôn cả những thư mục đi kèm với file htm, html ntn?
8. Các gói cho fc6 có cài được cho fc4 không ?

Bạn có thể search lại trong diễn đàn, sẽ tìm được. Bạn đã giải nén ra chưa, đã "cd" vào trong thư mục kchm chưa?
sau đó
Code:
./configure
make
make install

he, tớ kiếm được solution rồi:

En RedHat 9.0 haces:
start-here -> preferences -> file management -> behavior -> Run executable text files when they are clicked
 


I'd suspect the commands you'd be after are: chmod -R -x *.htm and chmod -R -x *.html
 


cd /
sudo chmod -x `find . -name '*.htm'`
sudo chmod -x `find . -name '*.html'`
 

Mỗi khi chạy htm file, tớ đều gặp thông báo tùy chọn: Run, Display, Cancel, Run in Terminal. Làm sao để bỏ nó, và mặc định là Display luôn.

Cảm ơn mọi người.
Gửi qua YM hả bạn? Bạn đang dùng Unikey à, thử đổi version khác xem.
Bạn thử:
1. Lần sau nếu còn check thì nên để check hết đừng press Esc
2. Right Click on Patition -> Properties -> Tools tab -> Error Checking -> Check now -> check vào 2 ô checkbox -> Start
Bạn chỉ việc right click vào file cần chia nhỏ, chọn Add to Archive đặt tên, và chọn size tại ô "Split to Volumes, bytes"

ps: Có thể dùng Free commander
Bạn thử cái này xem:
http://www.securitystronghold.com/catalog/winlogon-winlogon32.exe-problem-solution-8257.php
 
Go to Page:  First Page Page 234 235 236 237 239 240 241 Page 242 Last Page

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|