Cài đặt và Quản lý phần mềm trên Linux

11 781 0
Cài đặt và Quản lý phần mềm trên Linux

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Nguyễn Trường Giang – Học viện Quản trị mạng PNH Cài đặt và Quản lý phần mềm trên Linux 1. Redhat Package Manager Được phát triển đầu tiên bởi Redhat, sau đó được các phiên bản linux khác sử dụng rộng rãi: Fedora, Mandrake, SuSe Gói rpm có dạng: Tên package-phiên bản-số hiệu.kiến trúc.rpm Cài đặt bằng lệnh rpm. Đây là kiểu cài đặt phổ biến nhất của linux. Dễ cài đặt, dễ remove. Cài đặt một package # rpm -ivh <package_name.rpm> Một số trường hợp lỗi  Package đã cài rồi : package is already installed  Xung đột tập tin : …package…conflicts with…  Phụ thuộc vào package khác : failed dependecies # rpm -ivh gcc-4.1.2-51.el5.i386.rpm glibc-devel-2.5-65.i386.rpm glibc-headers-2.5- 65.i386.rpm kernel-headers-2.6.18-274.el5.i386.rpm cpp-4.1.2-51.el5.i386.rpm Upgrade một package # rpm -Uvh <package_name.rpm> Khi upgrade RPM sẽ xóa các phiên bản cũ của package.Có thể dùng lệnh này để cài đặt, khi đó sẽ không có phiên bản cũ nào bị xóa đi. Gỡ bỏ một package # rpm -e <package_name> Một số trường hợp lỗi:  Package được xóa có liên quan đến package khác : “removing these packages would break dependecies” # rpm -e gcc Truy vấn một package # rpm -qa | grep <package_name> # rpm -qf /etc/passwd setup-2.5.58-9.el5 # rpm -qf /bin/ls pkgs.org Nguyễn Trường Giang – Học viện Quản trị mạng PNH coreutils-5.97-34.el5 Một số option khác sử dụng trong cài đặt: nodeps: cho phép cài đặt, bỏ qua các gói phụ thuộc. force: bắt buộc upgrade, bỏ qua conflicts. test: không cài đặt, upgrage, chỉ test. requires: liệt kê các gói phụ thuộc. Các option truy vấn: kết hợp với option -q -a: hiển thị danh sách các package đã cài đặt. -f <file_name>: hiển thị package sở hữu <file_name> -d <package_name>: hiển thị danh sách tập tin tài liệu -i <package_name>: hiển thị thông tin của package -l <package_name>: hiển thị file chứa trong package_name -c <package_name>: hiển thị danh sách tập tin cấu hình 2. Yum Package Manager Mặc định, yum (yellowdog updater modified) sẽ chỉ tìm kiếm và tải về các package 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 cần phải có kết nối Internet tốc độ cao để việc tải gói về được nhanh chóng. yum cho phép định nghĩa các reposistory, đây là vị trí chứa các binary software. File cấu hình của yum repository nằm tại vị trí /etc/yum.conf. Để thêm vào một reposistory mới, ta phải tạo ra các file mô tả nằm bên trong folder /etc/yum.repos.d hoặc install rpm package để tạo thêm reposistory mới. Ưu điểm nổi bật của yum là tính tự động cao. Tuy nhiên, tùy theo nguồn nên các phần mềm cài đặt dùng lệnh yum thường không phải là phiên bản mới nhất. Thêm một nguồn tài nguyên cho lệnh yum . # vim /etc/yum.repos.d/centalt.repo [CentALT] name=CentALT Packages for Enterprise Linux 5 - $basearch baseurl=http://centos.alt.ru/repository/centos/5/$basearch/ enabled=1 gpgcheck=0 Mô tả các tính năng của repository [CentALT] là tên repository Name tên mô tả RPM Repository baseurl đường link đến vị trí chứa các file rpm enabled 1 = repository mặc định được sử dụng 0 = repository này mặc định sẽ không được sử dụng gpgcheck 0 = bỏ qua kiểm tra tính toàn vẹn của gói 1 = tính năng bảo mật sử dụng GPG key để xác thực rằng các package được download từ đúng nguồn pkgs.org Nguyễn Trường Giang – Học viện Quản trị mạng PNH Trong file config /etc/yum.conf , tham số gpgcheck cho biết sẽ kiểm tra Public key hay không mỗi khi cài đặt phần mềm. Public key này để chứng nhận các gói rpm được lấy từ đúng nguồn tin cậy. Nếu để là "0" nó sẽ không kiểm tra, sẽ đỡ rắc rối khi cài đặt nhưng nguy hiểm. Nếu để là "1" thì mỗi khi cài nó sẽ kiểm tra, và muốn cho nó biết có gì để kiểm tra phải import Public key từ các nơi cung cấp rpm. Các public key này search trực tiếp trong trang cung cấp rpm . Ex: để cung cấp Public key cho yum từ livna # rpm import http://rpm.livna.org/RPM-LIVNA-GPG-KEY-i386 Tìm một phần mềm # yum search package-name Liệt kê tất cả các gói phần mềm đã được cài đặt # yum list installed Hiển thị danh sách các gói phần mềm đã có bản update # yum list updates Kiểm tra và nâng cấp tất cả các gói phần mềm # yum check-update | less # yum update 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 Tìm kiếm một gói phần mềm lọc theo tên # yum list package-name # yum list rdesktop Cài đặt gói phần mềm # yum install package-name -y # yum install rdesktop -y Cài đặt phần mềm converrt định dạng tập tin văn bản DOS/Windows sang UNIX/Linux # yum install dos2unix -y # dos2unix file_name_convert_to_unix Để sử dụng repository đang bị disabled trong quá trình cài đặt ta sử dụng thêm từ khóa – enablerepo=[tên repository] #yum enablerepo=repo-name install package-name Gỡ bỏ gói phần mềm # yum remove package-name # yum remove rdesktop -y Xóa cache của yum và xem nội dung của repository mới # yum clean all && yum list Hiển thị thông tin cài đặt package # yum info rdesktop Update package pkgs.org Nguyễn Trường Giang – Học viện Quản trị mạng PNH # yum update rdesktop -y Kiểm tra file thuộc package nào # yum provides /etc/passwd Kiểm tra package có trong repo nào # yum whatprovides gcc Hiện thị repositories # yum repolist # yum repolist all Sử dụng với yum shell # yum shell Cài đặt phần mềm monitor hệ thống # yum install htop -y # htop Cài đặt phần mềm web console # yum install lynx -y Cài đặt phần mềm theo group # yum grouplist # yum groupinstall 'Development Tools' # yum groupinstall 'Development Libraries' # yum groupinstall 'DNS Name Server' # yum groupupdate 'Graphical Internet' # yum groupremove 'DNS Name Server' Kiểm tra log YUM # tail -f /var/log/yum.log Cài đặt giao diện đồ họa GNOME - KDE # yum grouplist # yum groupinstall "GNOME Desktop Environment" -y # yum groupinstall "KDE (K Desktop Environment)" -y # vim /etc/sysconfig/desktop DESKTOP="KDE" DISPLAYMANAGER="KDE" # yum install switchdesk -y Chuyển đổi KDE và GNOME # switchdesk kde # switchdesk gnome Tìm kiếm package http://pkgs.org/ 3. Cài đặt bằng source Tương thích với mọi phiên bản Linux. pkgs.org Nguyễn Trường Giang – Học viện Quản trị mạng PNH Được đóng gói sử dụng kiểu GNU Zip (.gz) hoặc BZip2 (bz2). <filename>.tar.gz hoặc <filename>.tar.bz2 Giải nén bằng lệnh: tar xvzf <filename>.tar.gz tar xvjf <filename>.tar.bz2 Đọc file INSTALL hoặc README để có những chỉ dẫn riêng biệt của gói cài đặt. Sau khi giải nén, chuyển đến thư mục của gói source: cd <extracted_dir_name> Chạy script configure, cần đọc file README, INSTALL để có những option cần thiết: ./configure Build gói source bằng lệnh make: make Cài đặt gói source: make install Công cụ biên dịch C/C++ - gcc Trình biên dịch ngôn ngữ C - g++ Trình biên dịch ngôn ngữ C++ - Trình biên dịch gcc thường được đặt trong /usr/bin. Khi biên dịch, gcc cần nhiều file hỗ trợ như các tập tin thư viện liên kết trong /usr/lib, các file C header trong /usr/include - Chương trình sau khi biên dịch có thể đặt bất kỳ đâu trên hệ thống miễn là HĐH có thể tìm thấy trong biến môi trường PATH hoặc theo đường dẫn tuyệt đối trong dòng lệnh. # which gcc /usr/bin/gcc # rpm -qf /usr/bin/gcc gcc-4.1.2-52.el5 # which g++ /usr/bin/g++ # rpm -qf /usr/bin/g++ gcc-c++-4.1.2-52.el5 Lưu ý khi biên dịch trong Linux  Dùng g++ nếu chương trình có chứa mã C lẫn C++  Dùng gcc nếu chương trình chỉ có mã C  File thực thi tạo ra không có đuôi .exe, .dll như môi trường Windows Biên dịch với GNU gcc, g++, make Ví dụ đơn giản trong ngôn ngữ C Soạn thảo 2 files: main.c và func.c # vim func.c /* func.c */ #include <stdio.h> pkgs.org Nguyễn Trường Giang – Học viện Quản trị mạng PNH void hello(){ printf("Hello World\n"); } # vim main.c /* main.c */ main(){ hello(); } # gcc -v # gcc -c func.c main.c # gcc -o main main.o func.o # ./main Hello World Sử dụng biên dịch gcc [options] sources các tùy chọn (options) -c: sinh ra tập tin đối tượng .o -o: sinh ra tập tin output -I: đặc tả thư mục chứa tập tin include -l: đặc tả tên thư viện -L: đặc tả đường dẫn đến thư viện Dịch với make và Makefile để dịch tự động các bước trên  Soạn thảo Makefile  Makefile là 1 file đặc biệt dùng để quản lý các tập tin trong dự án  Chứa các quy tắc biên dịch # vim Makefile # Makefile CC = gcc main: main.o func.o $(CC) -o main main.o func.o main.o: main.c $(CC) -c main.c func.o: func.c $(CC) -c func.c # ./main Hello World Lệnh make sẽ đọc các bước dịch trong Makefile để dịch và sinh ra chương trình main tương thích với mọi phiên bản Linux. Ví dụ đơn giản trong ngôn ngữ C++ # vim hello.cpp pkgs.org Nguyễn Trường Giang – Học viện Quản trị mạng PNH #include <iostream> using namespace std; // main() is where program execution begins. int main() { cout << "Hello World \n"; // prints Hello World return 0; } # g++ -c hello.cpp # g++ -o main hello.o # ./main Hello World Phần mềm mã nguồn được đóng gói sử dụng kiểu GNU Zip (.gz) hoặc BZip2 (bz2).: <filename>.tar.gz or <filename>.tar.bz2 Giải nén bằng lệnh: # tar xvzf <filename>.tar.gz # tar xvjf <filename>.tar.bz2 Đọc file INSTALL hoặc README để có những chỉ dẫn riêng biệt của gói cài đặt. Sau khi giải nén, chuyển đến thư mục của gói source: # cd <extracted_dir_name> Chạy shell script configure kiểm tra cấu hình hệ thống, thư viện cần thiết và tạo ra Makefile cho biên dịch, cần đọc file README, INSTALL để có những option cần thiết (Type "./configure help" for more information. Remove config.cache file if you need to run ./configure again) # ./configure # ls -l Makefile Khi chạy configure xong kết quả sẽ cho biết các gói phụ thuộc nào cần thiết để cài đặt. Nếu như hệ thống 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 Build gói source bằng lệnh make: # make Cài đặt binary, library, confige file # make install Lệnh 'make install' để chép các file thực thi đó sang đúng vị trí của nó trên hệ thống. File thực thi thường được cài đặt vào thư mục /usr/local/bin Khi có thay đổi trong source, cần biên dịch, cài đặt lại. Sau khi cài đặt xong, để gỡ bỏ gói source, dùng lệnh sau: # make uninstall pkgs.org Nguyễn Trường Giang – Học viện Quản trị mạng PNH Nếu cần thiết xóa bỏ luôn thư mục source cài đặt: # rm -rf <extracted_dir_name> Cài đặt bộ gõ tiếng việt xvnkb/x-unikey cho X-window Địa chỉ xvnkb: http://xvnkb.sourceforge.net/ Địa chỉ x-unikey: http://www.unikey.org/linux.php Cài đặt công cụ biên dịch và nhóm thư viện hỗ trợ # yum groupinstall 'Development Libraries' -y # yum install gcc gcc++ -y Tải source xvnkb về # wget http://ncu.dl.sourceforge.net/project/xvnkb/xvnkb/0.2.11/xvnkb-0.2.11.tar.gz Giải nén và cài đặt # tar -xvf xvnkb-0.2.11.tar.gz # cd xvnkb-0.2.11 # ./configure # make # make install Chạy xvnkb trong môi trường đồ họa # xvnkb Cài đặt font chữ unicode Copy các font unicode: arial.ttf, tahoma.ttf, times.ttf, verdana.ttf từ thư mục C:\Windows\Fonts đến thư mục /usr/share/fonts/default/Type1 # cd /usr/share/fonts/default/Type1 # ls *.ttf arial.ttf tahoma.ttf times.ttf verdana.ttf Cập nhật font chữ # fc-cache -fv Mở Open Office để kiểm tra font unicode đã được cài đặt Quản lý thư viện Thư viện là file chứa các đoạn mã lệnh và dữ liệu được tổ chức thành các hàm (function), các lớp (class) nhằm cung cấp dịch vụ, chức năng nào đó cho các chương trình chạy trên máy tính. Thư viện gồm 3 loại: Static, Dynamic và Shared. Thường thì các thư viện ở dạng mã nhị phân, không phải dạng văn bản thuần túy (plain text) – là các ký tự mà con người có thể đọc hiểu được. Khi biên dịch 1 chương trình đang ở dạng các file source code (gồm tập các câu lệnh, khai báo được viết bằng 1 ngôn ngữ lập trình cấp cao như C/C++, Java…) sang dạng executable (hay binary – tập các mã máy nhị phân mà chỉ CPU mới hiểu được) thì nhiều hàm chức năng của chương trình được liên kết từ các thư viện. Quá trình biên dịch này do bộ biên dịch (Compiler) đảm nhiệm. pkgs.org Nguyễn Trường Giang – Học viện Quản trị mạng PNH Các thư viện được liên kết động và được dùng chung bởi nhiều ứng dụng được gọi là shared library. Trên Windows các file thư viện có phần mở rộng là .dll , còn Linux các file thư viện thường là “.a”, “.so”, “.sa” và được bắt đầu bằng tiếp đầu ngữ “lib”. Ví dụ: libutil.a hoặc libc.so ^ Đây là tên các thư viện trong Linux. Thư viện “.so” được ưu tiên sử dụng so với “.a”. Nếu không tìm thấy file thư viện “.so” trên thì “.a” mới được xem xét đến. Khi biên dịch, thông thường chương trình liên kết (ld) sẽ tìm thư viện trong 2 thư mục chuẩn /usr/lib và /lib Các hệ thống Linux có hai kiểu chương trình thi hành được.  Các chương trình thi hành được liên kết tĩnh (statically linked) chứa tất cả các hàm thư viện mà chúng cần để thi hành. Tất cả các hàm thư viện được liên kết vào chương trình thi hành được này. Chúng là những chương trình đầy đủ, chạy không phụ thuộc vào thư viện bên ngoài. Một lợi thế của các chương trình liên kết tĩnh là chúng sẽ làm việc mà không cần cài đặt các điều kiện cần có trước.  Các chương trình thi hành được liên kết động (dynamically linked) là các chương trình nhỏ hơn nhiều, chưa đầy đủ, theo nghĩa rằng chúng đòi hỏi các hàm từ các thư viện chia sẻ bên ngoài để chạy. Ngoài việc là nhỏ hơn, các chương trình liên kết động cho phép một gói chỉ rõ các thư viện cần có trước mà không cần phải chứa sẵn các thư viện trong gói. Việc sử dụng liên kết động cũng cho phép nhiều chương trình đang chạy chia sẻ một bản sao của một thư viện thay vì chiếm bộ nhớ để chứa nhiều bản sao của cùng một mã. Với những lý do này, hầu hết các chương trình hiện nay sử dụng liên kết động. Tổ chức các file trên hệ thống 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 đã cài đặt trên máy, các file trong thư mục này 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, các 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 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 Một ví dụ trên hệ thống Linux là lệnh ln (/bin/ln), tạo ra các liên kết giữa các tập tin, (liên kết cứng (hard) hoặc các liên kết mềm (soft)). Lệnh ln sử dụng các thư viện chia sẻ, do đó nếu các thư viện liên kết động không làm việc, thì lệnh ln có thể không chạy. Để tránh khỏi khả năng pkgs.org Nguyễn Trường Giang – Học viện Quản trị mạng PNH này, hệ thống Linux có một phiên bản liên kết tĩnh của chương trình ln dưới dạng chương trình sln (/sbin/sln) Độ lớn của chương trình sln và ln # ls -lh /sbin/sln /bin/ln -rwxr-xr-x 1 root root 30K Mar 1 2010 /bin/ln -rwxr-xr-x 1 root root 548K Jun 28 2011 /sbin/sln Xác định các shared library của chương trình Lệnh ldd (List Dynamic Dependencies) hiển thị thông tin về các thư viện cần thiết của một chương trình thi hành được # ldd /sbin/sln /bin/ln /sbin/sln: not a dynamic executable /bin/ln: linux-gate.so.1 => (0x009a0000) libc.so.6 => /lib/libc.so.6 (0x00b8a000) /lib/ld-linux.so.2 (0x002be000) # ls -l /lib/libc.so.6 lrwxrwxrwx 1 root root 11 Oct 17 2011 /lib/libc.so.6 -> libc-2.5.so # rpm -qf /usr/bin/ldd glibc-common-2.5-58.el5_6.4 Lệnh ldconfig để xử lý tất cả các thư viện từ ld.so.conf cũng như những thư viện từ các thư mục /lib và /usr/lib ldconfig [OPTION ] Thường dùng 2 option cho lệnh này -p: chỉ hiển thị nội dung hiện tại của cache, không tạo lại cache. -v: hiển thị quá trình thực hiện việc tạo lại cache. Lệnh ldconfig để hiển thị ld.so.cache # ldconfig -p | less # ldconfig -p | grep /usr/lib | less # cat /etc/ld.so.conf include ld.so.conf.d/*.conf Lỗi không tìm thấy thư viện error while loading shared libraries: cannot open shared object file: no such file or directory Cách giải quyết là sử dụng lệnh ldconfig để thiết lập lại các file config. Thêm dòng /usr/local/lib vào tập tin /etc/ld.so.conf và chạy lệnh ldconfig # ldconfig -v Hoặc thêm thư viện vào biến môi trường LD_LIBRARY_PATH # export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib pkgs.org [...]... Giang – Học viện Quản trị mạng PNH Ví dụ: Quản lý thư viện liên kết của tiện ích top Kiểm tra thư viện liên kết với ldd # ldd /usr/bin/top linux- gate.so.1 => (0x00505000) libproc-3.2.7.so => /lib/libproc-3.2.7.so (0x00c78000) libncurses.so.5 => /usr/lib/libncurses.so.5 (0x06111000) libc.so.6 => /lib/libc.so.6 (0x00b1d000) libdl.so.2 => /lib/libdl.so.2 (0x00ca3000) /lib/ld -linux. so.2 (0x00afe000)... or directory Cài đặt đường dẫn thư viện với biến môi trường LD_LIBRARY_PATH=/path/to/lib # echo $LD_LIBRARY_PATH # export LD_LIBRARY_PATH=/tmp # top Cấu hình thư viện liên kết với ldconfig: # unset LD_LIBRARY_PATH # echo $LD_LIBRARY_PATH # top top: error while loading shared libraries: libproc-3.2.7.so: cannot open shared object file: No such file or directory Thêm đường dẫn thư viện mới vào /etc/ld.so.conf . all Sử dụng với yum shell # yum shell Cài đặt phần mềm monitor hệ thống # yum install htop -y # htop Cài đặt phần mềm web console # yum install lynx -y Cài đặt phần mềm theo group # yum grouplist #. Trường Giang – Học viện Quản trị mạng PNH Cài đặt và Quản lý phần mềm trên Linux 1. Redhat Package Manager Được phát triển đầu tiên bởi Redhat, sau đó được các phiên bản linux khác sử dụng rộng. trúc.rpm Cài đặt bằng lệnh rpm. Đây là kiểu cài đặt phổ biến nhất của linux. Dễ cài đặt, dễ remove. Cài đặt một package # rpm -ivh <package_name.rpm> Một số trường hợp lỗi  Package đã cài

Ngày đăng: 12/04/2015, 14:02

Từ khóa liên quan

Mục lục

  • Cài đặt và Quản lý phần mềm trên Linux

    • Khi upgrade RPM sẽ xóa các phiên bản cũ của package.Có thể dùng lệnh này để cài đặt, khi đó sẽ không có phiên bản cũ nào bị xóa đi.

Tài liệu cùng người dùng

Tài liệu liên quan