2015-10-09 9 views
3

Предположим, что я создаю проект Rails и создаю default.nix для nix-оболочки, которая создаст среду разработки для этого проекта через nix-shell . , Естественно, эта оболочка будет иметь любые зависимости, которые мне понадобятся для Ruby on Rails.Есть ли способ составить Nix-выражения для создания сред разработки для `nix-shell`

Теперь предположим, что я также создаю проект AngularJS, а также сделаю то же самое для этого, создав default.nix, который будет запущен через nix-shell ..

Рассмотрите, в будущем у меня может быть проект, который использует как угловые, так и рубиновые на Rails (гипотетически говоря). Есть ли способ взять мой проект Angular проекта default.nix и мой проект Rails default.nix и составить их вместе, не прибегая к копированию?

Далее, давайте предположим, что для этого проекта позже могут потребоваться другие зависимости. Могу ли я, возможно, что-то сделать с сохранением Rails default.nix как rails-env.nix и Angular default.nix как angular-env.nix, а затем включить их в новый default.nix для моего проекта Rails-Angular + Extras, чтобы я мог иметь как зависимости, объявленные в rails-env.nix и angular-env.nix, но также объявляют дополнительные зависимости, помимо тех, которые включают в себя, таким образом максимизируя повторное использование моих выражений Nix для создания сред разработки?

+1

Добавление этого комментария просто так, что сообщество знает, что я до сих пор наблюдая за этим вопросом и продолжайте это делать до тех пор, пока не будет предоставлен ответ. Есть ли какая-то дополнительная информация, которую я мог бы предоставить, что было бы полезно? – josiah

+0

У меня это открытое, так как оно было спрошено, и ответ «да, вы можете», к сожалению, я никогда не нахожу времени, чтобы написать полный ответ, и поэтому вы можете указать только на https://nixos.org/wiki/ Development_Environments и http://nixos.org/nix/manual/#sec-arguments и дайте вам подсказку о том, что выражения nix - это функции, которые вы можете создавать относительно свободно. –

ответ

0

Файл Nix - это просто выражение, которое можно импортировать с помощью import ./path/to/other.nix. Вы можете разделить любое выражение, которое вам нравится, в отдельный файл и повторно использовать его. Это стандартная практика, чтобы сделать ее функцией, чтобы вы могли параметризовать ее по-разному для разных проектов или сборок.

Вот некоторые хорошие примеры с импортом: http://sandervanderburg.blogspot.ro/2014/07/managing-private-nix-packages-outside.html

И интро к языку Nix выражения, что является довольно просто: https://medium.com/@MrJamesFisher/nix-by-example-a0063a1a4c55

+0

Добро пожаловать в SO. Спасибо за ваш ответ, но в целом ответ «link-most» не рекомендуется в StackOverflow, вы можете прочитать больше [здесь] (https://meta.stackexchange.com/questions/8231/are-answers-that-just-contain -links-в другом месте-на самом деле-хорошие-ответы). Подумайте, как отредактировать свой ответ, добавив суммарное содержание ваших ссылок. – Pado