c++ - كيف أقوم بتثبيت مكتبات OpenSSL على Ubuntu؟




installation (6)

لقد وجدت حلاً مفصلاً هنا: تثبيت OpenSSL يدويًا على نظام التشغيل Linux

من منشور المدونة ...:

خطوات التنزيل والترجمة والتثبيت هي كالتالي (أقوم بتثبيت الإصدار 1.0.1g أدناه ؛ الرجاء استبدال "1.0.1g" برقم الإصدار الخاص بك):

الخطوة - 1: تنزيل OpenSSL:

قم بتشغيل الأمر على النحو التالي:

$ wget http://www.openssl.org/source/openssl-1.0.1g.tar.gz

قم أيضًا بتنزيل تجزئة MD5 للتحقق من سلامة الملف الذي تم تنزيله لغرض varifacation فقط. في نفس المجلد الذي قمت بتنزيل ملف OpenSSL من موقع الويب:

$ wget http://www.openssl.org/source/openssl-1.0.1g.tar.gz.md5
$ md5sum openssl-1.0.1g.tar.gz
$ cat openssl-1.0.1g.tar.gz.md5

الخطوة - 2: استخراج الملفات من الحزمة التي تم تنزيلها:

$ tar -xvzf openssl-1.0.1g.tar.gz

الآن ، أدخل الدليل حيث يتم استخراج الحزمة مثل هنا openssl-1.0.1g

$ cd openssl-1.0.1g

الخطوة - 3: تكوين OpenSSL

قم بتشغيل الأمر أدناه مع شرط اختياري لتعيين البادئة والدليل حيث تريد نسخ الملفات والمجلدات.

$ ./config –prefix=/usr/local/openssl –openssldir=/usr/local/openssl

يمكنك استبدال "/ usr / local / openssl" بمسار الدليل حيث تريد نسخ الملفات والمجلدات. ولكن تأكد من خلال القيام بهذه الخطوات التحقق من وجود أي رسالة خطأ على المحطة.

الخطوة - 4: ترجمة OpenSSL

لتجميع openssl ، ستحتاج إلى تشغيل أمر 2: make ، make install as below:

$ make

ملاحظة: تحقق من وجود أي رسالة خطأ لغرض التحقق.

الخطوة - 5: تثبيت OpenSSL:

$ sudo make install

أو بدون سودو ،

$ make install

هذا هو. تم تثبيت OpenSSL بنجاح. يمكنك تشغيل أمر الإصدار لمعرفة ما إذا كان يعمل أم لا على النحو التالي:

$ /usr/local/openssl/bin/openssl version

OpenSSL 1.0.1g 7 Apr 2014

أحاول بناء بعض الأكواد على Ubuntu 10.04 LTS الذي يستخدم OpenSSL 1.0.0. عند تشغيل make ، تستدعي g ++ مع خيار "-lssl". المصدر يشمل:

#include <openssl/bio.h>
#include <openssl/buffer.h>
#include <openssl/des.h>
#include <openssl/evp.h>
#include <openssl/pem.h>
#include <openssl/rsa.h>

ركضت:

$ sudo apt-get install openssl
Reading package lists... Done
Building dependency tree       
Reading state information... Done
openssl is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 3 not upgraded.

ولكن أعتقد أن حزمة openssl لا تتضمن المكتبة. تظهر لي هذه الأخطاء:

foo.cpp:21:25: error: openssl/bio.h: No such file or directory
foo.cpp:22:28: error: openssl/buffer.h: No such file or directory
foo.cpp:23:25: error: openssl/des.h: No such file or directory
foo.cpp:24:25: error: openssl/evp.h: No such file or directory
foo.cpp:25:25: error: openssl/pem.h: No such file or directory
foo.cpp:26:25: error: openssl/rsa.h: No such file or directory

كيف أقوم بتثبيت مكتبة OpenSSL C ++ على نظام Ubuntu 10.04 LTS؟

