На сервере CentOS 7 v0.12.7
установлен Node.js, и установка была выполнена с помощью tar. Это приводит к конфликтам, когда я пытаюсь установить более современную версию Node.js с помощью yum. Какие конкретные шаги необходимо предпринять (т. е. какие конкретные команды необходимо ввести) для безопасного удаления tar-installed v.0.12.7
?
Thetar
можно v0.12.7
найти по этой ссылке..
Также, если это важно, tar
на сервере установлены следующие файлы:
[root@localhost ~]# cd /
[root@localhost /]# find . -type f -iname "*.tar"
find: ‘./run/user/1000/gvfs’: Permission denied
./opt/node-v0.12.7/deps/npm/node_modules/tar/test/dir-normalization.tar
./opt/node-v0.12.7/deps/npm/test/fixtures/gitignore-and-npmignore-2.tar
./opt/node-v0.12.7/deps/npm/test/fixtures/gitignore-and-npmignore.tar
./usr/local/lib/node_modules/npm/test/fixtures/gitignore-and-npmignore-2.tar
./usr/local/lib/node_modules/npm/test/fixtures/gitignore-and-npmignore.tar
./usr/local/lib/node_modules/npm/node_modules/tar/test/dir-normalization.tar
[root@localhost /]#
Конфликт между двумя версиями можно увидеть из следующих команд:
[root@localhost /]# node --version
v0.12.7
[root@localhost /]# which node
/usr/local/bin/node
[root@localhost /]# /usr/bin/node -v
v5.6.0
[root@localhost /]#
Так как же мне безопасно удалить tar
-installed v0.12.7
? Какие конкретные команды нужно ввести?
ПОПРОБУЕМ ПОДХОД @Gilles:
Согласно предложениям в ответе @Gille, я попробовал следующее:
[root@localhost local]# cd /usr/local/bin
[root@localhost bin]# ls
bower express grunt gulp node nodemon npm yo
[root@localhost bin]#
Поэтому я попробовал следующие команды, которые, похоже, удалили v0.12.7
, но я подожду, прежде чем отметить ответ ниже как принятый, поскольку есть ошибка в нисходящем направлении, которая задокументированав этом другом сообщении. Любая помощь по ошибке downstream будет высоко оценена. Вот код, который, кажется, сработал здесь:
rm /usr/local/bin/node
rm /usr/local/bin/npm
\rm -R /opt/node-v0.12.7/
решение1
Невозможно дать вам конкретные команды для выполнения удаления, поскольку вы не даете нам конкретных команд, которые использовались для выполнения установки. Однако, основываясь на предоставленной вами информации, это не сложная задача. Я рекомендую вам прекратить ваши текущие усилия — похоже, вы делаете какие-то очень сложные и бесполезные вещи.
В версии, установленной вручную, двоичный файл находится в /usr/local/bin
. Это хорошо: это означает, что тот, кто его установил, не натворил дел. Просто напоминание: /bin
, /lib
, /bin
и /usr
снаружи /usr/local
принадлежат менеджеру пакетов; /usr/local
принадлежат системному администратору. У вас есть установленное вручную программное обеспечение в /usr/local
; это нормально.
Двоичный пакет node.js помещает файлы в общее дерево, содержащее:
- Некоторые файлы документации в каталоге верхнего уровня.
bin/node
иbin/npm
share/man/man1/node.1
lib/node_modules
share/systemtap/tapset/node.stp
include/node
Так как node
находится в , найдите также /usr/local/bin
другие файлы и каталоги в , например , и т. д. Если вы их найдете, удалите их. Если вы их не найдете, они могли быть установлены в другом месте или вообще не установлены; вы можете попробовать найти, где они находятся (если они присутствуют: заголовочные файлы в и файл systemtap полезны не всем)./usr/local
/usr/local/share/man/man1/node.1
locate
include
Похоже, /opt/node-v0.12.7
это исходное дерево. Его можно удалить.
Если вы беспокоитесь об удалении файла, который оказался необходимым, убедитесь, что ваши резервные копии актуальны, или просто переместите файлы в другое место или сохраните их в архиве, пока вы проверяете работоспособность своей системы.
Если выДействительнообеспокоены и спешите, скорее всего, установленная вручную версия не конфликтует с версией rpm — есть только тот node
двоичный файл (и, вероятно, npm
также), который находится перед версией в /usr/bin
в PATH. Переименуйте /usr/local/bin/node
в /usr/local/bin/node-0.12.7
(и аналогично для npm
) и node
или #!/usr/bin/env node
вызовет установленную в системе версию.