Введение
Зачастую некоторый пакет имеется в ветках unstable и experimental, однако его нет в ветках stable/testing. Программу поставить очень хочется, а обновлять полсистемы страшновато или нежелательно.
Для таких случаев есть замечательный ресурс backports.org, однако его использование во многом похоже на прямое использование веток unstable и иногда доставляет бОльшие проблемы из-за периодически возникающих конфликтов между backports и unstable.
В большинстве случаев установить пакет из unstable и experimental можно, используя пересборку пакета в своем окружении. Делается это довольно несложно, и данное руководство предназначено для того, чтобы помочь начинающему пользователю в этом вопросе. Для примера мы разберем вариант с установкой пакета fluxbox из experimental-ветки.
Установим инструменты для сборки:
#aptitude install devscripts
gpg-ключ и выполним экспорт некоторых переменных окружения, связанных с ним:
export EMAIL=name@domen.com export DEBFULLNAME="yourfullname" export DEBEMAIL=name@domen.com
Большой опыт в поиске многолетних уязвимостей
Компания Qualys была основана в 1999 г. За 22 года своего существования она многократно находила в Linux и других системах уязвимости, существовавшие годами.
Например, в начале 2013 г. ее эксперты выловили брешь, позволявшую исполнять любой нужный хакерам код на веб-серверах, почтовых серверах и других серверных системах. Они обнаружили ее в библиотеке GNU C (glibc), в которой содержатся стандартные функции, используемые программами, написанными на языках C и C++.
Рассказать миру об уязвимости, промаркированной как CVE-2015-0235, Qualys решила лишь в конце января 2015 г., то есть спустя два года с момента ее обнаружения. Разработчикам Qualys поведала о ней без промедления, однако далее через два года большинство версий Linux, используемых в сервером оборудовании, так и не были обновлены.
По утверждению специалистов Qualys, CVE-2015-0235 появилась в Linux еще в 2000 г., когда вышла библиотека glibc версии 2.2. В список «дырявых» дистрибутивов Linux вошли Debian 7, CentOS 6 и 7? RHEL 6 и 7, а также Ubuntu 12.04.
Install GCC On CentOS 7
Also Read: How to install PHP on Ubuntu 18.04
Step 1: Prerequisites
a)You need to have a running CentOS 7 System.
b)Also you need to have installed in your system with internet connection.
c)Lastly you need to login with root access or user with sudo access to run gcc installation commands. In this tutorial, I am using root access.
Step 2: Update Your System
Firstly you need to update your system using command. This command will update all the currently installed packages in your system to the latest available version.
# yum update Loaded plugins: fastestmirror Determining fastest mirrors * base: mirrors.piconets.webwerks.in * extras: mirrors.piconets.webwerks.in * updates: mirrors.piconets.webwerks.in base | 3.6 kB 00:00:00 extras | 2.9 kB 00:00:00 ....................................
Step 3: Download and Install GCC from Repository
Download from Repository and install gcc tool using command.
# yum install gcc Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirrors.piconets.webwerks.in * extras: mirrors.piconets.webwerks.in * updates: mirrors.piconets.webwerks.in Resolving Dependencies --> Running transaction check ---> Package gcc.x86_64 0:4.8.5-39.el7 will be installed --> Processing Dependency: cpp = 4.8.5-39.el7 for package: gcc-4.8.5-39.el7.x86_64 .........................................
Step 4: Install from Source Code.
There is another method that you can use to install gcc tool in your system, that is through source code which is also the recommended way to install.
Download Source Code
Advertisements
Download GCC Source File from GNU FTP Site using wget. It will download gcc package in local directory.
# wget https://ftp.gnu.org/gnu/gcc/gcc-9.2.0/gcc-9.2.0.tar.gz --2019-12-31 04:47:37-- https://ftp.gnu.org/gnu/gcc/gcc-9.2.0/gcc-9.2.0.tar.gz Resolving ftp.gnu.org (ftp.gnu.org)... 209.51.188.20, 2001:470:142:3::b Connecting to ftp.gnu.org (ftp.gnu.org)|209.51.188.20|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 124304709 (119M) [application/x-gzip] Saving to: ‘gcc-9.2.0.tar.gz’ 100% 124,304,709 2.83MB/s in 49s 2019-12-31 04:48:27 (2.43 MB/s) - ‘gcc-9.2.0.tar.gz’ saved [124304709/124304709]
Extract the Files
Once downloaded, you need to extract the gcc package by using command.
# tar -xvf gcc-9.2.0.tar.gz
Build the Configuration
Once extracted go to gcc-9.2.0 directory by doing and run .
#cd gcc-9.2.0 #./configure
Compile the Source Code
Once configuration completed successfully, now it is time to compile the source code by running command.
#make
Install GCC Using make
Once all the source code are compiled, it is now time to install them using command.
#make install
NOTE:
As per make man page, The purpose of the make utility is to determine automatically which pieces of a large program need to be recompiled, and issue the commands to recompile them. The manual describes the GNU implementation of make, which was written by Richard Stallman and Roland McGrath, and is currently maintained by Paul Smith. Our examples show C programs, since they are most common, but you can use make with any programming language whose compiler can be run with a shell command. In fact, make is not limited to programs. You can use it to describe any task where some files must be updated automatically from others whenever the others change.
Step 5: Check GCC Version
Once GCC is installed in your system, you can check the gcc version by using command.
# gcc --version gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-39) Copyright (C) 2015 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE
Step 6: Write Your first C Program
Since that we have installed GCC Compiler now, let’s write our First «Hello World» C Program.
# cat hello.c #include <stdio.h> void main() { printf("Hello World\n"); }
Let’s Compile this Program.
# gcc -o hello hello.c
Check the Output. It shows in the output.
# ./hello Hello World
Also Read: How to create a Filesystem on Linux Partition
Popular Searches
- centos install gcc
- gcc linux
- what is gcc
- gcc download
- gcc latest version
Стабильность
1993 году, когда только Ян Мердок начинал работу над проектом Debian, планировалось, что система будет сделана наиболее аккуратно и будет самой стабильной. Так ведется и до сих пор, Debian содержит старые, но уже очень хорошо протестированные версии программного обеспечения. Эти программы содержат меньше багов, но вы не можете использовать все самые новые возможности.
Fedora, в свою очередь, выбрала совсем другой подход. Здесь используются все самые новые версии программ, например, в Fedora 25 будет ядро 4.8, и самая последняя версия стека программ Gnome 3. Кроме того, здесь используются самые современные технологии, например, в предыдущих версиях был включен новый пакетный менеджер dnf, а в последнем релизе добавлена поддержка дисплейного сервера Wayland.
Установка программ с помощью apt
Перед тем как говорить непосредственно про Debian, нужно рассмотреть apt. Этот пакетный менеджер был специально разработан для Debian и потом стал использоваться в других основанных на нем дистрибутивах. Синтаксис для работы с утилитой такой:
$ sudo apt опции команда имя_пакета
Вот основные команды apt, которые вы можете использовать для управления пакетами:
- download — скачать пакет, но не устанавливать;
- update — используется для обновления информации о списках пакетов в репозиториях;
- upgrade — обновление системы без удаления пакетов;
- full-upgrade — полное обновление системы с удалением конфликтующих зависимостей;
- install — установка пакета;
- remove — удаление пакета без удаления конфигурационных файлов;
- purge — полное удаление пакета;
- autoremove — автоматическое ненужных удаление пакетов;
- search — поиск пакета в локальной базе данных;
- show — посмотреть информацию о пакете.
Кроме того, утилите можно передать некоторые опции, основные:
- -c — сторонний конфигурационный файл;
- -o — строка конфигурации;
- -t — версия релиза для которой устанавливать пакет;
- -f — выполнить операцию принудительно.
Таким образом, для установки пакета из репозиториев достаточно набрать:
А для удаления пакета наберите:
Вы можете искать пакеты с помощью команды search:
Но куда более интересны политики управления репозиториями и установка отдельных пакетов из определенных хранилищ. Особенно это актуально для Debian, чтобы не добавлять нестабильный репозиторий полностью, а устанавливать из него только отдельные пакеты. Для решения таких задач существует настройка политики управления репозиториями.
С помощью политик вы можете настроить из каких репозиториев будет выполняться установка deb пакетов в debian в первую очередь. Мы рассматривали репозитории Debian и как их добавлять в отдельной статье. Допустим, вы добавили backports, testing и unstable. Теперь, чтобы настроить для них приоритеты откройте конфигурационный файл /etc/apt/preferences и добавьте в него строки:
Package: *
Pin: release a=stretch-backports
Pin-Priority: 650
Package: *
Pin: release a=testing
Pin-Priority: 600
Package: *
Pin: release a=unstable
Pin-Priority: 100
Чем выше значение Priority, тем выше приоритет. Сначала мы указываем с помощью инструкции Package имя пакета, а затем репозиторий и его приоритет. В нашем примере самый высокий приоритет имеет репозиторий stable, если там пакета нет, он будет установлен из backports, и только потом из testing и из unstable. Теперь добавление нестабильных репозиториев не будет ломать систему. А если вы захотите установить пакет из нестабильного репозитория, то просто укажите его с помощью опции -t. Например, для testing:
Очень удобно и не ломает систему.
Управление пакетами и доступность программного обеспечения
Ubuntu использует менеджер пакетов APT для предоставления и управления программным обеспечением (приложениями, библиотеками и другими необходимыми кодами), в то время как Fedora использует менеджер пакетов DNF.
Ubuntu имеет обширные хранилища программного обеспечения, позволяющие легко устанавливать тысячи программ. Fedora, с другой стороны, фокусируется на предоставлении только программного обеспечения с открытым исходным кодом. Это меняется в новых версиях, но репозитории Fedora по-прежнему не такие большие, как в Ubuntu.
Некоторые сторонние разработчики программного обеспечения также предоставляют пакеты, устанавливаемые по принципу “установка по щелчку”, в виде “.exe для Linux”. В Ubuntu эти пакеты представлены в формате .deb, а Fedora поддерживает пакеты .rpm.
Большинство поставщиков программного обеспечения предоставляют как файлы DEB, так и RPM для пользователей Linux, но я обнаружил, что иногда поставщик программного обеспечения предоставляет только файл DEB. Например, инструмент SEO имеет только пакеты DEB. Крайне редко программное обеспечение доступно в RPM и не имеет формата DEB.
Сборка пакета
Простая сборка
Итак, все что необходимо нам для сборки, установлено. Осталось, собственно, собрать пакет. Для этого нам понадобится утилитка fakeroot, установите ее, если она у Вас еще не установлена.
Переходим в каталог с распакованным src-пакетом и даем команду:
$ dch -i
Это приведет к тому что будет вызван редактор changelog-файла пакета. Куда вы должны вписать что-то о ваших действиях. Если, например, Вы понизили версионную зависимость, то напишите об этом. Этот шаг можно, конечно, пропустить, однако лучше все же указать, кем собран пакет и зачем. Это может пригодиться в случае, если Вы, например, захотите с кем-то поделиться результатами своего труда, а так же, если вдруг решите сообщить о каком-то баге: измененный номер версии пакета будет фигурировать в письме, написанном при помощи reportbug.
Отдельно надо рассмотреть вопрос о том, какую версию указывать в changelog.
- Это не должна быть версия, встречающаяся в официальном репозитории (чтобы не создавать путаницы)
-
Если вы делаете просто бэкпорт, то версия должна быть младше той версии, на основе которой собран пакет (чтобы не возникло проблем, когда этот пакет попадет в testing, затем в stable и вы попробуете сделать dist-upgrade). Добавьте строку ~backports1 к номеру версии в таком случае. Позже, если в репозитариях окажется пакет с таким же номером версии, то ваша система произведет его обновление. Цифра 1 в данном случае может означать номер Вашей сборки, а слово backports может быть заменено на любое другое, которое будет более информативным.
Исходя из этого, правильным будет добавить к версии -какаятострока1, если вы что-то существенно дорабатывали, или ~какаятострока1, если делали бэкпорт.
$ fakeroot ./debian/rules binary или $ dpkg-buildpackage -rfakeroot или #debuild
В результате будет в родительском каталоге собран двоичный пакет, ради которого затевалась вся катавасия.
Проблемы на этом шаге могли возникнуть только в двух случаях:
- Вы что-то не (так) сделали на предыдущих шагах (например, понизили зависимость, а реально этого делать было нельзя);
-
Вы наткнулись на ошибку в src-пакете. Такое тоже иногда случается. Бывает, что пакеты не собираются, например, из за «неверно» установленного umask. Вообще, сборка пакетов от umask зависеть не должна, но этот баг почему-то довольно часто встречается в Debian.
Вернитесь на несколько шагов назад и повторите попытку.
Если есть только архив с исходниками
Итак, у нас есть только fluxbox-0.9.15.tar.bz2. Обычно выполняюncz следующие действия: Предварительно подготавливаю рабочую директорию:
mkdir ~/src/fluxbox mkdir ~/src/fluxbox/0.9.15 cd ~/src/fluxbox/0.9.15 wget "http://<путь до файла>" (можно конечно и просто через браузер скачать но обычно так быстрее)
Получаем файл fluxbox-0.9.15.tar.bz2. Немного забегая вперёд, обработаем файл программой gzip.
bunzip2 fluxbox-0.9.15.tar.bz2 gzip fluxbox-0.9.15.tar
Получим fluxbox-0.9.15.tar.gz, переименуем:
mv fluxbox-0.9.15.tar.gz fluxbox_0.9.15.orig.tar.gz
(т.е. разделили имя и версию подчёркиванием и после версии добавили слово orig: fluxbox_0.9.15.orig.tar.gz) Теперь распаковываем его (но ни в коем случае не удаляем!):
tar zxvf ./fluxbox_0.9.15.orig.tar.gz cd fluxbox-0.9.15
Для корректной сборки нужно, чтобы корневая директория содержала не только название, но и версию! Ниже будем считать директорию ~/src/fluxbox/0.9.15/fluxbox-0.9.15 корневой директорией исходников. Далее выполняем «черновую» сборку. Т.е. делаем, как обычно
./configure --prefix=/usr && make
(но не устанавливаем!) Если конфигурируется со всеми нужными опциями и собирается в бинарный файл, значит осталось только дебианизировать.
Если есть только deb-пакет
Распаковываем пакет в папку /tmp/program/
$ dpkg -x program*.deb /tmp/program
Чтобы распаковать информацию о пакете, нужно выполнить:
mkdir /tmp/program/DEBIAN $ dpkg -e program*.deb /tmp/program/DEBIAN
Теперь можно делать изменения. Чтобы снова собрать пакет, делаем следующее:
$ dpkg - b /tmp/program program-new*.deb
Verify GCC installation on CentOS 7
After the compilation process is completed. You can check if GCC is properly installed.
gcc --version gcc (GCC) 7.3.0 Copyright (C) 2017 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Of course, you don’t have to install GCC on CentOS 7, if you use one of our outsourced server support services, in which case you can simply ask our expert Linux admins to install GCC on your CentOS 7 server for you. They are available 24×7 and will take care of your request immediately.
PS. If you liked this post, on how to install GCC on CentOS 7, please share it with your friends on the social networks using the buttons on the left or simply leave a reply below. Thanks.
Debian Packages Search
В дистрибутивах Linux много компьютеров, на которых установлено программное обеспечение, которое они распространяют среди других людей. Отсюда и название (или дистрибутив). Хотя мы обычно обращаемся к этому программному обеспечению с помощью магазина приложений Linux, менеджера пакетов или командной строки, вы также можете получить к ним доступ через веб-браузер.
Учитывая, что для него был создан формат DEB, Debian является крупнейшим дистрибутивом, который упаковывает DEB. Многие альтернативы в конечном итоге основаны на этом. Так что список пакетов Debian – отличное место для поиска программного обеспечения. Вы можете скачать DEB напрямую. Этот метод не рекомендуется, так как эти DEB часто требуют, чтобы у вас уже были установлены другие DEB, но этот запасной вариант здесь, если вам это нужно.
Вы не ограничены сайтом Debian. Вы также можете проверить страницу поиска пакетов Ubuntu или страницу пакетов Linux Mint. Точно так же вы можете найти RPM на странице источников пакетов Fedora.
Использование
Для корректной работы makepkg нужно установить группу пакетов . Пакеты из этой группы можно не указывать в качестве зависимостей для сборки (makedepends) в файле PKGBUILD.
Примечание:
- Убедитесь, что утилита sudo настроена должным образом для команд, передаваемых pacman.
Чтобы собрать пакет, первым делом необходимо создать файл PKGBUILD, который представляет собой скрипт сборки. Написание скрипта описано в статье Создание пакетов. Скрипты для существующих пакетов можно найти в дереве каталогов Системы сборки Arch, а также в AUR. После того, как получен, переместитесь в каталог с ним и выполните команду сборки пакета:
$ makepkg
Если в системе не установлены необходимые зависимости, makepkg предупредит вас об этом и отменит сборку. Если задать флаг /, то makepkg самостоятельно установит недостающие зависимости и соберёт пакет.
$ makepkg --syncdeps
С флагом / makepkg после сборки удалит те зависимости, которые будут больше не нужны. Если вы постоянно занимаетесь сборкой пакетов и не хотите загрязнять систему пакетами-сиротами, то стоит также ознакомиться со статьёй .
Примечание:
- Устанавливаемые пакеты-зависимости должны находиться в подключённых репозиториях; в статье описана настройка репозиториев. Кроме того, зависимости можно установить вручную командой .
- При установке зависимостей используются только глобальные значения переменных, то есть переопределить значения, например, внутри функции упаковки разделённого пакета (split package) не получится.
Когда все зависимости установлены и сборка пакета завершилась успешно, в рабочем каталоге появится файл пакета (). Чтобы установить его в систему, используйте флаг / (работает аналогично команде ):
$ makepkg --install
С флагом / makepkg удалит оставшиеся после сборки промежуточные файлы и каталоги (например, распакованные в файлы). Это полезно при многократных сборках одного и того же пакета или его обновления в одном рабочем каталоге. Это предотвратит добавление устаревших файлов в новые сборки:
$ makepkg --clean
Подробнее см. .
Программное обеспечение
Debian славится тем. что имеет самую большую пакетную базу среди других дистрибутивов. И действительно, поскольку на этой системе основано просто огромное количество дистрибутивов, среди которых популярные среди обычных пользователей Ubuntu и Debian, то пакетов программ создается очень много, особенно для новых графических приложений. Debian работает с пакетами в формате Deb.
Fedora использует формат пакетов RPM имеет не такое значительное количество пакетов, как в Debian. Но все программы, которые были собраны для RPM имеют пакеты для Fedora, так как это один из основных дистрибутивов. Сами по себе форматы пакетов Deb и Rpm не сильно отличаются друг от друга, если не считать того, что размер загружаемых метаданных в RPM значительно больше.
Что касается лицензий программного обеспечения, то тут Fedora и Debian похожи. Оба дистрибутива проводят четкую грань между свободными и проприетарными программами. Проприетарные программы не поставляются вместе с системами по умолчанию. Также вы не найдете никаких проприетарных программ в официальных репозиториях Fedora, для их установки придется подключать репозитории сообщества.
По программному обеспечению Fedora или Debain нет однозначного ответа, с одной стороны у Debian программ больше, но у Fedora они более новые.
Launchpad
Launchpad от Canonical, той же компании, которая предлагает нам Ubuntu. Launchpad – это веб-сайт для разработки и поддержки программного обеспечения с открытым исходным кодом. Хотя Launchpad – это прежде всего инструмент для разработчиков, это также место, где вы можете загружать пакеты.
Большая часть программного обеспечения на Launchpad ориентирована на Ubuntu, поэтому на сайте доступно много DEB. Но вам придется искать, чтобы найти их. Многие проекты обеспечивают загрузку только в виде сжатых файлов TAR.GZ. С другой стороны, некоторые также предоставляют RPM.
Панель запуска не так широко используется, как раньше, поэтому многие проекты здесь размещены в другом месте или заброшены. Это не тот сайт, который я бы проверил первым, но все же, здесь многое можно найти.
Other tools you may need
In general, building RPMs means building and compiling software. To do that, in general you will need tools needed to compile and build source packages.
In particular, you will most probably need to install make to build software (even software that is not written in C or in a compiled language usually uses Makefiles for its install process). As before:
$ sudo yum install make
If you are building RPMs for software written in C, you will also need the gcc compiler.
# yum install gcc
Some dependencies will probably be installed together with gcc to allow for the compilation against system libraries.
If you are building software that uses system libraries (such as OpenSSL, for example), you will need to install additional RPMs that allow you to build software against those libraries.
Using OpenSSL as an example, there are two separate binary RPMs: openssl and openssl-devel. The openssl RPM package contains the libraries needed to run binaries linked against openssl. For example, wget needs OpenSSL libraries for encrypted connections, so to install the wget RPM, the openssl RPM will be required, and installed as well.
However, the openssl RPM does not contain the library header files needed to compile code against the OpenSSL libraries. A decision by a spec file packaging team to split these less commonly needed header files in designing a distribution is a common one , in order to conserve space on non-developer machines.
For example, if you download wget source code and try to build it, it will complain that it can not find the OpenSSL libraries. The files needed to compile code with OpenSSL are included in the openssl-devel RPM. So, after installing that RPM and any other needed build dependencies that the SRPM or spec file requires, you may then compile code that requires to use the OpenSSL library headers to build.
So, diagnostically, when you try to build an RPM package, and it gives you an error and tells you that it cannot find a certain library, you should look for the library -devel package’s presence using the installed packages methods noted above. If missing, cure the problem by installing it if not yet present. This will allow you to go on with building that RPM. … or encounter the next item to be solved in a process of progressive obstacle elimination.
About software collections
Using software collections takes an extra step because you have to enable the collection you want to use. Enabling just adds the necessary paths (, , ) to your environment. Once you get the hang of it, they are pretty ease to use. It really helps to understand the way that environment variable changes work in Linux/UNIX. Changes can only be made to the current process. When a child process is created it inherits the environment of the parent. Any environment changes made in the parent after the child has been created will have no effect on the child.
The benefit of software collections is that you can have GCC 5, 6, 7 installed at the same time along with the base GCC 4 that shipped with Red Hat Enterprise Linux. You can easily switch between versions with . Note: The latest interpreted languages like Python 3, PHP 7, and Ruby 2.5 are also available via Red Hat Software Collections. The .NET Core packages that include the C# compiler are also distributed as software collections. So you should take the time to get comfortable with software collections.
Install GCC from repository
GCC can be easily installed from the official CentOS repositories. Run the following command to install GCC on your server
yum -y install gcc
Once the installation is completed, you can the version of GCC installed on your server
gcc --version gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-16) Copyright (C) 2015 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
As might be seen from the output, the GCC version distributed by CentOS 7 is 4.8.5 which is not the latest version of GCC.
You may also want to install gcc-c++. It will automatically include the C++ library and compile files with extensions that indicate they are C source as C++, instead of as C.
yum -y install gcc-c++
Check that you have rpmbuild installed
First, you should check that you have rpmbuild installed on your system. This is the tool you will use to build RPMs from specfiles or SRPM packages. To check that it is installed and , issue the rpmbuild --showrc command. A large set of data should be displayed, enumerating details of the build environment that rpmbuild is using. Quite useful for debugging what a .spec file is doing
If the system returns: $ rpmbuild: command not found this means rpmbuild is NOT yet installed. You can install it with yum by running the following command as root:
# yum install rpm-build
As becoming root for running a command is only logged in the bash history file, most careful admins set up and use sudo for the task instead:
$ sudo yum install rpm-build
Note: That for historical reasons, the package containing /usr/bin/rpmbuild is called rpm-build (that is, with a dash in the package name).
Verify that yum listed a version of the rpm-build package in the list of packages to install, and answer «y» to allow yum to go ahead and install the package.
After yum is finished, run the rpmbuild --showrc or the more terse rpmbuild --version command to check that it is installed.
Most SRPMs targetted to be rebuilt on CentOS also need certain rpmbuild build macros and helper scripts, which are contained in package: redhat-rpm-config. To get results as desired, you should also install it in the same fashion as noted above, substituting the new package name.
$ sudo yum install redhat-rpm-config
Note: You may have this package already installed. In such a case yum will just output Nothing to do on the last line of its output. You can check if a package is already installed (here checking on redhat-rpm-config) with the command rpm -q redhat-rpm-config . If there is any output, that means the package is already there. The output of the rpm command will also include the version and release information of that package that is installed on your system.
Поддержка оборудования
Поддержка оборудования операционными системами Linux реализуется на уровне ядра, поэтому поддержка драйверов почти не зависит от дистрибутива, чтобы получить максимальную поддержку нужно использовать самую последнюю версию ядра. Но немного по-другому обстоят дела с архитектурами процессоров.
Debian поддерживает самое большое количество архитектур среди других дистрибутив Linux. Насчитывается 12 поддерживаемых архитектуры, среди которых i386, amd64, armel, armhf, powerpc, ia64, mipsel, mips, s390x, arm64, ppc64el. У Fedora список намного меньше, здесь поддерживаются только i386, amd64 и ARM.
./configure
Данная команда выполняет поиск необходимых для компиляции библиотек и заголовочных файлов (это для программ частично или полностью написанных на C/C++ и подобных языков), а так же настройку особых параметров или подключение специальных библиотек, в случае если ./configure обнаружит всё что ему нужно, он создаст Makefiles — файл, необходимый для сборки программы
Выполнить настройку параметров конфигуратора можно при помощи ключей и аргументов этих самых ключей, например:
./configure —prefix=/opt/my_program
При помощи ключа —prefix=<path> Вы можете указать директорию, которая в дальнейшем будет выступать как префикс для вашей программы (то есть корневая директория). Это связанно с тем что в мире Linux и не только, существует специальная Иерархия Файловой Системы (HFS) в соответствии с которой любая программа, чтобы работать без ошибок, должна быть собрана и установлена.
В файловой системе есть три основных префикса, относительно которых большинство программ конфигурируется, а именно:
- / — корневая директория операционной системы, так называемый ROOT
- /usr — директория, в которой находятся приложения пользовательского окружения
- /usr/local — дополнительная директория для пользовательских программ, собираемых вручную, специально для того чтобы операционная система не превратилась в свалку
Если открыть любую из этих директорий, то можно увидеть очень схожую структуру, как минимум там будут папки: bin, etc, include, libs, sbin.
Если запустить ./configure без ключей, то префиксом по умолчанию (директория, в которую будет установлена собираемая программа) будет /usr/local, помните это если не можете запустить свою программу, возможно у Вас не прописан путь в PATH.
Кроме ключа —prefix в конфигураторе, как правило, имеется ещё множество других ключей, посмотреть их все можно если выполнить:
./configure —help
About software collections
Using software collections takes an extra step because you have to enable the collection you want to use. Enabling just adds the necessary paths (, , ) to your environment. Once you get the hang of it, they are pretty easy to use. It really helps to understand the way that environment variable changes work in Linux/UNIX. Changes can only be made to the current process. When a child process is created, it inherits the environment of the parent. Any environment changes made in the parent after the child has been created will have no effect on the child.
The benefit of software collections is that you can have GCC 6, 7, and 8 installed at the same time along with the base GCC 4 that shipped with Red Hat Enterprise Linux. You can easily switch between versions with . Note: The latest interpreted languages, such as Python 3, PHP 7, and Ruby 2.5, are also available via Red Hat Software Collections. The .NET Core packages that include the C# compiler are also distributed as software collections. So you should take the time to get comfortable with software collections.