Thứ năm, 13/02/2014 | 00:00 GMT+7

Cách làm việc với Trình quản lý gói Ruby RubyGems: Bắt đầu

RubyGems là một công cụ quản lý vòng đời của các gói ứng dụng Ruby từ khi tạo đến khi phân phối. Nếu bạn đã từng làm việc với một ứng dụng dựa trên Ruby, rất có thể bạn đã sử dụng RubyGems để quản lý các phần phụ thuộc, thư viện hoặc khuôn khổ (ví dụ: Ruby-on-Rails).


Trong bài viết DigitalOcean này, ta sẽ tìm hiểu tất cả các bit và phần quan trọng của RubyGems, từ các tính năng cơ bản nhất đến nâng cao hơn. Nếu bạn đang có kế hoạch làm việc với (hoặc sử dụng) Ruby về lâu dài, việc thành thạo công cụ này có thể mang lại rất nhiều hiệu quả cho công việc của bạn.

Bảng chú giải


1. Trình quản lý gói và RubyGems


1. What Is A Package Manager? 2. Application Packages 3. What Is RubyGems? 4. What Is A Gem? 

2. Định dạng gói đá quý RubyGems


1. Gem Information And Format 2. The `*.gemspec` File 

3. Bắt đầu với RubyGems


1. Installing Ruby And RubyGems 2. Usage 

4. Các hoạt động chính của RubyGem để làm việc với đá quý


1. Finding Installed And Available Gems 2. Searching RubyGems.org For Gems 3. Installing New Gems 4. Finding Outdated Gems 5. Updating Gems 6. Removing / Deleting Gems 7. Reading The Gem Documentation 

Trình quản lý gói và RubyGems


Trình quản lý gói là gì?


Về máy tính, hầu hết mọi thứ đều bao gồm các kết nối và bộ sưu tập giữa các chương trình khác nhau. Thời điểm bạn khởi động máy, một loạt mã sẽ được thực thi, lần lượt tải một số mã khác. Một kim tự tháp được xây dựng, tạo thành nền tảng cuối cùng, cho phép bạn chạy các ứng dụng cấp cao hơn mà bạn yêu cầu (ví dụ: Ruby!).

Như bạn thấy từ mô tả cơ bản ở trên về vòng đời thực thi ứng dụng, mọi thứ đều phụ thuộc vào những người khác khi nói đến chương trình. Và chu kỳ này bắt đầu trong giai đoạn phát triển.

Để thuận tiện cho quá trình download và cài đặt các thư viện mà các chương trình phụ thuộc vào, đặc biệt là ngày nay, một bộ công cụ được gọi là trình quản lý gói được sử dụng nhiều. Những công cụ này giúp bạn dễ dàng tìm, cài đặt và theo dõi tất cả các thư viện khác mà chương trình của bạn cần là nhà phát triển.

Các gói ứng dụng được phân phối qua các công cụ này thường là các repository đơn giản chứa các chương trình và metadata . Các trình quản lý gói khác nhau tồn tại để quản lý dependencies của các ngôn ngữ lập trình khác nhau - và mỗi người đặt tên cho các gói của bạn khác nhau.

Gói ứng dụng


Nói một cách đơn giản, các gói ứng dụng chứa phần mềm hoặc thư viện đã được biên dịch và sẵn sàng sử dụng mà những người khác sử dụng. Họ có thể (và thường làm) đi kèm với các file bổ sung để cung cấp thông tin về gói và mặc dù tầm quan trọng, đôi khi chỉ có một hướng dẫn sử dụng phù hợp. Khi trình quản lý gói cài đặt một gói, tất cả các phần tử này đều có thể truy cập được bên trong môi trường mà chúng được cài đặt (ví dụ: RVM Gemset).

RubyGems là gì?


