ฉันสามารถค้นหาอัญมณีที่ติดตั้งโดยใช้gem list
แต่ไม่แสดงให้ฉันเห็นว่าติดตั้งพลอยที่ไหน
ฉันจะค้นหาตำแหน่งของอัญมณีได้อย่างไรและฉันจะรู้ได้อย่างไรก่อนติดตั้งอัญมณีในตำแหน่งที่จะติดตั้ง
ฉันสามารถค้นหาอัญมณีที่ติดตั้งโดยใช้gem list
แต่ไม่แสดงให้ฉันเห็นว่าติดตั้งพลอยที่ไหน
ฉันจะค้นหาตำแหน่งของอัญมณีได้อย่างไรและฉันจะรู้ได้อย่างไรก่อนติดตั้งอัญมณีในตำแหน่งที่จะติดตั้ง
คำตอบ:
ใช้gem environment
เพื่อค้นหาข้อมูลเกี่ยวกับสภาพแวดล้อมอัญมณีของคุณ:
RubyGems Environment:
- RUBYGEMS VERSION: 2.1.5
- RUBY VERSION: 2.0.0 (2013-06-27 patchlevel 247) [x86_64-darwin12.4.0]
- INSTALLATION DIRECTORY: /Users/ttm/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0
- RUBY EXECUTABLE: /Users/ttm/.rbenv/versions/2.0.0-p247/bin/ruby
- EXECUTABLE DIRECTORY: /Users/ttm/.rbenv/versions/2.0.0-p247/bin
- SPEC CACHE DIRECTORY: /Users/ttm/.gem/specs
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-darwin-12
- GEM PATHS:
- /Users/ttm/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0
- /Users/ttm/.gem/ruby/2.0.0
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- https://rubygems.org/
- SHELL PATH:
- /Users/ttm/.rbenv/versions/2.0.0-p247/bin
- /Users/ttm/.rbenv/libexec
- /Users/ttm/.rbenv/plugins/ruby-build/bin
- /Users/ttm/perl5/perlbrew/bin
- /Users/ttm/perl5/perlbrew/perls/perl-5.18.1/bin
- /Users/ttm/.pyenv/shims
- /Users/ttm/.pyenv/bin
- /Users/ttm/.rbenv/shims
- /Users/ttm/.rbenv/bin
- /Users/ttm/bin
- /usr/local/mysql-5.6.12-osx10.7-x86_64/bin
- /Users/ttm/libsmi/bin
- /usr/local/bin
- /usr/bin
- /bin
- /usr/sbin
- /sbin
- /usr/local/bin
สังเกตเห็นทั้งสองส่วนสำหรับ:
INSTALLATION DIRECTORY
GEM PATHS
gem env
โดยย่อ
EXECUTABLE DIRECTORY
ฉันมองใน
EXECUTABLE DIRECTORY
ประกอบด้วยเวอร์ชันที่สามารถเรียกใช้งานได้ของ CLI ที่ติดตั้งโดยอัญมณี แต่ไม่ใช่อัญมณีเอง
ฉันพบว่ามีประโยชน์ในการรับตำแหน่งของไฟล์ไลบรารีด้วย:
gem which *gemname*
gem which 'logstash/inputs/tcp.rb'
หลังจากติดตั้งอัญมณีแล้วหากคุณต้องการทราบว่าอัญมณีนั้นอยู่ที่ไหน ลองพิมพ์:
gem list
คุณจะสามารถดูรายการอัญมณีที่คุณติดตั้ง ตอนนี้ใช้bundle show
และตั้งชื่ออัญมณีที่คุณต้องการรู้เส้นทางสำหรับเช่นนี้:
bundle show <gemName>
Could not locate Gemfile or .bundle/ directory
ฉันวิ่งคำสั่งนี้และได้
gem env
) แสดงให้เห็นเพียงโฟลเดอร์หลักสำหรับโฟลเดอร์:gems
/home/test/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0
มีหลายโฟลเดอร์อยู่ข้างในและอัญมณีของคุณอาจอยู่ในเกือบทุกอัน - นั่นคือสิ่งที่bundle show <gemName>
แสดงให้เห็นว่า (และgem env
) ไม่ตรง
เพื่อให้คำตอบอื่น ๆ สมบูรณ์ยิ่งขึ้นเส้นทางอัญมณี gem สามารถค้นหาพา ธ การติดตั้งของ gem เฉพาะ
การติดตั้ง:
gem install gem-path
การใช้งาน:
gem path rails
=> /home/cbliard/.rvm/gems/ruby-2.1.5/gems/rails-4.0.13
gem path rails '< 4'
=> /home/cbliard/.rvm/gems/ruby-2.1.5/gems/rails-3.2.21
มันมีประโยชน์จริง ๆ เพราะคุณสามารถใช้มันเพื่อ grep หรือแก้ไขไฟล์:
grep -R 'Internal server error' "$(gem path thin)"
subl "$(gem path thin)"
คุณสามารถตรวจสอบได้จากพรอมต์คำสั่งของคุณโดยการเรียกใช้gem help commands
แล้วเลือกคำสั่งที่เหมาะสม:
kirti@kirti-Aspire-5733Z:~$ 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
cleanup Clean up old versions of installed gems in the local
repository
contents Display the contents of the installed gems
dependency Show the dependencies of an installed gem
environment Display information about the RubyGems environment
fetch Download a gem and place it in the current directory
generate_index Generates the index files for a gem server directory
help Provide help on the 'gem' command
install Install a gem into the local repository
list Display gems whose name starts with STRING
lock Generate a lockdown list of gems
mirror Mirror all gem files (requires rubygems-mirror)
outdated Display all gems that need updates
owner Manage gem owners on RubyGems.org.
pristine Restores installed gems to pristine condition from
files located in the gem cache
push Push a gem up to RubyGems.org
query Query gem information in local or remote repositories
rdoc Generates RDoc for pre-installed gems
regenerate_binstubs Re run generation of executable wrappers for gems.
search Display all gems whose name contains STRING
server Documentation and gem repository HTTP server
sources Manage the sources and cache file RubyGems uses to
search for gems
specification Display gem specification (in yaml)
stale List gems along with access times
uninstall Uninstall gems from the local repository
unpack Unpack an installed gem to the current directory
update Update installed gems to the latest version
which Find the location of a library file you can require
yank Remove a specific gem version release from
RubyGems.org
For help on a particular command, use 'gem help COMMAND'.
Commands may be abbreviated, so long as they are unambiguous.
e.g. 'gem i rake' is short for 'gem install rake'.
kirti@kirti-Aspire-5733Z:~$
ตอนนี้จากข้างบนฉันเห็นว่าคำสั่งenvironment
นั้นมีประโยชน์ ดังนั้นฉันจะทำ:
kirti@kirti-Aspire-5733Z:~$ gem help environment
Usage: gem environment [arg] [options]
Common Options:
-h, --help Get help on this command
-V, --[no-]verbose Set the verbose level of output
-q, --quiet Silence commands
--config-file FILE Use this config file instead of default
--backtrace Show stack backtrace on errors
--debug Turn on Ruby debugging
Arguments:
packageversion display the package version
gemdir display the path where gems are installed
gempath display path used to search for gems
version display the gem format version
remotesources display the remote gem servers
platform display the supported gem platforms
<omitted> display everything
Summary:
Display information about the RubyGems environment
Description:
The RubyGems environment can be controlled through command line arguments,
gemrc files, environment variables and built-in defaults.
Command line argument defaults and some RubyGems defaults can be set in a
~/.gemrc file for individual users and a /etc/gemrc for all users. These
files are YAML files with the following YAML keys:
:sources: A YAML array of remote gem repositories to install gems from
:verbose: Verbosity of the gem command. false, true, and :really are the
levels
:update_sources: Enable/disable automatic updating of repository metadata
:backtrace: Print backtrace when RubyGems encounters an error
:gempath: The paths in which to look for gems
:disable_default_gem_server: Force specification of gem server host on
push
<gem_command>: A string containing arguments for the specified gem command
Example:
:verbose: false
install: --no-wrappers
update: --no-wrappers
:disable_default_gem_server: true
RubyGems' default local repository can be overridden with the GEM_PATH and
GEM_HOME environment variables. GEM_HOME sets the default repository to
install into. GEM_PATH allows multiple local repositories to be searched for
gems.
If you are behind a proxy server, RubyGems uses the HTTP_PROXY,
HTTP_PROXY_USER and HTTP_PROXY_PASS environment variables to discover the
proxy server.
If you would like to push gems to a private gem server the RUBYGEMS_HOST
environment variable can be set to the URI for that server.
If you are packaging RubyGems all of RubyGems' defaults are in
lib/rubygems/defaults.rb. You may override these in
lib/rubygems/defaults/operating_system.rb
kirti@kirti-Aspire-5733Z:~$
ในที่สุดเพื่อแสดงสิ่งที่คุณถามฉันจะทำ:
kirti@kirti-Aspire-5733Z:~$ gem environment gemdir
/home/kirti/.rvm/gems/ruby-2.0.0-p0
kirti@kirti-Aspire-5733Z:~$ gem environment gempath
/home/kirti/.rvm/gems/ruby-2.0.0-p0:/home/kirti/.rvm/gems/ruby-2.0.0-p0@global
kirti@kirti-Aspire-5733Z:~$
gem help commands
ผมไม่ทราบ และฉันควรจะเขียนว่าฉันใช้ rbenv
คุณสามารถหลอกgem open
ให้แสดงเส้นทางอัญมณี:
VISUAL=echo gem open gem-name
ตัวอย่าง:
VISUAL=echo gem open rails
=> /usr/local/opt/asdf/installs/ruby/2.4.3/lib/ruby/gems/2.4.0/gems/rails-5.1.4
มันใช้งานได้และไม่จำเป็นต้องใช้อัญมณีของบุคคลที่สาม
-e
ตัวเลือก ( -e echo
) หากง่ายกว่าการตั้งค่าตัวแปรสภาพแวดล้อม
gem env
gem environment
ทำงานเช่นเดียวกับ บันทึกการพิมพ์บางอย่าง
# gem env
RubyGems Environment:
- RUBYGEMS VERSION: 2.0.14
- RUBY VERSION: 2.0.0 (2014-02-24 patchlevel 451) [i686-linux]
- INSTALLATION DIRECTORY: /usr/local/lib/ruby/gems/2.0.0
- RUBY EXECUTABLE: /usr/local/bin/ruby
- EXECUTABLE DIRECTORY: /usr/local/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86-linux
- GEM PATHS:
- /usr/local/lib/ruby/gems/2.0.0
- /root/.gem/ruby/2.0.0
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- https://rubygems.org/
gem help commands
ผลตอบแทน " คำสั่งอาจจะยากตราบใดที่พวกเขามีความโปร่งใส. เช่น 'อัญมณีฉันคราด' สั้นสำหรับ 'อัญมณีติดตั้งคราด'. " ในคำอื่น ๆgem environment
, gem env
และgem e
การทำงานทั้งหมด แต่gem environment
เป็นตัวเองเอกสารสำหรับผู้ที่ไม่ทราบ เราควรใช้สิ่งนี้กับผู้จับเวลาคนแรกอย่างไร
gem env
รายการที่อัญมณีที่สามารถได้รับการติดตั้ง แต่นี้จะเป็น 10 หรือมากกว่าสถานที่ หากคุณต้องการที่จะทราบว่าเป็นอัญมณีโดยเฉพาะอย่างยิ่งมีการติดตั้งคุณสามารถดำเนินการ:
gem list -d <gemname>
ตัวอย่างผลลัพธ์:
tilt (2.0.9)
Author: Ryan Tomayko
Homepage: http://github.com/rtomayko/tilt/
License: MIT
Installed at: /opt/rubies/ruby-2.5.3/lib/ruby/gems/2.5.0
Generic interface to multiple Ruby template engines
หากคุณใช้เครื่องมือ rvm คุณสามารถเรียกใช้คำสั่งนี้เพื่อพิมพ์เส้นทางอัญมณี:
rvm gemdir
หรือ
echo $GEM_HOME
การทำงานและให้คุณติดตั้งที่เส้นทางสำหรับแต่ละอัญมณี สิ่งนี้มีประโยชน์มากเมื่อพยายามสร้างตัวเชื่อมต่อแบบหลายขั้นตอน .. คุณสามารถคัดลอกในการติดตั้ง post-bundle ไดเรกทอรีที่ระบุ
bash-4.4# gem list -d
เอาท์พุท ::
aasm (5.0.6)
Authors: Thorsten Boettger, Anil Maurya
Homepage: https://github.com/aasm/aasm
License: MIT
Installed at: /usr/local/bundle
State machine mixin for Ruby objects
GEM PATHS
มีการใช้งานครั้งแรกเท่านั้น นั่นถูกต้องใช่ไหม?