Użyj, gem environment
aby dowiedzieć się o swoim środowisku klejnotów:
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
Zwróć uwagę na dwie sekcje:
INSTALLATION DIRECTORY
GEM PATHS
GEM PATHS
się , że są używane tylko jako pierwsze. Czy to prawda?gem env
w skrócieEXECUTABLE DIRECTORY
.EXECUTABLE DIRECTORY
Zawiera CLI wersje wykonywalne zainstalowane przez perełki, ale nie jest to same perełki.Uznałem, że przydatne jest uzyskanie lokalizacji pliku biblioteki za pomocą:
źródło
gem which 'logstash/inputs/tcp.rb'
Po zainstalowaniu klejnotów, jeśli chcesz wiedzieć, gdzie jest dany klejnot. Spróbuj wpisać:
Zobaczysz listę zainstalowanych klejnotów. Teraz użyj
bundle show
i nazwij klejnot, dla którego chcesz poznać ścieżkę, w następujący sposób:źródło
Could not locate Gemfile or .bundle/ directory
.gem env
) pokazuje tylko folder nadrzędny dlagems
folderu:/home/test/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0
. Jest w nim wiele folderów, a twój klejnot może znajdować się w prawie każdym z nich - to właśniebundle show <gemName>
pokazuje (igem env
) nie.Aby uzupełnić inne odpowiedzi, klejnot ścieżki klejnotu może znaleźć ścieżkę instalacji konkretnego klejnotu.
Instalacja:
Stosowanie:
Jest to bardzo przydatne, ponieważ można go używać do grepowania lub edytowania plików:
źródło
Możesz to sprawdzić w wierszu polecenia, uruchamiając,
gem help commands
a następnie wybierając odpowiednie polecenie:Teraz z powyższego widzę, że polecenie
environment
jest pomocne. Więc zrobiłbym:Wreszcie, aby pokazać, o co prosiłeś, zrobiłbym:
źródło
gem help commands
. I powinienem napisać, że używam rbenv.Możesz oszukać
gem open
w wyświetlaniu ścieżki klejnotów:Przykład:
To po prostu działa i nie jest potrzebny żaden klejnot osoby trzeciej.
źródło
-e
opcji (-e echo
), jeśli jest to łatwiejsze niż ustawienie zmiennej środowiskowej.gem env
działa jakgem environment
. Oszczędza trochę pisania.źródło
gem help commands
zwraca „ Polecenia mogą być skracane, o ile są jednoznaczne. np.„ gem i rake ”jest skrótem od„ gem install rake ”. Innymi słowygem environment
,gem env
igem e
wszystko działa, alegem environment
samo dokumentuje się dla tych, którzy nie wiedzą co robi, więc powinniśmy to wykorzystać dla nowicjuszy.Te
gem env
listy, gdzie kamienie mogą być zainstalowane, ale może to być 10 lub więcej miejscach. Jeśli chcesz wiedzieć, gdzie jest zainstalowany konkretny klejnot , możesz wykonać:Przykładowe dane wyjściowe:
źródło
jeśli używasz narzędzia rvm, możesz uruchomić to polecenie, aby wydrukować ścieżkę klejnotu:
LUB
źródło
Działa i daje ci zainstalowany na ścieżce dla każdego klejnotu. Jest to bardzo pomocne, gdy próbujesz tworzyć wieloetapowe kompilacje dokerów. Możesz skopiować w określonym katalogu po instalacji pakietu.
bash-4.4# gem list -d
Wynik::
źródło