/home/user> ls /usr/bin | grep gcc
/home/user> ls /bin | grep gccВ выводе должно быть либо пусто, либо содержаться что-то вроде gccmakedep (http://linux.die.net/man/1/gccmakedep или man gccmakedep).
Далее сделаем
/home/user> dpkg -l | grep gccПолучится что-то вроде
ii gcc-3.3-base 3.3.6-15 The GNU Compiler Collection (base package)
ii gcc-4.1-base 4.1.1-21 The GNU Compiler Collection (base package)
ii libgcc1 4.1.1-21 GCC support libraryЭто общие файлы для всех языков и библиотек, наф-ся в gcc.
Ну, и наконец, просто введем
/home/user> gccПолучим
bash: gcc: command not foundНу что ж, будем ставить.
NOTE: все необходимые пакеты я собрал в один архив и разместил у себя, чтобы не париться со скачиванием. Тем не менее, ссылки на отдельные пакеты также будут присутствовать. Скачать архив можно отсюда: http://ufreak.ucoz.ru/xandros/gcc.tar. Распаковывать так:
/home/user> tar xvf gcc.tar
Здесь же можно просмотреть заметку в формате html - http://ufreak.ucoz.ru/xandros/xandros_gcc.html
Итак, начнем установку.
NOTE: будем считать, что все пакеты наф-ся в папке /home/user.
Для начала нам понадобится сам пакет с gcc. Берем отсюда. Проверим зависимости:
/home/user> dpkg --info gcc-4.1_4.1.1-21_i386.debИщем строку "Depends":
Depends: gcc-4.1-base (= 4.1.1-21), cpp-4.1 (= 4.1.1-21), binutils (>= 2.16.1cvs20051214), libgcc1 (>= 1:4.1.1-21), libssp0, libc6 (>= 2.3.6-6)При попытке установки получим:
gcc-4.1 зависит от libssp0, однако:
Пакет libssp0 не установлен.Найти библиотеку libssp0 можно тут. Установим:
/home/user> dpkg -i libssp0_4.1.1-21_i386.debУстановка должна пройти без проблем. Теперь gcc установится вполне нормально, но нужно его немного потестить.
Напишем что-нибудь вроде
#include <stdio.h>
int main()
{
printf("Hello!\n");
return 0;
}и сохраним как 1.c. Теперь напишем
/home/user> gcc-4.1 1.cи получим ошибку:
/usr/bin/ld: crt1.o: No such file: Нет такого файла или каталога
collect2: ld returned 1 exit statusРешить ее можно, установив пакет libc6-dev. Найдем его и посмотрим его зависимости:
/home/user> apt-cache show libc6-dev
/home/user> dpkg -i binutils-dev_2.17-3_i386.deb
...
Depends: libc6 (= 2.7-13), linux-libc-dev
...Нам нужен linux-libc-dev. Взять его можно тут. Установим:
/home/user> dpkg -i linux-libc-dev_2.6.20-17.39_i386.debТеперь можно поставить и libc6-dev:
/home/user> apt-get install libc6-devПри установке удаляются кое-какие пакеты из системы, так что исчезает возможность автоматического обновления. Думаю, это не проблема и все можно восстановить или организовать другим способом. К тому же существует apt. Пробуем установить gcc. И опять проблемы:
gcc-4.1 зависит от binutils (>= 2.16.1cvs20051214), однако:
Пакет binutils не установлен.Значит устанавливаем пакет binutils, взятый отсюда:
/home/user> dpkg -i binutils-dev_2.17-3_i386.deb
...
конфликт пакетов -- binutils не будет установлен
...Эта ошибка возникает из-за конфликта двух пакетов и явл-ся циклической. Единственное решение, которое я вижу устанавливать binutils так:
/home/user> dpkg -i --force-conflicts binutils_2.17-3_i386.debВсе, теперь можно наконец установить gcc:
/home/user> dpkg -i gcc-4.1_4.1.1-21_i386.debВсе должно встать без проблем. Проверим:
/home/user> gcc-4.1 1.c
/home/user> ./a.out
Hello!Итак, все работает. Осталось для удобства создать алиас (псевдоним) команде gcc-4.1. Открываем ~/.bashrc любым текстовым редактором и в разделе с алиасами (после строчки # some more ls aliases, хотя не столь важно где)
alias gcc='gcc-4.1'Кажется все. Ну теперь несколько замечаний:
- Все вышесказанное относится к нетбуку ASUS Eee PC 1000 с предустановленной ОС Xandros.
- Как и обещал, все пакеты (кроме libc6-dev, который устанавливается соотв. командой) можно найти в одном архиве у меня на сайте.
- В качестве бонуса в архиве находится пакет telnet, который также на Xandros по умолчанию отсутствует.
- Стабильность работы после установки gcc пока не проверялась, но думаю все нормально.
- Очень не рекомендую удалять gcc-4.1-base. Половину системы сносит на ура.
- Выполнение всех команд подразумевает наличие прав пользователя root (ну не всех конечно... некоторых).
- Ну кажется все, надеюсь кому то это все будет полезно.