Как правильно установить dotnet ef на Ubuntu?

Я пытаюсь установить dotenet ef на Ubuntu 20.4.1 LTS.

Во-первых, я установил инструмент глобально:

dotnet tool install --global dotnet-ef

Поскольку это не сработало, я добавил эту ссылку PATH в папку инструментов dotnet в моем файле .bashrc:

export PATH = "$PATH:$HOME/.dotnet/tools/"

Как предложено здесь: Не удается найти команду «dotnet ef»?

Тем не менее, когда я пытаюсь запустить dotnet ef, я получаю это сообщение об ошибке:

Could not execute because the specified command or file was not found.
Possible reasons for this include:
  * You misspelled a built-in dotnet command.
  * You intended to execute a .NET Core program, but dotnet-ef does not exist.
  * You intended to run a global tool, but a dotnet-prefixed executable with this name could not be found on the PATH.

Интересно, что если я попытаюсь установить его снова, мне сообщат, что он уже установлен.

Tool 'dotnet-ef' is already installed.

Но если я попытаюсь перечислить установленные инструменты с помощью dotnet tool list, я получу пустой результат:

Tool 'dotnet-ef' is already installed.

Я также проверил свою папку ~/.dotnet/tools/, и она пуста.

Что мне здесь не хватает?

Вы использовали snap install для установки dotnet sdk? Если да, то попробуйте sudo snap alias dotnet-sdk.dotnet dotnet. Может не помочь, но по крайней мере сузит проблему

jdewerth 12.12.2020 23:32

@jandrew Я не уверен, что знал. Можно ли как-то убедиться, сделал я это или нет?

Rogerio Schmitt 13.12.2020 00:31

Итак, как вы установили .NET SDK на свой компьютер с Ubuntu? Я предполагаю, что это было либо через один из менеджеров пакетов (sudo apt-get и т. д.), либо вы установили его вручную?

jdewerth 13.12.2020 00:50

Я не могу вспомнить, как я это сделал, я могу как-то проверить, как это было?

Rogerio Schmitt 13.12.2020 01:03
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
3
4
1 938
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

У меня была такая же проблема на Ubuntu. Я установил dotnet вручную. По какой-то причине dotnet-ef ищет dotnet в «/usr/share/dotnet». Поэтому мне пришлось установить dotnet-sdk точно в каталог «/usr/share/dotnet», соответствующим образом изменить PATH, а также установить DOTNET_ROOT в этот каталог. Тогда и работал dotnet-ef.

Кстати: вы можете указать путь установки dotnet-ef вручную с помощью --tool-path "$HOME/.dotnet/tools", если --global не работает.

Это привело меня к тому, что я обнаружил, что у меня есть /usr/share/dotnet, который был пуст, и воссоздал его как символическую ссылку на мою папку $HOME/.dotnet.

rob 19.10.2022 12:27

Решение найдено.

Добавьте следующее в .bashrc/.zshrc

export PATH = "$PATH:$HOME/.dotnet/tools/"

При использовании Fish используйте fish_add_path $HOME/.dotnet/tools/ после глобальной установки ef.

Другие вопросы по теме