فعلت man g++ و (تحت عنوان "خيارات لربط") للخيار -l تقول: "يبحث رابط قائمة قياسية من الدلائل للمكتبة ..." و "الأدلة بحثت تتضمن عدة أدلة النظام القياسية .. "ما هي تلك الدلائل النظام القياسي؟


طريقة أخرى لتثبيت مكتبة openssl من التعليمات البرمجية المصدر على أوبونتو ، يتبع الخطوات أدناه ، هنا WORKDIR هو دليل العمل الخاص بك:

  1. sudo apt-get install pkg-config
  2. مؤتمر نزع السلاح WORKDIR
  3. بوابة استنساخ https://github.com/openssl/openssl.git
  4. مؤتمر نزع السلاح يفتح
  5. ./config
  6. يصنع
  7. sudo جعل تثبيت
  8. افتح الملف /etc/ld.so.conf ، أضف سطرًا جديدًا: "/ usr / local / lib" في EOF
  9. sudo ldconfig

كيف لي أن أحسب ذلك لنفسي (بخلاف طرح هذا السؤال هنا)؟ يمكن لي أن أقول apt-get إلى قائمة جميع الحزم ، و grep for ssl؟ أو هل أحتاج إلى معرفة اصطلاح التسمية "lib * -dev"؟

إذا كنت تقوم بالربط مع -lfoo ، فمن المرجح أن المكتبة libfoo.so . ربما تكون المكتبة نفسها جزءًا من حزمة libfoo ، والرؤوس موجودة في حزمة libfoo-dev كما اكتشفت.

يستخدم بعض الأشخاص التطبيق "synaptic" gui ( sudo synaptic ) إلى (تحديد موقع حزم التثبيت) ، لكنني أفضل استخدام سطر الأوامر. الشيء الوحيد الذي يجعل من السهل العثور على الحزمة المناسبة من سطر الأوامر هو حقيقة أن apt-get تدعم إكمال bash.

جرب كتابة sudo apt-get install libssl ثم اضغط على "tab" لمشاهدة قائمة بأسماء الحزم المطابقة (والتي يمكن أن تساعد عندما تحتاج إلى تحديد الإصدار الصحيح لحزمة تحتوي على إصدارات متعددة أو تنويعات أخرى متوفرة).

إن إكمال Bash مفيد جدًا ... على سبيل المثال ، يمكنك أيضًا الحصول على قائمة بالأوامر التي تدعمها "apt-get" عن طريق كتابة sudo apt-get ثم الضغط على "tab".


apt-get install libssl-dev


تريد تثبيت حزمة التطوير ، وهي libssl-dev:

sudo apt-get install libssl-dev

بالإضافة إلى قراءة رسالة التحذير ، انتبه إلى مكان حدوثها إذا كان لديك العديد من المشاريع كجزء من مساحة العمل.

لقد أضاعت الوقت في البحث عن مشكلة في DLL الخاص بي والتي تم تجميعها وربطها بشكل صحيح. كانت مساحة العمل أيضًا تقوم ببناء التطبيق الرئيسي وكان الخطأ الذي أقوم به هو أنني قمت دون قصد بإدراج ملف مصدر جديد (DLL) في قائمة ملف البناء الخاصة بالتطبيق نفسه .

يتطلب البرنامج الرئيسي رأس DLL mynewdll.h لاستيراد الأشياء ولكن لا يتطلب الملف المصدر mynewdll.cpp. (يتم إحضار التعليمة البرمجية في وقت التشغيل باستخدام DLL.) لدي عادةً تضمين ملفات الرأس والرمز في المشاريع كزوج ، وهذا هو المكان الذي أخطأت فيه.

كنت قد اكتشفت الخطأ في وقت أقرب بكثير إذا كنت قد تم تنبيه ولاحظت أن مشروع DLL مرتبطة مع عدم وجود أخطاء وكان البرنامج الرئيسي الذي اشتكى!

كان رمز مصدر DLL الخاص بي والمشروع خاليًا من الأخطاء وكانت الطريقة الوحيدة التي حاولت بها إنشاء ملفي التنفيذي الذي كان خاطئًا.





c++ ubuntu installation openssl