2016-01-13 7 views
2

Я пытаюсь установить пакет r-base на Ubuntu Trusty Tahr, и есть зависимость пакета, которая была нарушена на прошлой неделе.Ошибка apt-get с ошибкой Not Found, потому что пакет удален из репозитория

Мои команды следующим образом:

apt-get update -y 
apt-get dist-upgrade -y 
apt-get install -y r-base-dev 
... 
Err http://archive.ubuntu.com/ubuntu/ trusty-security/main libpng12-dev amd64 1.2.50-1ubuntu2.14.04.1 
    404 Not Found [IP: 91.189.91.23 80] 
Fetched 92.8 MB in 28s (3262 kB/s) 
E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/libp/libpng/libpng12-dev_1.2.50-1ubuntu2.14.04.1_amd64.deb 404 Not Found [IP: 91.189.91.23 80] 

E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing? 
The command '/bin/sh -c sudo apt-get install -y r-base-dev' returned a non-zero code: 100 

Я попытался пройти --fix-missing и --ignore-missing, но он по-прежнему не удается.

Оказывается, что пакет был удален на 8 января 2016 года из-за исправление безопасности: https://launchpad.net/ubuntu/+archive/primary/+sourcepub/5711916/+listing-archive-extra

Глядя на http://archive.ubuntu.com/ubuntu/pool/main/libp/libpng/ подтверждает, что ubuntu2.14.04. файл нет, но 1.2.50-1ubuntu2.14.04. есть.

Как это исправить? Моя цель - установить r-base для установки.

Если бы я мог каким-то образом использовать файл версии «2» вместо «1», он предположительно нашел бы файл и продолжил бы счастливо, но я не уверен, как сделать apt-get сделать это.

В качестве альтернативы, возможно, обновить список зависимостей на моей стороне? Или это до тех, кто поддерживает r-base?

Или, в-третьих, можно ли добавить репозиторий, который все еще имеет старый пакет? Я не работаю на процессоре AMD, поэтому мне все равно не нужен этот конкретный пакет во время выполнения.

Update: Решение, которое работало для меня было явно удалить пакет с разбитой зависимостью, загрузить обновленную версию и повторно установить его перед запуском apt-get update.

$ apt-get remove -y libpng12-0 
$ curl -O http://archive.ubuntu.com/ubuntu/pool/main/libp/libpng/libpng12-0_1.2.50-1ubuntu2.14.04.2_amd64.deb 
$ dpkg -i libpng12-0_1.2.50-1ubuntu2.14.04.2_amd64.deb 
$ apt-get update -y 

Проблема, по-видимому, не имеет много общего с r-base или r-base-dev пакетов, даже если r-base-dev кстати, зависит от libpng12.

+0

Прочтите [эту страницу руководства] (https://cran.r-project.org/bin/linux/ubuntu/README) еще? –

+0

Я не понимаю, ваша цель - установить 'r-base', почему вы устанавливаете' r-base-dev'? –

+0

@ErnestA хороший вопрос. Мне не обязательно нужен «r-base-dev». Однако я перепробовал с помощью 'apt-get install -y r-base' и ударил ту же ошибку, когда он пытается установить пакет libpng12. –

ответ

1

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

Сначала выясните, какую версию libpng пакет, который вы хотите установить, зависит от.

$ apt-cache depends r-base 
r-base 
    Depends: r-base-core 
    Depends: r-recommended 
    Recommends: r-base-html 
    Recommends: r-doc-html 
    Suggests: ess 
|Suggests: r-doc-info 
    Suggests: r-doc-pdf 

сама r-base не зависит от libpng но r-base-core вероятно, делает.

$ apt-cache depends r-base-core | grep png 
    Depends: libpng12-0 

Теперь мы хотим знать, какие конкретные версии libpng

$ apt-cache show r-base-core 
... libpng12-0 (>= 1.2.13-4) ... 

Если найти этот пакет в репозитории Ubuntu, вы можете скачать и попробовать установить его вручную.

$ wget <url> 
$ sudo dpkg -i <filename> 

, а затем установить r-base с apt-get install r-base. Однако если dpkg отказывается установить libpng, вы не должны его заставлять, потому что это означает, что пакет не может быть установлен, и он сломает другие зависимости.

+1

Этот ответ привел меня к моему окончательному решению, которое должно было удалить существующий пакет libpng12-0, загрузить новый libpng12-0 .deb и установить его с помощью 'dpkg' перед запуском' apt-get update'. Я обновляю вопрос блоком кода. –