نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول
نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول
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.
(أ) تسجيل الدخول كجذر.
(ب) إنشاء حساب المستخدم الخاص بك. قم بتعيين كلمة المرور.
adduser <username>
passwd <username>
(ج) منح المستخدم حق الوصول.
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.
(د) تسجيل الخروج كجذر ، ثم تسجيل الدخول مرة أخرى باستخدام حساب المستخدم الخاص بك. إنه أكثر أمانًا لعدم تسجيل الدخول فعليًا كجذر. استخدام 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 . أو يمكنك تثبيت إصدار CentOS 6 المدعوم رسميًا من GCC عن طريق تشغيل:
sudo yum install gcc gcc-c++
قم بتثبيت الحزم المطلوبة بشكل إضافي.
sudo yum install wget tar gzip ncurses-devel texinfo svn python-devel
حدد إصدار GDB الذي تريد إنشاءه من المصدر. قم بزيارة موقع GDB FTP لمعرفة الإصدارات المتوفرة للتنزيل.
احصل على مصدر إصدار GDB الذي تريده. تمت كتابة بقية هذه المقالة للإصدار v7.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دليل سيتولى حوالي 386MB. ربما يكون من الحكمة الاحتفاظ بالمجلدات ، حيث أن هناك خيارات تكوين اختيارية قد تحتاج إلى استخدامها في وقت ما في المستقبل ، وسيكون من الأسرع إنجاز الكثير بالفعل. أيضًا ، تجعل عملية البناء السجلات التي يمكنك التحقق منها والعمل لاحقًا إذا حدث خطأ ما. ولكن ، بعد التشغيل في 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.
نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول
اقرأ المدونة لمعرفة الطبقات المختلفة في بنية البيانات الضخمة ووظائفها بأبسط طريقة.
يعرف الكثير منكم أن Switch سيصدر في مارس 2017 وميزاته الجديدة. بالنسبة لأولئك الذين لا يعرفون ، قمنا بإعداد قائمة بالميزات التي تجعل "التبديل" "أداة لا غنى عنها".
هل تنتظر عمالقة التكنولوجيا للوفاء بوعودهم؟ تحقق من ما تبقى دون تسليم.
اقرأ هذا لمعرفة مدى انتشار الذكاء الاصطناعي بين الشركات الصغيرة وكيف أنه يزيد من احتمالات نموها ومنح منافسيها القدرة على التفوق.
مع تطور العلم بمعدل سريع ، واستلام الكثير من جهودنا ، تزداد أيضًا مخاطر تعريض أنفسنا إلى تفرد غير قابل للتفسير. اقرأ ، ماذا يمكن أن يعني التفرد بالنسبة لنا.
لقد أصبح حل CAPTCHA صعبًا جدًا على المستخدمين في السنوات القليلة الماضية. هل ستكون قادرة على أن تظل فعالة في اكتشاف البريد العشوائي والروبوتات في المستقبل القريب؟
ما هو التطبيب عن بعد والرعاية الصحية عن بعد وأثره على الأجيال القادمة؟ هل هو مكان جيد أم لا في حالة الوباء؟ اقرأ المدونة لتجد طريقة عرض!
ربما سمعت أن المتسللين يكسبون الكثير من المال ، لكن هل تساءلت يومًا كيف يجنون هذا النوع من المال؟ دعنا نناقش.
أصدرت Apple مؤخرًا macOS Catalina 10.15.4 تحديثًا تكميليًا لإصلاح المشكلات ولكن يبدو أن التحديث يتسبب في المزيد من المشكلات التي تؤدي إلى إنشاء أجهزة macOS. قراءة هذه المادة لمعرفة المزيد