Встановіть Plesk на CentOS 7
Використання іншої системи? Plesk — це власна панель керування веб-хостом, яка дозволяє користувачам адмініструвати свої персональні та/або клієнтські веб-сайти, бази даних
GDB — це налагоджувач для C, C++, Objective-C, Pascal, Fortran, Go, D, OpenCL C, Ada і Modula-2.
CentOS базується на RHEL (Red Hat Enterprise Linux). Однією з головних цілей RHEL є стабільна серверна операційна система, що означає, що нові версії програмних пакетів не завжди доступні.
На момент написання статті CentOS 6 пропонує GDB v7.2. Однак команда GDB нещодавно випустила код для v7.91.
Офіційно пропонується запустити інший дистрибутив Linux, щоб використовувати новішу версію GDB. Це не завжди ідеально. На щастя, можна встановити новіші версії GDB на CentOS 6. Оскільки GDB є налагоджувачем, а не основним компонентом системи, ви можете досить безпечно використовувати новішу версію.
У цій статті пояснюється, як встановити підтримувані та непідтримувані версії GDB на CentOS 6.
Я також поясню, як налаштувати GDB, щоб надавати вам легшу для читання інформацію про налагодження під час використання стандартної бібліотеки C++ (наприклад, рядок) і стандартної бібліотеки шаблонів (наприклад, вектора). Ця функція називається гарним друком.
Увійдіть у свій VPS. Це можна зробити, натиснувши «Переглянути консоль» на панелі керування Vultr або за допомогою клієнта SSH.
(a) Увійдіть як root.
(b) Створіть власний обліковий запис користувача. Встановіть пароль.
adduser <username>
passwd <username>
(c) Надати користувачеві доступ sudo.
visudo
After the line "root ALL=(ALL) ALL"
Add the line "<username> ALL=(ALL) ALL"
--- If you aren't familiar with vi, go to the line "root ALL=(ALL) ALL".
--- Hit "o" to create a new line after that line and enter insert mode.
--- Type "<username> ALL=(ALL) ALL".
--- Hit ESC.
--- Type "ZZ" to save.
(d) Вийдіть як root, а потім знову увійдіть, використовуючи свій обліковий запис користувача. Набагато безпечніше ніколи не входити в систему як root. Використання sudo є кращою практикою.
Встановіть GDB.
sudo yum install gdb
Перевірте встановлену версію та подивіться її розташування.
gdb --version
May say: GNU gdb (GDB) Red Hat Enterprise Linux (7.2-75.el6)
which gdb
/usr/bin/gdb
Встановіть компілятор C, наприклад GCC. Компілятор C++ не потрібен для створення GDB з джерела, але він потрібен для демонстрації гарної функції друку GDB. Ви можете створити новішу версію GCC з джерела, виконавши кроки зі статті Як встановити GCC на CentOS 6 . Або ви можете встановити офіційно підтримувану версію GCC CentOS 6, запустивши:
sudo yum install gcc gcc-c++
Встановіть додатково необхідні пакети.
sudo yum install wget tar gzip ncurses-devel texinfo svn python-devel
Вирішіть, яку версію GDB ви хочете зібрати з вихідного коду. Відвідайте сайт GDB FTP, щоб побачити версії, доступні для завантаження.
Отримайте джерело потрібної версії GDB. Решта цієї статті написана для версії 7.9.1 і буде завантажувати джерела ~/sourceInstallations/gdb-7.9.1/
- вам доведеться замінити правильний номер версії для новіших версій.
mkdir ~/sourceInstallations
cd ~/sourceInstallations
wget ftp://ftp.gnu.org/gnu/gdb/gdb-7.9.1.tar.gz .
tar -zxvf gdb-7.9.1.tar.gz
Створення GDB. Якщо все виконано правильно, в останньому рядку, який ви побачите, буде написано «успіх». Це нормально бачити деякі повідомлення про помилки, які швидко прокручуються. Їх безпечно ігнорувати.
mkdir gdb-7.9.1.build
cd gdb-7.9.1.build
../gdb-7.9.1/configure --with-python=yes && make && sudo make install && echo success
--- If your VPS has multiple cores, you can speed up the build by changing the middle part
--- of this line from "&& make &&" to "&& make -j <number of cores> &&".
--- You can see the number of cores your VPS has by running "nproc"
--- The parameter "--with-python=yes" is necessary for the pretty printing feature
Встановіть C++ для друку.
cd ~/
svn co svn://gcc.gnu.org/svn/gcc/trunk/libstdc++-v3/python gdb_printers
Create a file ~/.gdbinit of:
python
import sys
sys.path.insert(0, '/home/<yourUserName>/gdb_printers/')
from libstdcxx.v6.printers import register_libstdcxx_printers
end
--- One way to create this file is to run "vi ~/.gdbinit", hitting "i" to enter insert mode,
--- typing the above file, hitting ESC, and hitting "ZZ" to save.
Перевірте встановлену версію та її розташування.
gdb --version
May say: GNU gdb (GDB) 7.9.1
which gdb
/usr/local/bin/gdb
За бажанням запустіть GDB і побачите гарний друк.
mkdir ~/gdbExample
cd ~/gdbExample
Create a file gdbExample.cpp of:
#include <string>
#include <vector>
using namespace std;
int main() {
string foo = "bar";
vector<string> vec;
vec.push_back("foo");
vec.push_back("bar");
vec.push_back("foobar");
}
--- One way to create this file is to run "vi gdbExample.cpp", hitting "i" to enter insert mode,
--- typing the above file, hitting ESC, and hitting "ZZ" to save.
g++ -ggdb gdbExample.cpp -o gdbExample
Start GDB traditionally, by running "gdb ./gdbExample". Or, start GDB by using its terminal user interface (basically a text mode GUI), by running "gdb --tui ./gdbExample".
Enter "break main" to set a breakpoint at the beginning of function main() -- and it will say:
Breakpoint 1 at 0x<someAddress>: file gdbExample.cpp, line 6.
Enter "run" to start the program, which will immediately hit the breakpoint you just set -- and it will say:
Starting program: /home/<yourUserName>/gdbExample/gdbExample
Breakpoint 1, main () at gdbExample.cpp:6
6 string foo = "bar";
Enter "next" and hit enter four times, and gdb will move up to just before executing:
10 vec.push_back("foobar");
Enter "print foo" and gdb will show:
$1 = "bar"
Enter "print vec" and gdb will show:
$2 = std::vector of length 2, capacity 2 = {"foo", "bar"}
--- Remember, line 10 hasn't executed yet to add "foobar" to the vector
Enter "quit" and "y" to quit anyway.
За бажанням звільніть місце на жорсткому диску. Ваш ~/sourceInstallations
каталог займе близько 386 МБ. Напевно, було б розумно зберігати каталоги, оскільки є додаткові параметри конфігурації, які вам, можливо, знадобиться використовувати в якийсь момент у майбутньому, і було б швидше, якщо багато вже зроблено. Крім того, процес збірки створює журнали, які ви можете пізніше перевірити та працювати з ними, якщо щось піде не так. Але після запуску sudo make install
раніше ваша встановлена GDB не залежить ні від чого в цьому каталозі, а простір може бути обмеженим, тому ви можете зробити цей крок і повернути 386 МБ або близько того. ВАЖЛИВО: не видаляйте ~/gdb_printers/
каталог! Вміст цього каталогу завантажується щоразу, коли ви запускаєте GDB. Вони НЕ були скомпільовані в саму GDB.
cd ~/
rm -rf sourceInstallations
--- Again, if you can spare the space, you may someday be happy to have left it there.
Використання іншої системи? Plesk — це власна панель керування веб-хостом, яка дозволяє користувачам адмініструвати свої персональні та/або клієнтські веб-сайти, бази даних
Squid — популярна безкоштовна програма для Linux, яка дозволяє створювати веб-проксі для переадресації. У цьому посібнику ви дізнаєтеся, як встановити Squid на CentOS, щоб перетворити вас
Вступ Lighttpd — це форк Apache, який має набагато меншу ресурсомісткість. Він легкий, звідси його назва, і досить простий у використанні. Встановити
VULTR нещодавно вніс зміни на свою сторону, і тепер усе має працювати нормально з коробки з увімкненим NetworkManager. Якщо ви бажаєте вимкнути
Icinga2 — це потужна система моніторингу, і при використанні в моделі «майстер-клієнт» вона може замінити потребу в перевірках моніторингу на основі NRPE. Майстер-клієнт
Використання іншої системи? Apache Cassandra — це безкоштовна система керування базами даних NoSQL з відкритим вихідним кодом, яка розроблена для забезпечення масштабованості, високої
Використання іншої системи? Microweber — це CMS та інтернет-магазин із відкритим вихідним кодом. Вихідний код Microweber розміщено на GitHub. Цей посібник покаже вам
Використання іншої системи? Vanilla forum — це програма з відкритим вихідним кодом, написана на PHP. Це повністю настроюваний, простий у використанні та підтримує зовнішній вигляд
Використання іншої системи? Mattermost — це автономна альтернатива службі обміну повідомленнями Slack SAAS з відкритим кодом. Іншими словами, з Mattermost ви бл
Панель керування Plesk має дуже гарну інтеграцію для Lets Encrypt. Lets Encrypt є одним із єдиних постачальників SSL, які надають сертифікати повністю
Lets Encrypt — це центр сертифікації, який надає безкоштовні сертифікати SSL. cPanel створив чітку інтеграцію, щоб ви і ваш клієнт
Використання іншої системи? Concrete5 — це CMS з відкритим вихідним кодом, яка пропонує багато відмінних і корисних функцій, які допомагають редакторам легко створювати вміст.
Використання іншої системи? Review Board — це безкоштовний інструмент з відкритим кодом для перегляду вихідного коду, документації, зображень та багато іншого. Це веб-програмне забезпечення
У цьому посібнику ви дізнаєтеся, як налаштувати автентифікацію HTTP для веб-сервера Nginx, що працює на CentOS 7. Вимоги Щоб почати, вам знадобиться
Використання іншої системи? GoAccess — це аналізатор веб-журналів з відкритим вихідним кодом. Ви можете використовувати його для аналізу журналів у режимі реального часу в терміналі або
YOURLS (Your Own URL Shortener) — програма для скорочення URL-адрес і аналізу даних із відкритим вихідним кодом. У цій статті ми розглянемо процес встановлення
Використання іншої системи? Вступ ArangoDB — це відкрита база даних NoSQL з гнучкою моделлю даних для документів, графіків і ключів-значень. це є
Вступ Каталог /etc/ відіграє важливу роль у функціонуванні системи Linux. Причина цього в тому, що майже кожна конфігурація системи
Багато системних адміністраторів керують великою кількістю серверів. Якщо потрібно отримати доступ до файлів на різних серверах, увійти на кожен окремо бл
У цьому посібнику буде описано процес встановлення ігрового сервера Half Life 2 на систему CentOS 6. Крок 1: Встановлення необхідних умов Щоб налаштувати ou
Штучний інтелект не в майбутньому, він тут прямо в сьогоденні У цьому блозі Прочитайте, як програми штучного інтелекту вплинули на різні сектори.
Ви також стали жертвою DDOS-атак і спантеличені методами запобігання? Прочитайте цю статтю, щоб вирішити свої запитання.
Можливо, ви чули, що хакери заробляють багато грошей, але чи замислювалися ви коли-небудь, як вони заробляють такі гроші? давайте обговоримо.
Ви хочете побачити революційні винаходи Google і як ці винаходи змінили життя кожної людини сьогодні? Тоді читайте в блозі, щоб побачити винаходи Google.
Концепція самокерованих автомобілів, щоб вирушати в дороги за допомогою штучного інтелекту, є мрією, яку ми давно мріємо. Але, незважаючи на кілька обіцянок, їх ніде не видно. Прочитайте цей блог, щоб дізнатися більше…
Оскільки наука розвивається швидкими темпами, бере на себе багато наших зусиль, ризики піддати себе незрозумілій Сингулярності також зростає. Читайте, що може означати для нас сингулярність.
Методи зберігання даних можуть розвиватися з моменту народження Даних. Цей блог висвітлює еволюцію зберігання даних на основі інфографіки.
Прочитайте блог, щоб дізнатися про різні шари архітектури великих даних та їх функціональні можливості найпростішим способом.
У цьому цифровому світі пристрої розумного дому стали важливою частиною життя. Ось кілька дивовижних переваг пристроїв розумного дому щодо того, як вони роблять наше життя гідним життя та спрощують його.
Нещодавно Apple випустила додаткове оновлення macOS Catalina 10.15.4, щоб виправити проблеми, але схоже, що оновлення викликає більше проблем, що призводять до блокування комп’ютерів Mac. Прочитайте цю статтю, щоб дізнатися більше