Trong trường hợp của Ruby, trình quản lý gói mặc định được gọi là RubyGems. Chương trình này đã được phân phối với trình thông dịch Ruby mặc định kể từ version 1.9 và giúp bạn nhiều thứ từ download đến đóng gói và phân phối các ứng dụng Ruby - và tất nhiên, các mã binary và thư viện có liên quan. RubyGems rất phong phú và có lẽ là một trong những ứng dụng quản lý gói hoàn thiện nhất còn tồn tại. Nó cung cấp cho các nhà phát triển một cấu trúc tiêu chuẩn, cùng với một định dạng tiêu chuẩn để xử lý các bộ sưu tập ứng dụng (gói) được gọi là Đá quý.

Đá quý là gì?


Gem là một gói ứng dụng có cấu trúc rất giống với mô tả chung mà ta vừa đưa ra. Nó có thể là một bộ sưu tập mã, thư viện, danh sách các phụ thuộc và một số metadata bổ sung, xác định gói được phân phối bằng công cụ RubyGems.

Cách đơn giản nhất để bắt đầu làm việc với các chương trình là sử dụng các gói này khi phát triển các ứng dụng dựa trên Ruby (hoặc liên quan đến Ruby). Trong hướng dẫn này, ta sẽ học cách sử dụng RubyGems để làm việc và xử lý các gói dựa trên Gem.

Định dạng gói đá quý RubyGems


Thông tin và định dạng đá quý


Như ta đã đề cập trước đây, Gem là một gói chứa các bộ thành phần khác nhau. Mỗi Đá quý có một version và định nghĩa cơ bản về nền tảng mà nó được xây dựng.

Các folder Gem có thể chứa những thứ sau:

  • Mã ứng dụng;

  • Các bài kiểm tra;

  • Mô tả các phụ thuộc;

  • Binaries;

  • Tài liệu liên quan;

  • Thông tin liên quan đến gói (ví dụ: gemspec).

Và chúng có cấu trúc cơ bản tương tự như sau:

/[package_name]               # 1         |__ /bin              # 2         |__ /lib              # 3         |__ /test             # 4         |__ README            # 5         |__ Rakefile          # 6         |__ [name].gemspec    # 7 
  1. [tên gói hàng]:

    Thư mục root chính của gói Gem.

  2. /thùng rác:

    Vị trí của các file binary thực thi nếu gói có các file nào.

  3. / lib:

    Thư mục chứa mã ứng dụng Ruby chính (bao gồm các module ).

  4. /kiểm tra:

    Vị trí của các file thử nghiệm.

  5. Rakefile:

    Tệp Rake cho các thư viện sử dụng Rake cho các bản dựng.

  6. [tên gói] .gemspec:

    Tệp * .gemspec, có tên của folder chính, chứa tất cả metadata gói, ví dụ: tên, version , các folder , v.v.

Tệp gemspec


Khá giống với bất kỳ bộ sưu tập ứng dụng nào được phân phối hoặc chia sẻ, Gems cũng đi kèm với một file mô tả gói, file này cũng có xu hướng chứa một số thông tin bổ sung rất hữu ích.

Các file gemspec này chứa dữ liệu bắt buộc nhất định, chẳng hạn như version gói, tên người bảo trì và nền tảng, với khả năng có một số thuộc tính tùy chọn như khóa, thông tin liên hệ hoặc mô tả bổ sung.

Tệp gemspec trông tương tự như ví dụ sau:

Gem::Specification.new do |s|   s.name        = 'myapp'   s.version     = '1.5.7'   s.licenses    = ['Apache']   s.summary     = "My application package"   s.description = "Optional, longer description."   s.authors     = ["Maintaner Name"]   s.files       = ["path/to/files", "additional/files", ..] end 

Bắt đầu với RubyGems


Cài đặt Ruby và RubyGems


Nếu bạn chưa cài đặt Ruby, và do đó là RubyGems, bạn có thể theo một trong hai liên kết bên dưới để tải nó trên nền tảng bạn chọn.

Sử dụng


Làm việc với RubyGems rất dễ dàng. Sau khi bạn cài đặt Ruby, ứng dụng sẽ được cài đặt trong PATH của bạn và bạn có thể bắt đầu sử dụng công cụ bằng lệnh gem bên trong trình giả lập terminal (ví dụ: Terminal cho OS X, Putty cho Windows, v.v.).

