Как я могу установить несколько версий llvm libc ++ на одном компьютере одновременно (Ubuntu)? - PullRequest
1 голос
/ 12 апреля 2020

Я попробовал очевидное:

apt-get install -y clang++-7 libc++abi-7-dev libc++-7-dev
apt-get install -y clang++-8 libc++-8-dev libc++abi-8-dev
apt-get install -y clang++-9 libc++-9-dev libc++abi-9-dev
apt-get install -y clang++-10 libc++-10-dev libc++abi-10-dev

Нет проблем с несколькими версиями Clang ++. Но каждая версия libc ++, кажется, удаляет предыдущую.

Когда я пытаюсь:

apt-get install libc++abi-7-dev libc++-7-dev  libc++abi-8-dev libc++-8-dev libc++-9-dev libc++abi-9-dev libc++-10-dev libc++abi-10-dev

Я получаю

The following packages have unmet dependencies:
 libc++-10-dev : Conflicts: libc++-x.y-dev
 libc++-7-dev : Depends: libc++1-7 (= 1:7.0.1-12) but it is not going to be installed
                Conflicts: libc++-x.y-dev
 libc++-8-dev : Depends: libc++1-8 (= 1:8.0.1-9) but it is not going to be installed
                Conflicts: libc++-x.y-dev
 libc++-9-dev : Depends: libc++1-9 (= 1:9.0.1-11ubuntu1) but it is not going to be installed
                Conflicts: libc++-x.y-dev
 libc++abi-10-dev : Conflicts: libc++abi-x.y-dev
 libc++abi-7-dev : Depends: libc++abi1-7 (= 1:7.0.1-12) but it is not going to be installed
                   Conflicts: libc++abi-x.y-dev
 libc++abi-8-dev : Depends: libc++abi1-8 (= 1:8.0.1-9) but it is not going to be installed
                   Conflicts: libc++abi-x.y-dev
 libc++abi-9-dev : Depends: libc++abi1-9 (= 1:9.0.1-11ubuntu1) but it is not going to be installed
                   Conflicts: libc++abi-x.y-dev
E: Unable to correct problems, you have held broken packages.

Теперь я пытаюсь это сделать в Ubuntu 20.04 , но я пробовал подобное в прошлых версиях Ubuntu, и столкнулся в основном с той же проблемой.

1 Ответ

1 голос
/ 12 апреля 2020

Использование docker или виртуальной машины, кажется, единственное практическое решение для этого.

Вы можете создавать образы сборки другой версии, используя базовый образ ubuntu: 20.04. Для создания образа создайте разные Dockefiles как

Dockerfile.vX (замените X на разные номера версий)

FROM ubuntu:20.04

RUN apt-get install -y clang++-X libc++abi-X-dev libc++-X-dev

CMD ['/bin/bash']

, затем создайте образ версии X docker build -f Dockerfile.vX -t lewisP/lvvm:X .

и запустите его как контейнеры docker run -it lewisP/lvvm:X

Прочтите тома, чтобы смонтировать файлы проекта, которые вы хотите работать с установленными пакетами.

...