Глобално достъпен Gemfile

Имам множество скъпоценни камъни, които използвам във всички Rails проекти, но те не са част от скъпоценните камъни на проектите, например прах за управление на военнопленници.

За мен би имало смисъл да ги управлявам с глобален Gemfile, но не мога да видя никакви примери за това.

Как трябва да управлявам глобални скъпоценни камъни, които не искам в скъпоценните файлове на моя проект? Би било добре да има една точка за инсталиране, когато настройвам нова машина и т.н.

Използвам chruby заедно с ruby-install, за да управлявам моите версии на Ruby.


person Undistraction    schedule 06.12.2013    source източник
comment
Звучи като работа за RVM. stackoverflow.com/questions/4007171/   -  person Robin    schedule 06.12.2013
comment
@Sam За съжаление използвам Chruby   -  person Undistraction    schedule 06.12.2013


Отговори (3)


Направете Gemfile както обикновено и го поставете във всяка папка. Не е необходимо да е папка на проекта. Тогава можете просто да направите:

bundle install --system

Това ще инсталира скъпоценните камъни в Gemfile в цялата система и ще поиска парола за root, ако нямате достъп до системната папка.

--system: Инсталира скъпоценните камъни в пакета на системното местоположение. Това отменя всяко предишно запомнено използване на --path.

Можете също така да дадете име на вашите Gemfile(ове), ако искате да ги организирате по някакъв начин, и след това направете:

bundle install --system --gemfile Gemfile_name
person Casper    schedule 06.12.2013
comment
Не разбирам въпроса беше How should I manage global Gems that I don't want in my project gemfiles?. Как е този отговор? - person Haris Krajina; 06.12.2013
comment
Благодаря. Как бихте управлявали скъпоценни камъни за различни версии на Ruby? Различен Gemfile за всяка версия на Ruby? - person Undistraction; 06.12.2013
comment
@Dolphin Как не е отговорът? - person Undistraction; 06.12.2013
comment
@Pedr Той ще инсталира скъпоценни камъни в системата, но те ще бъдат в gemfile на проекта. Например, ако стартирате Rails приложение, всички скъпоценни камъни ще бъдат в обхвата на проекта. Струва ми се, че трябва да инсталирате скъпоценни камъни в системата, без да сте в Gemfile на проекта. - person Haris Krajina; 06.12.2013
comment
@Делфин. Те не са в Gemfile на проекта. Те са в отделен Gemfile, който седи някъде във вашата система. Вижте моя отговор. Може би сега бихте могли да премахнете своя вот против от този отговор, тъй като е правилен. - person Undistraction; 06.12.2013
comment
@Pedr Ahhh Предполагах, че този Gemfile (глобален) ще бъде в директорията на проекта заедно с проекта Gemfile, nvm моя грешка. - person Haris Krajina; 06.12.2013
comment
@Pedr Да, различен Gemfile ми звучи като доста просто решение. Въпреки това, ако разликите не са големи между Gemfiles, тогава можете да помислите за директивата :platforms, която може да прикачи конкретен скъпоценен камък към конкретна основна версия на Ruby. Вижте повече в ръководството за Gemfile: bundler.io/v1.5/man/gemfile .5.html - person Casper; 06.12.2013
comment
@Каспър. да Това е много по-хубаво. Вероятно трябва да седна и RTFM. - person Undistraction; 06.12.2013

Като допълнение към отговора на @Casper:

Създадох директория за моите системни Gem файлове.

След това добавих директория за всяка версия на ruby, за която исках да инсталирам системни скъпоценни камъни. Добавих Gemfile към всяка директория и файл .ruby-version с правилната версия. Вече мога да инсталирам системни скъпоценни камъни за ruby ​​версия, използвайки:

$ cd path/to/system_gems_dir/1.9.3-p484
$ bundle install --system

or

$ cd cd path/to/system_gems_dir/2.0.0-p353
$ bundle install --system
person Undistraction    schedule 06.12.2013

Можете да създадете GlobalGemfile файл (или каквото и да го наречете) и тогава можете да направите.

bundle install --gemfile GlobalGemfile

Готино нали :)

person Haris Krajina    schedule 06.12.2013