Chạy gem để xem một số hướng dẫn sử dụng và ví dụ:

gem  # RubyGems is a sophisticated package manager for Ruby.  This is a # basic help message containing pointers to more information.  # Usage: #     gem -h/--help #     gem -v/--version #     gem command [arguments...] [options...] 

Như bạn thấy , làm việc với gem bao gồm chuỗi một lệnh với các đối số và tùy chọn, ví dụ:

gem help commands  # GEM commands are:  # build             Build a gem from a gemspec # cert              Manage RubyGems certificates and signing settings # check             Check a gem repository for added or missing files # .. 

Mẹo: Khi bạn chạy một lệnh như ruby hoặc rake, hệ điều hành của bạn sẽ tìm kiếm trong danh sách các folder để tìm file thực thi có tên đó. Danh sách các folder này nằm trong một biến môi trường được gọi là PATH, với mỗi folder trong danh sách được phân tách bằng dấu hai chấm:

/ usr / local / bin: / usr / bin: / bin

Các folder trong PATH được tìm kiếm từ trái sang phải, vì vậy một file thực thi phù hợp trong một folder ở đầu danh sách sẽ được ưu tiên hơn một file khác ở cuối danh sách. Trong ví dụ này, folder / usr / local / bin sẽ được tìm kiếm đầu tiên, sau đó đến / local / bin, sau đó là / bin.

Khi bạn cài đặt Ruby, cả trình thông dịch rubygem của RubyGems đều được thêm vào PATH của bạn.

Các hoạt động chính của RubyGem để làm việc với đá quý


Bắt đầu học một ngôn ngữ lập trình mới cũng nghĩa là học cách làm việc với các công cụ liên quan cơ bản và phổ biến, chẳng hạn như RubyGems cho Ruby. Không quá phức tạp, ta hãy xem các thao tác cơ bản mà bạn cần biết khi bắt đầu với công cụ quản lý gói này.

Thông thường, các hoạt động chính với bất kỳ trình quản lý gói nào có thể được coi là:

  • Tìm hiểu những gì được cài đặt trên hệ thống;

  • Tìm kiếm và khám phá các gói mới;

  • Tìm ra gói nào cần cập nhật;

  • Cài đặt những cái mới;

  • Cập nhật những cái cũ;

  • Loại bỏ (hoặc xóa) các gói;

  • Dọn dẹp những gì không cần thiết nữa;

  • Kiểm tra tài liệu.

Hãy xem cách thực hiện các thao tác này với RubyGems.

Tìm đá quý đã cài đặt và có sẵn


Bạn có thể nghĩ đến việc tìm kiếm tất cả các gem hiện được cài đặt giống như nhận được danh sách tên của chúng.

Do đó, hãy nhớ rằng lệnh list là những gì bạn cần cho hoạt động này.

Chạy phần sau để nhận danh sách các gem đã cài đặt với các version của chúng:

gem list  # ** LOCAL GEMS ***  # actionmailer (4.0.2) # actionpack (4.0.2) # activesupport (4.0.2) # bundler (1.5.3, 1.5.2) # capistrano (3.1.0) # coffee-rails (4.0.1) # coffee-script (2.2.0) # coffee-script-source (1.7.0, 1.6.3) # execjs (2.0.2) # i18n (0.6.9) # .. 

Tìm kiếm RubyGems.org để có đá quý


Nếu bạn đã biết tên của một viên đá quý, bạn có thể sử dụng lệnh search để tìm kiếm nó.

Đổi lại, bạn sẽ lại có một danh sách các loại đá quý và version của chúng.

Chạy phần sau để tìm kiếm đá quý theo tên:

# Usage: gem search [name] # Example: gem search rails  # *** REMOTE GEMS ***  # rails (4.0.2) # rails-3-settings (0.1.1) # rails-action-args (0.1.1) # rails-admin (0.0.0) # ..  

Lưu ý: Bạn có thể sử dụng biểu thức chính quy với tên đá quý được truy vấn. Bạn cũng có thể chuyển cờ -d để nhận thêm thông tin, ví dụ:

