Когда я пишу команду mvn
в Терминале, я получаю это сообщение:
The program 'mvn' can be found in the following packages:
* maven
* maven2
Try: sudo apt-get install <selected package>
Я также получаю то же сообщение для команды node
:
The program 'node' can be found in the following packages:
* node
* nodejs-legacy
Try: sudo apt-get install <selected package>
Что я думаю означает, что у меня установлено две версии maven и для node
у меня есть другая программа, кроме nodejs, с которой также связана команда node
.
Поэтому он хочет, чтобы я использовал:
sudo apt-get install maven
или
sudo apt-get install maven2
Чтобы навсегда связать команду mvn
с одной из программ (версии maven
) maven
или maven2
.
Есть ли способ временно использовать mvn
для maven
или для maven2
? Я имею в виду способ, которым я могу временно выбрать один из maven
или maven2
?
mvn
В случае mvn
, можно установить maven
(v3, не v1) и maven2
(v2) бок о бок с:
sudo apt-get install maven maven2
и у Вас будет два двоичных файла.
/usr/share/maven/bin/mvn
/usr/share/maven2/bin/mvn
Для переключения между этими двумя двоичными файлами используйте:
sudo update-alternatives --config mvn
Пример
% mvn -version
Apache Maven 2.2.1 (rdebian-17)
Java version: 1.8.0_45
Java home: /usr/lib/jvm/java-8-oracle/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux" version: "3.19.0-22-generic" arch: "amd64" Family: "unix"
% sudo update-alternatives --config mvn
There are 2 choices for the alternative mvn (providing /usr/bin/mvn).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/share/maven2/bin/mvn 200 auto mode
1 /usr/share/maven/bin/mvn 150 manual mode
2 /usr/share/maven2/bin/mvn 200 manual mode
Press enter to keep the current choice[*], or type selection number: 1
update-alternatives: using /usr/share/maven/bin/mvn to provide /usr/bin/mvn (mvn) in manual mode
% mvn -version
Apache Maven 3.0.5
Maven home: /usr/share/maven
Java version: 1.8.0_45, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-8-oracle/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.19.0-22-generic", arch: "amd64", family: "unix"
node
В случае node
, это не возможно или только с большим усилием:
% sudo apt-get install node nodejs-legacy
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
node : Conflicts: nodejs-legacy but 0.10.25~dfsg2-2ubuntu1 is to be installed
nodejs-legacy : Conflicts: node but 0.3.2-7.4 is to be installed
E: Unable to correct problems, you have held broken packages.
Там написано, что вы не установили эти программы. Таким образом, вы можете установить nodejs с помощью:
sudo apt-get install nodejs-legacy
и установить maven с помощью:
sudo apt-get install maven