visudoblog gửi vào
- 14036 lượt xem
I. Giới thiệu
Tiện ích opkg (Open PacKaGe Management) được tích hợp sẵn trong Yocto Linux nhằm giúp người dùng nhanh chóng cài đặt các gói tin từ kho dữ liệu của Intel. OPKG có tính năng tương tự như lệnh yum hoặc apt-get mà cộng đồng người dùng Linux đã khá quen thuộc trong việc quản lý và cài đặt gói tin trên kiến trúc Linux OS.
OPKG được đóng gói dựa trên hai công cụ nổi tiếng sử dụng trên kiến trúc Debian là apt-get và dpkg thực hiện quản lý, tải và cài đặt gói tin. Người dùng có thể theo dõi quá trình phát triển và đóng gói các phiên bản OPKG trên nền tảng hệ điều hành Yocto Linux tại liên kết http://git.yoctoproject.org/cgit/cgit.cgi/opkg/
II. Cơ bản về OPKG
Tập tin lưu trữ danh mục kho dữ liệu (repo) trên Intel Edison đặt tại thư mục /etc/opkg/iotkit.conf. Người dùng hoàn toàn có thể tự xây dựng hệ thống repo cho dự án riêng của mình sử dụng Nginx và thực hiện khai báo nguồn cài đặt mới tại tập tin iotkit.conf.
root@VisudoBlog:/etc/opkg# cat /etc/opkg/iotkit.conf src iotkit http://iotdk.intel.com/repos/3.5/intelgalactic/opkg/i586/ src iotdk-all http://iotdk.intel.com/repos/3.5/iotdk/edison/all src iotdk-core2-32 http://iotdk.intel.com/repos/3.5/iotdk/edison/core2-32 src iotdk-edison http://iotdk.intel.com/repos/3.5/iotdk/edison/edison
Trước khi sử dụng kho dữ liệu được cung cấp từ Intel, người dùng cần cập nhật danh mục gói tin bằng lệnh opkg update.
root@VisudoBlog:~# opkg update Downloading http://iotdk.intel.com/repos/3.5/intelgalactic/opkg/i586//Packages. Updated list of available packages in /var/lib/opkg/iotkit. Downloading http://iotdk.intel.com/repos/3.5/iotdk/edison/all/Packages. Updated list of available packages in /var/lib/opkg/iotdk-all. ......
Sau khi quá trình cập nhật thư viện thành công, người dùng có thể tiến hành cài đặt nhanh chóng các gói dữ liệu có định dạng .ipk được tải từ http://iotdk.intel.com/repos hoặc từ liên kết chỉ định. Trong ví dụ sau tôi tiến hành cài đặt Nginx trên Intel Edison sử dụng lệnh opkg install nginx.
root@VisudoBlog:~# opkg install nginx Installing nginx (1.4.4-r0) on root. Downloading http://iotdk.intel.com/repos/3.5/iotdk/edison/core2-32/nginx_1.4.4-r0_core2-32.ipk. Removing any system startup links for nginx ... Running useradd commands... NOTE: Performing useradd with [ --system --no-create-home --home /var/www/localhost --groups www-data --user-group www] and 10 times of retry Configuring nginx. Adding system startup for /etc/init.d/nginx.
Quá trình cài đặt Nginx 1.4 trên Edison diễn ra khá nhanh và bạn có thể kiểm tra thông tin cài đặt Nginx sử dụng lệnh nginx -V để hiển thị các thông số cài đặt chi tiết.
root@VisudoBlog:~# nginx -V nginx version: nginx/1.4.4 TLS SNI support enabled configure arguments: --crossbuild=Linux:i586 --with-endian=big --with-int=4 --with-long=4 --with-long-long=8 --with-ptr-size=4 --with-sig-atomic-t=4 --with-size-t=4 --with-off-t=4 --with-time-t=4 --with-sys-nerr=132 --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --pid-path=/run/nginx/nginx.pid --prefix=/usr --with-http_ssl_module --with-http_gzip_static_module
Quay trở lại với OPKG, để tiến hành xem những gói tin đã được cài đặt trên mạch Edison, bạn có thể sử dụng lệnh opkg list-installed kết hợp với grep để lọc gói tin cần thiết.
root@VisudoBlog:~# opkg list-installed | grep nginx nginx - 1.4.4-r0
Tuy nhiên, để hỗ trợ việc debug các thông tin về nguồn gốc gói tin, tập tin cấu hình, phiên bản, kiến trúc, ... của gói dữ liệu thì tham số opkg info sẽ giúp bạn nhiều hơn trong việc hiển thị thông tin.
root@VisudoBlog:~# opkg info nginx Package: nginx Version: 1.4.4-r0 Depends: libssl1.0.0 (>= 1.0.1m), libc6 (>= 2.20), libz1 (>= 1.2.8), libpcre1 (>= 8.35), libcrypto1.0.0 (>= 1.0.1m), base-files, shadow, base-passwd Recommends: update-rc.d Status: install user installed Section: net Architecture: core2-32 Maintainer: Poky <poky@yoctoproject.org> MD5Sum: 9b439439c8d444aaec311b14e74dfe29 Size: 297816 Filename: nginx_1.4.4-r0_core2-32.ipk Conffiles: /etc/nginx/nginx.conf e005b396e5d7e2d9634a202be8806369 /etc/nginx/fastcgi.conf c53b8ddf4250e742594d24c55e73c0df .................... Source: http://nginx.org/download/nginx-1.4.4.tar.gz file://nginx-cross.patch file://nginx.conf file://nginx.init file://nginx-volatile.conf Description: HTTP and reverse proxy server Nginx is a web server and a reverse proxy server for HTTP, SMTP, POP3 and IMAP protocols, with a strong focus on high concurrency, performance and low memory usage. Installed-Time: 1471624238
Để gỡ bỏ gói tin đã cài đặt, bạn chỉ cần thực hiện lệnh opkg remove --force-remove.
root@VisudoBlog:~# opkg remove --force-remove nginx Removing package nginx from root... Stopping nginx: Removing any system startup links for nginx ... /etc/rc0.d/K20nginx /etc/rc1.d/K20nginx ...................
Tùy chọn opkg download giúp người dùng tải gói tin .ipk về máy mà không tiến hành cài đặt tự động, giúp phục vụ việc debug hoặc nghiên cứu thêm về kiến trúc của định dạng .ipk.
root@VisudoBlog:~# opkg download nginx Downloading http://iotdk.intel.com/repos/3.5/iotdk/edison/core2-32/nginx_1.4.4-r0_core2-32.ipk. Downloaded nginx as ./nginx_1.4.4-r0_core2-32.ipk. root@VisudoBlog:~# file nginx_1.4.4-r0_core2-32.ipk nginx_1.4.4-r0_core2-32.ipk: Debian binary package (format 2.0)
III. Tổng kết
OPKG giúp quá trình cài đặt và kiểm soát gói tin trên Edison khá đễ dàng cho người mới bắt đầu sử dụng Linux. Với các tùy chọn hỗ trợ từ OPKG, bạn có thể dễ dàng tiếp thu nhanh chóng các kỹ thuật quản lý, cài đặt, gỡ bỏ, cập nhật, tải hoặc thậm chí tự xây dựng kho dữ liệu riêng cho dự án IoT của chính mình. Các kỹ thuật tùy biến nâng cao OPKG bạn có thể tham khảo thêm tại https://wiki.openwrt.org/doc/techref/opkg.