gem search rails_utils -d  # *** REMOTE GEMS ***  # rails_utils (2.1.4) #     Author: Winston Teo #     Homepage: https://github.com/winston/rails_utils #  #     Rails helpers based on opinionated project practices. 

Cài đặt đá quý mới


Khi bạn đã tìm thấy một viên ngọc bạn muốn cài đặt, bạn có thể chỉ cần sử dụng lệnh install .

Chạy phần sau để cài đặt một viên ngọc mới:

# Usage: [sudo] gem install [name] # Example: gem install rails_utils  # Fetching: rails_utils-2.1.4.gem (100%) # Successfully installed rails_utils-2.1.4 # Parsing documentation for rails_utils-2.1.4 # Installing ri documentation for rails_utils-2.1.4 # Done installing documentation for rails_utils after 0 seconds # 1 gem installed 

Lưu ý: Khi bạn cài đặt một viên đá quý mới, tất cả các phụ thuộc được chỉ định trong viên đá quý cũng được cài đặt để viên đá quý có thể thực sự hoạt động.

Để download một version cụ thể của đá quý, hãy sử dụng như sau:

# Usage: [sudo] gem install [name] -v [version] # Example: gem install rails -v 4.0 

Tìm đá quý lỗi thời


Để tìm ra đá quý nào đã lỗi thời (tức là có version mới hơn), bạn có thể sử dụng lệnh outdated . Điều này, , sẽ cung cấp cho bạn danh sách các đá quý với các version được cài đặt hiện tại của chúng (tức là đá quý local ).

Chạy phần sau để tìm ra đá quý nào đã lỗi thời:

gem outdated  # builder (3.1.4 < 3.2.2) # bundler (1.5.2 < 1.5.3) # coffee-script-source (1.6.3 < 1.7.0) # jquery-rails (3.0.4 < 3.1.0) 

Cập nhật đá quý


Sau khi bạn thấy đá quý nào cần cập nhật, bạn có thể chỉ cần làm như vậy bằng lệnh update .

Chạy phần sau để cập nhật đá quý:

# Usage: [sudo] gem update [name] # Example: gem update bundler  # Updating installed gems # Updating bundler # Fetching: bundler-1.5.3.gem (100%) # Successfully installed bundler-1.5.3 # Parsing documentation for bundler-1.5.3 # Installing ri documentation for bundler-1.5.3 # Installing darkfish documentation for bundler-1.5.3 # Done installing documentation for bundler after 6 seconds # Gems updated: bundler 

Loại bỏ / Xóa đá quý


Việc xóa đá quý khỏi máy local của bạn được thực hiện bằng lệnh uninstall , tương tự như install .

Chạy như sau để xóa / xóa một viên ngọc:

# Usage: [sudo] gem uninstall [name] # Example: gem uninstall bundler 

Ngoài ra, bạn có thể chỉ định một version để chỉ xóa version đó.

# Usage: [sudo] gem uninstall [name] -v [version] # Example: gem uninstall bundler -v 1.0.0  # Successfully uninstalled bundler-1.0.0 

Đọc Tài liệu Đá quý


Một trong những điều tiện dụng và quan trọng nhất về đá quý là chúng [phải] đi kèm với tài liệu tốt để cho phép bạn bắt đầu làm việc với chúng nhanh chóng. Cách đơn giản nhất để sử dụng tài liệu là chạy một server local , nơi bạn sẽ có quyền truy cập vào tất cả các hướng dẫn sử dụng đá quý đã cài đặt.

Chạy phần sau để chạy server tài liệu:

gem server  # Server started at http://0.0.0.0:8808 # Server started at http://[::]:8808 

Như vậy, bạn có thể truy cập http://0.0.0.0:8808 bằng trình duyệt yêu thích của bạn , tìm viên ngọc bạn muốn tìm hiểu thêm và đọc tài liệu về nó.

<div class = “author”> Gửi bởi: <a
href = “https://twitter.com/ostezer”> Hệ điều hành Tezer </a> </div>


Tags:

Các tin liên quan