Только недавно столкнулся и попробовал использовать rubygems. Ранее все устанавливал через portage. Но частенько стали попадаться статьи, в которых пишут нечто вроде следующего:
gem install git-up
gem install bundle
Это  добро у  меня вызывало,  некоторое недоумение  (что еще  за левые  пакетные
менеджеры???)   и  я бежал  искать  аналоги  в  portage.  Частенько  этого  не
находилось даже в различных overlay'ях.  И вот в один из таких моментов, решив
сэкономить время на поиск ebuild'ов,  я все-таки выполнил указанную команду. И
получил необходимое приложение в ~/.gem/ruby/1.9.1/bin.
Но  тут  пользователи  gentoo  столкнуться  с  некоторым  затруднением.   Этот
дистрибутив  не очень  дружелюбен для  ruby.   То, что  установится, не  будет
доступно в  PATH.  В  других используемых  мной системах  аналогичной проблемы
замечено не было. В OS X  и Windows (Cygwin) PATH сам без дополнительных
движений обновляется.
На  bugs.gentoo.org нашел  следующее  универсальное  решение.  Создаем  в
папке /etc/profile файл следующего содержания:
if [[ -L "/usr/bin/ruby" ]]; then
    RUBY=$(readlink /usr/bin/ruby 2> /dev/null)
    case "${RUBY}" in
        *18) VERSION="1.8" ;;
        *19) VERSION="1.9.1" ;;
          *) VERSION="${RUBY##*/}" ;;
    esac
    export PATH="${HOME}/.gem/ruby/${VERSION}/bin:${PATH}"
fi
После этого все будет доступно как надо.
Похоже использовать gem намного удобнее, чем стандартный пакетный менеджер. Тем более на своей локальной машине с фактически одним пользователем (root не считается). Конечно можно добавлять себе постоянно новые overlay и писать новые ebuild. Но как показала моя практика это занимает существенно больше времени. Да и кроме того написание однотипных ebuild не особо интересное занятие. Генератора нету случаем? Не знаю как дело обстоит в других дистрибутивах, но думаю как-то также.
Еще в последнее время натолкнулся на pip для python и npm для node.js. Идея общественных хранилищ для программ, написанных на определенном языке как никак популярна сейчас. И это реально удобно.
Comments
comments powered by Disqus