Кажется, что Вы хотите установить файлы на том же месте, где Вы извлекли tarball. Извлеките tarball к другому месту или попробуйте другой префикс, и он должен работать (худшая опция: использовать make install -i
проигнорировать все сообщения об ошибках).
Я нахожу лучшим решением сохранить существующие установленные инструменты там, где они есть, а затем собрать мою собственную версию gcc, llvm+clang, gdb, lldb или что-то еще, что мне кажется мне нужной более поздней версией. Обычно это работает без проблем, так как устанавливается в /usr/local/{bin,lib,include,...}, где инструменты дистрибутивов устанавливаются в /usr/{bin,lib,include,...}. - так что если вам когда-нибудь понадобится использовать старые (а иногда так получается, например, у вас есть более новый gcc, который, к сожалению, не способен компилировать проект A - или даже сам по себе) - вы используете /usr/bin/gcc или отредактируете ваш $PATH, чтобы не использовать /usr/local.
У меня установлена Fedora-16, но я использую gcc 4.8.2 (последняя версия на конец марта) и clang 3.5 - компиляторы по умолчанию, которые поставляются с системой - gcc 4.6.3 и clang 2.9. Для работы clang 3.5 требуется компилятор, совместимый с C++11, поэтому для этого проекта требуется 4.7 или 4.8. Он отлично работает. (но новый gcc и clang ломают старый gdb так, что символы работают не так, как ожидалось, поэтому мне либо нужно пересобрать gdb, либо обновить его)[113848].
Установить chrooted окружение с более новым g++, идущим из репозиториев. [114579]debootstrap должен помочь вам в этом.
ffmpeg -i in.mp4 out.mp3
Преимущества: ваша установка не тронута. Она может быть автоматизирована.Недостатки: правильная настройка chrooted окружения иногда не тривиальна. Время.
Сборка пакетов самостоятельно (обратный ход).
Преимущества: высокая персонализация. Нет необходимости тратить место на жестком диске
Недостатки: Вам нужно каждый раз строить его заново, так что это не автоматически. Вероятность того, что ваше окружение сломается, выше.
Использование виртуальной машины:
Преимущества/недостатки: как и в случае с chrooted решением, просто обе системы полностью отделены от ядра.
1) Загрузите исходники gcc 4.9 в какой-нибудь подкаталог, скажем [115264]gcc-4.9[115265].Я опишу процедуру ниже. Вопрос не уточняет версию gcc, но 4.9 только что был выпущен, так что я ограничусь описанием того, как это сделать. Каждый бэкпорт отличается и имеет свои проблемы; общего рецепта нет.
3) Потом поместите каталог [115266]debian/[115267] под контроль версии. Я использую Mercurial. Это необязательный шаг, но он полезен, если что-то пойдёт не так.
4) Клонируйте этот [115268]Mercurial репозиторий, содержащий патч к репозиторию файлов пакета Debian[115269]. Вы можете клонировать его в каталоге [115270]debian/[115271]. Т.е.
4) Теперь вы можете попробовать собрать. Вам понадобится установить несколько пакетов, как [115272] build-essential [115273], [115274] fakeroot [115275] и [115276] devscripts [115277].
smb://username:password@192.168.0.1/ *or whatever your volume's IP is.*
Вероятно, это не сработает, если у вас нет необходимой сборки. зависимости. Итак, установите их; [115278] debuild [115279] скажет вам, что такое Пропал. С патчем вы должны быть в состоянии успешно устранить все зависимости от хрипа.
Когда этот процесс завершится, у вас будут дебеты gcc на верхнем уровне. вашего каталога, [115280]gcc-4.9 [115281], который должен быть установлен в Уизи. Примечание: Я не проверял это на момент написания статьи - см. ниже.
в строке [115294]Build-Depends:[115295] вверху файла [115296]debian/control[115297], который содержит информацию о сборочных зависимостях и бинарном Пакеты. Как только это будет сделано для всех оскорбительных пакетов, и у вас есть установил необходимые пакеты сборки, запустится система сборки Debian.
2) Другое, что вам нужно сделать, это удалить поддержку для [115298]x32[115299]. Это недоступно для Уизи. Например, пакет [115300]libc6-dev-x32[115301] на Wheezy не существует. Этот . выполняется путём захода в [115302]debian/rules.defs[115303] и удаления всех упоминаний о x32. Этот файл используется файлом сборки [115304]debian/rules[115305].
3) Вы также хотите изменить [115306]debian/source/format[115307]. Это исходный текст формат 1, по какой-то причине. Измените его на версию [115308]3.0 (квилт)[115309]. Итак, изменить содержимое этого файла с [115310]1.0[115311] на [115312]3.0 (квилт)[115313].
Это необходимо только в том случае, если вы поместили каталог [115314]debian/[115315] под контроль версий. По причинам, в которые я не хочу сюда входить, формат 1 делает Если [115316]debian/[115317] находится под контролем версий, то сборка завершится неудачно.
4) gcc запускает экстенсивный, и я имею в виду экстенсивный, тестовый набор во время сборки. Если вы не хотите, чтобы он выполнялся, то его можно отключить, изменив следующие строки в [115318]rules.defs[115319] (что появляется ниже [115320]# если вы не хотите запускать тестируемый набор gcc, отметьте следующую строку [115321])
от
я отключил тестовый набор в моём патче.
5) Сразу же после того, как система сборки Debian запустится, на экране появится сообщение Файл [115322] управления [115323] будет заменен на автогенерируемый файл с использованием [115324]control.m4[115325]. Тем не менее, необходимо изменить управление [115326][115327], потому что в противном случае система сборки откажется от продолжения. Так и есть можно заставить, но это, как правило, не рекомендуется.
6) Multiarch имеет раздражающую особенность, которая заключается в том, что если вы обновляете пакет, то любой другая установленная архитектура должна остаться в той же версии. Я запуск amd64, и это влияет на меня, потому что я запускаю пакеты i386. для моей установки Skype. Итак, если вы используете amd64, проверьте и посмотрите. если у вас установлены одинаковые gcc-пакеты amd64 и i386. В частности, пакет libgcc1 будет обновлен, если вы установите 4.9. Это безвредно.
В любом случае, на момент написания статьи я не генерировал i386 debs, поэтому не смог проверить установку gcc 4.9 amd64 с хрипами.
UPDATE: Наконец-то удалось собрать i386 debs для gcc 4. 9 (в chroot на i386, используя [115328]schroot[115329] (см. [115330]Как запускать 32-битные программы на 64-битной системе Debian/Ubuntu?[115331])), и установить их в тандеме с amd64, из-за упомянутого выше ограничения на мультилиб. Я все еще тестирую, но и g++ 4.7, и g++-4.9 компилируют код, с которым я его тестировал. Установка [115332]gcc 4.9[115333] debs не совсем проста, так как некоторые общие библиотеки для 4.7 и 4.9 тоже нуждаются в обновлении, например [115334]libstdc++6[115335].