URL: https://ssl.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 97587
[ Назад ]

Исходное сообщение
"Как обмануть apt?"

Отправлено Русский рэп , 01-Май-20 05:54 
Здравствуйте

Предыстория.
В репах убунты по умолчанию древняя версия nodejs. К счастью, есть сторонний резозиторий nodesource. Беда в том, что лентяи из nodesource сделали жесткую привязку ихней ноды ко второму питону

Обойти привязку вроде бы несложно: скачать deb-пакет, и установить командой
sudo dpkg --force-all -i nodejs_14.1.0-1nodesource1_amd64.deb

Беда в том, что после такого лайфхака ничего более установить не получится. Утилита apt завершается с ошибкой:
Unmet dependencies. Try 'apt --fix-broken install' with no packages

А если скомандовать этот самый 'apt --fix-broken install', то установится ненужный python2

Подскажите, как поставить пакет nodesource без зависимостей и не вызвать гнева apt? или иной выходи из ситуации

Ссылка на устанавливаемый deb-пакет: https://deb.nodesource.com/node_14.x/pool/main/n/nodejs/


Содержание

Сообщения в этом обсуждении
"Как обмануть apt?"
Отправлено bootforce , 01-Май-20 06:12 
1) А зачем?

2) Сделать фейковый пакет, который "Provides: python2" и поставить его перед установкой ноды


"Как обмануть apt?"
Отправлено Русский рэп , 01-Май-20 08:32 
> 1) А зачем?

Присутствие второго питона в системе вызывает неприятные эмоции )

> 2) Сделать фейковый пакет, который "Provides: python2" и поставить его перед установкой
> ноды

Как вариант. Или подправить зависимости в этом пакете. Но может есть способ без колдовства с файлами. Команда какая-нибудь


"Как обмануть apt?"
Отправлено bootforce , 01-Май-20 10:35 
>> 1) А зачем?
> Присутствие второго питона в системе вызывает неприятные эмоции )

Имхо, система с поломанными зависимостями -- больший повод для беспокойства


"Как обмануть apt?"
Отправлено Аноним , 01-Май-20 11:20 

> Присутствие второго питона в системе вызывает неприятные эмоции )

это при том, что ты ноду ставишь

1. какая разница, что будет питон?
2. не ломай apt

можно еще попробовать тупо распаковать пакет, тогда apt ничего о нем знать не будет и, соответственно, не будет ругаться. Только потом не удивляйся.


"Как обмануть apt?"
Отправлено Аноним , 02-Май-20 11:06 
> Присутствие второго питона в системе вызывает неприятные эмоции )

NodeJS вызывает еще бОльшие неприятные эмоции


"Как обмануть apt?"
Отправлено Аноним , 01-Май-20 12:28 
Единственно верное решение - собрать ноду нужной вам версии самостоятельно. Опционально убрать в пакет, автоматизировать пересборку на актуальную версию с перепакетированием, локальный репозиторий, вот это всё.
Но первое движение - make && make install

"Как обмануть apt?"
Отправлено Аноним , 01-Май-20 12:53 
> Единственно верное решение
> make install

как из убунты сделать слаку?


"Как обмануть apt?"
Отправлено муу , 01-Май-20 15:41 
> Единственно верное решение - собрать ноду нужной вам версии самостоятельно. Опционально
> убрать в пакет, автоматизировать пересборку на актуальную версию с перепакетированием,
> локальный репозиторий, вот это всё.
> Но первое движение - make && make install

ноде <13 нужен питон _2_ для сборки, ибо это гмо использует gypi


"Как обмануть apt?"
Отправлено Аноним , 03-Май-20 02:20 
Собирайте 14. В любом случае подход "сделай сам" лучше, чем подсесть на чужую сборку, а потом мантейнер ее дропнет или накосячит с ней.

"Как обмануть apt?"
Отправлено 1 , 02-Май-20 17:57 
Если ставить из snap то там 15.0.0-nightly20200501e9518254

"Как обмануть apt?"
Отправлено 1 , 02-Май-20 18:03 
ну там похоже можно и из stable установить -- 14/stable: 14.1.0


"Как обмануть apt?"
Отправлено And , 04-Май-20 18:33 
Вроде, нужно дописать знак минус в конце имени ненужного пакета:
https://serverfault.com/questions/250224/how-do-i-get-apt-ge...

Запомнит ли Апт это - не знаю. Но, система пакетирования специально придумана и сделана чтобы таких вещей с зависимотями не делалось.

Но - большое достоинство этого мира - оставлена возможность сделать лучше других. :)


"Как обмануть apt?"
Отправлено BrainFucker , 01-Авг-20 14:25 
А зачем именно apt? None есть на официальном сайте портабельно собранный, просто распаковывается куда нибудь в /opt/nodejs и используется без всяких этих dependency hell.