E: Не удалось получить file:/var/cache/apt-build/repository/dists/apt-build/main/binary-i386/Packages Файл не найден

Недавно решил развеять скуку, путем перекомпиляции основных пакетов в системе, в связи с чем поставил apt-build. Тулза эта старая, всем вроде известная, но есть ньюансы.

В общем после настройки, и сборки пакетов, в ответ на apt-build update (или apt-get update), система мне заявила:
E: Не удалось получить file://var/cache/apt-build/repository/dists/apt-build/main/binary-i386/Packages Файл не найден
И такого файла действительно нет. Сперва попробовал обновить индекс репозитория, но не помогло.

Как выяснилось суть беды в том, что система у меня 64 битная, и по умолчанию apt-build создает реп с пакетами исключительно amd64, а в /etc/apt/sources.list.d/apt-build.list автоматом добавилась такая строка:

deb [trusted=yes] file:/var/cache/apt-build/repository apt-build main

ну и в результате, apt-get при обновлении списка пакетов, ищет в репе нет только 64х, но 32х битные пакеты.

Пути решения 2, либо в настройках apt-get централизовано указать, что система у нас 64х битная, и ничего кроме как для себя – не качать. Но я так делать не рекомендую, ибо можно поиметь немало жопоболи при установке какого-нибудь пакета, который требует multiarch и 32х битных библиотек (например steam client).

Вместо этого, лучше поменять строку на:


deb [arch=amd64, trusted=yes] file:/var/cache/apt-build/repository apt-build main

Перекомпиляция системы под свое железо

Не многие знают, что не одну только генту можно пересобрать из исходников =)) Debian тоже позволяет совершить над собой такое извращение, причём с оптимизацией. Под оптимизацией я имею в виду то, что по умолчанию весь Дебьян собран под i386 архитектуру, что не есть хорошо в то время, когда НЛО бороздит просторы нашей планеты =)

Попробуем…

И раз: sudo apt-get install apt-build
Во время установки у программа спросит желаемый уровень оптимизации и архитектуру процессора. Для экстремалов можно выбрать уровень оптимизации равным “-03” и архитектуру pentium4 (именно он именуется как i686)
Читать