Как установить программу из старого репозитория? [дубликат]

Я хочу, чтобы установить пакет на компьютер под управлением Ubuntu Precise.

Однако поставщик пакета "поддерживает" только Ubuntu до Lucid. Более новые версии, вероятно, также поддерживаются, но они перестали обновлять репозиторий. Самый новый доступный репозиторий -

deb http://appscale.cs.ucsb.edu/appscale_packages lucid stable

Если я попытаюсь установить пакет из этого репозитория, я получаю эту ошибку, вероятно, из-за проблем с версией:

$ sudo apt-get install appscale-core
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:
 appscale-core : Depends: sun-java6-jdk but it is not installable
                 Depends: libboost-filesystem1.40.0 but it is not installable
                 Depends: libboost-serialization1.40.0 but it is not installable
                 Depends: libboost-thread1.40.0 but it is not installable
                 Depends: libboost-program-options1.40.0 but it is not installable
                 Depends: libboost-iostreams1.40.0 but it is not installable
                 Depends: libboost-python1.40.0 but it is not installable
E: Unable to correct problems, you have held broken packages.

Моя система полностью обновлена ​​и обновлена, поэтому я сомневаюсь, что у меня действительно есть сломанные пакеты.

Я уже был в такой ситуации раньше, когда у меня был репозиторий, который существовал только до некоторой версии ниже текущей (LTS) версии.

Есть ли общий способ решить эту проблему?

-1
задан 1 March 2017 в 10:06

3 ответа

Вы добавляете

deb http://appscale.cs.ucsb.edu/appscale_packages lucid stable

к своим ресурсам, но где вы ожидаете, что ваша система найдет зависимости?

Пакет внутри этого PPA требует от вас установки

sun-java6-jdk 
libboost-filesystem1.40.0  this yeilds dependencies for:
    libboost-system1.40.0 (>= 1.40.0-1) 
    libc6 (>= 2.3.6-6~) 
    libgcc1 (>= 1:4.1.1)
    libstdc++6 (>= 4.1.1) 
libboost-serialization1.40.0 
libboost-thread1.40.0 
libboost-program-options1.40.0
libboost-iostreams1.40.0 
libboost-python1.40.0 

но apt-get не может найти эти пакеты, так как мы перешли на более новую версию этих пакетов, они не были доступны после Lucid.

Предлагаемый метод установки из вики appscale:

tar xzvf appscale-tools.tar.gz
cd appscale-tools
sudo bash debian/appscale_build.sh

Посмотрите, работает ли это.

0
ответ дан 1 March 2017 в 10:06

Проблема в том, что пакет, который вы пытаетесь установить, устарел, и их зависимости не могут быть удовлетворены. Возможно, потому что библиотеки, которые вы установили в вашей системе, более актуальны, чем те, которые нужны пакету, или они больше не доступны (например, sun-java6-jdk).

Я полагаю, у вас есть три варианта:

  • Попробуйте ручную установку, используя предоставленный .tar.gz здесь ;
  • Используя gem, чтобы установить его (gem это что-то вроде apt-get для рубина). Я не знаю, устанавливает ли это то, что вам нужно, или просто некоторые инструменты / библиотеки управления, но вы можете попробовать это:

    sudo gem install appscale-tools
    
  • Установите этот пакет в систему Ubuntu Lucid, которая вы можете использовать в вашей текущей системе виртуализацию (например, VirtualBox, LXC или даже chroot могут работать)

Надеюсь, это поможет.

0
ответ дан 1 March 2017 в 10:06

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

Возможно установить старый файл .deb, игнорируя ошибки зависимостей с sudo dpkg --ignore-depends -i package.deb. Однако, скорее всего, это не сработает - если пакет содержит какие-либо двоичные файлы, версии библиотек, которые им требуются во время выполнения (начиная с glibc и выше), будут неправильными, или файлы конфигурации будут в неправильном месте. По сути, вы находитесь в мире боли, и это нарушает точку apt, которая призвана обеспечить взаимную совместимость всех ваших пакетов.

Однако, если вы чувствуете себя окровавленным, openjdk-6-jdk должна быть заменой Sun Java, и вы можете попробовать установить текущую версию libboost и сделать символические ссылки на фальшивку с установленной более старой версией. , Я бы попытался найти обновленный пакет или собрать его из исходного кода.

0
ответ дан 1 March 2017 в 10:06

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

Похожие вопросы: