Разрешаване на проблеми, които възникват при изпълнение на команди
Отстраняване на неизправности команди ./configure, make и make install
- Това обикновено означава, че версията -dev или -devel на извикания пакет не е инсталирана на вашата машина. Използвайте мениджъра на пакети на вашата дистрибуция (или друг начин за намиране и инсталиране на пакет), за да намерите пакета и да го инсталирате, ако е възможно, във версията -dev или -devel. Ако версията -dev или -devel вече е инсталирана или не съществува, вижте вече инсталираната версия. Тя достатъчно нова ли е? Ако е по-ниска от , опитайте да надстроите пакета. Ако не е възможно да надстроите пакета, можете да опитате да компилирате по-стара версия на програмата. По-старите версии обикновено използват по-стари версии на библиотеките и програмите, необходими за компилация.
]$ export CC="/usr/bin/cc" Ако това помага, можете да добавите тази команда към /etc/profile (който е файлът, който съдържа командите, които се изпълняват, когато потребителят влезе), така че да не се налага да я въвеждате отново.
- Ако компилирате с gcc 4 (използвайте gcc -dumpversion, за да разберете), опитайте да използвате по-стари версии на компилатора. Първо се уверете, че имате инсталирана по-стара версия. Това обикновено може да се разбере чрез следната команда: [rechosen@localhost
]$ ls /usr/bin/gcc* Ако върне нещо подобно: /usr/bin/gcc /usr/bin/gcc32 Можете да използвате командите gcc32, за да компилирате програмата в по-стари версии на gcc. Ако командата не върне подобенред, използвайте мениджъра на пакети на вашата дистрибуция, за да намерите и инсталирате по-стари версии на gcc (обикновено наричани compat-gcc или gcc-). След инсталирането трябва да имате на разположение алтернативна версия на gcc. Може да се намери с помощта на командата ls. Можете да принудите командите ./configure, make и make install да използват по-стара версия на gcc, както следва: [rechosen@localhost
]$ CC="/usr/bin/gcc32" ./configure [rechosen@localhost
]$ CC="/usr/bin/gcc32" направи [rechosen@localhost
]$ CC="/usr/bin/gcc32" make install Разбира се, пътят /usr/bin/gcc32 трябва да бъде променен на този, където имате алтернативна версия на gcc.
Не забравяйте: за да приложите корекция, текущата директория трябва да е изходната директория.Грешки при стартиране на make installТези грешки обикновено са лесни за разбиране, но все пак ще пиша за тях. Има две най-чести причини, поради които командата make install връща грешка:
-
Нямате root потребителски права.Опитайте да извършите инсталиране с помощта на командата sudo или станете root с помощта на командата su. Командата sudo се използва по следния начин: [rechosen@localhost
]$ sudo make install Ще поиска парола; обикновено използвате собствената си парола или паролата на root потребителя. Можете да използвате командата su, за да станете root: [rechosen@localhost
]$ su Тази команда също ще поиска парола, но в този случай търсим паролата на root потребителя. След като сте root, просто стартирайте make install.Пакетът, който току-що компилирахте, няма команда за инсталиране.В този случай виетрябва ръчно да копирате компилирания двоичен файл в директорията bin. Ако изпълните командата ls в директорията с изходния код, изпълнимият файл трябва да е светлозелен на цвят. Трябва да се копира в /usr/bin (или /usr/local/bin, ако предпочитате) със следната команда: [rechosen@localhost
]$ cp /usr/bin Съгласен съм, че това не винаги е най-лесният начин, но понякога разработчиците не отделят време да създадат команда за инсталиране. Не трябва да им се сърдим за това: все пак, на първо място, те правят полезна програма за нас.Други проблемиЕто списък с някои други възможни проблеми и решения:
-
Всичко върви добре, но когато напиша името на програмата, която току-що инсталирах, bash казва, че не може да я намери.Това обикновено е, защото make install инсталира всичко в /usr/local или в /opt/
. Вижте резултата от командата make install: къде са копирани файловете? Опитайте да добавите тази директория към вашата променлива PATH (следващият пример е за пакет, инсталиран в /usr/local): [rechosen@localhost
]$ export PATH="$PATH:/usr/local/bin" Трябва да замените /usr/local/bin с директорията, където са инсталирани двоичните файлове на вашия пакет. Ако помага, добавете този ред към /etc/profile, за да не се налага да го въвеждате всеки път. Между другото, можете да контролирате къде ще бъде инсталиран пакетът, като посочите следната опция, когато стартирате конфигурационния скрипт: [rechosen@localhost
]$ ./configure --prefix=/usr Променете /usr към директорията, където искате да инсталирате пакета. Не забравяйте, че задавате само префикса; двоичните файлове ще бъдат инсталирани в собствена поддиректория, библиотеките в собствената си, заглавните файлове в собствената си и т.н. Например, когато използвате посочения префикс, двоичните файлове ще бъдатинсталиран в /usr/bin.Искам да инсталирам много стара версия на пакета, но не мога да намеря изходния код онлайн.Все още имате малък шанс. Опитайте се да намерите rpm файла на пакета на желаната от вас версия и изтеглете подходящия src rpm файл. Можете да го разопаковате по следния начин: [rechosen@localhost