Linux 下如何安装各种 库(openssl,curl库的安装)

Linux 下如何安装各种 库

 通常 初学者 自己不会安装库,都是按照网上一步一步去安装,有时候存在问题,有的网上的 需要 sudo 权限,而你并没有,这时候就需要将 库 安装在指定位置了,而你却并不知道如何安装,找又不好找到自己想要的安装 文章,所以本文教各位 如何在 ubuntu linux环境下 安装 库。

 本文以安装 curl 库和 openssl 库为例。顺便使用了对应的 curl 库。

文章目录

  1. openssl 库的 卸载和安装

  2. curl 库的 卸载和安装

  3. 使用 curl 爬取 百度的 html

一、openssl 库的 卸载和安装

 由于我们访问的网址 通常都是 https 开头的,也就是需要 ssl证书,所以在安装 curl 库之前需要安装 openssl

openssl 库 的卸载: sudo apt-get purge openssl
sudo rm -rf /etc/ssl #删除配置文件

openssl 库 的安装

  1. 打开openssl 官网
  2. 点击 /source/old 下载旧版
Linux 下如何安装各种 库(openssl,curl库的安装)
  1. 点击 1.1.1 版本
Linux 下如何安装各种 库(openssl,curl库的安装)
  1. 下载 1.1.1j.tar.gz
Linux 下如何安装各种 库(openssl,curl库的安装)
  1. 解压命令 tar -zxvf openssl-1.1.1j.tar.gz

  2. 进入文件夹 cd openssl-1.1.1j/

  3. 先去 阅读 README 文件,发现 安装需要查看 INSTALL 文件

  4. 查看 INSTALL 文件,我们使用的是 ubuntu 系统,所以找的是 Unix 下的安装,我们不需要任何额外的配置,所以使用默认的就好,下面有一堆参数,如果有需要就去查看配置。

Linux 下如何安装各种 库(openssl,curl库的安装)
  1. ./config

  2. sudo make (时间较久,需要耐心等待)

  3. sudo make install

二、curl 库的 卸载和安装

 curl 库 的卸载:apt-get remove curl

 curl 库 的安装:

  1. 百度网盘下载 链接:curl  提取码:wgzs

  2. 解压缩命令 tar xvf curl-7.71.1.tar.bz2

  3. 切换目录到 curl-7.71.1

  4. 一样先查看 README 文件,发现里面没有关于安装的说明,再看下也没有 INSTALL 文件

  5. 一般这种情况 切换到 docs 目录 中查看 README.md,INSTALL文件 ,INSTALL.md文件,发现安装说明在 INSTALL.md文件中

    Linux 下如何安装各种 库(openssl,curl库的安装)
  6. 由于我们需要访问 https 的网页 需要有 openssl ,所以再安装的时候 需要配置 openssl 参数,如图所示,由于安装 openssl 库时 装在了 默认路径,所以不需要指定 openssl 的路径,这次我演示下指定下 curl 库的安装位置。

  7. 先返回 curl-7.71.1/ 目录

  8. ./configure --prefix=$PWD/_install --with-ssl //第一个 --prefix=$PWD/_install 为安装到当前路径下的 _install 文件夹下,没有这个文件夹会自动生成,不用当心。第二个参数为 需要配置 openssl 并且 openssl 库 安装在默认位置。如果没有安装在默认位置,需要 --with-ssl=openssl安装位置!

  9. make 编译

  10. make install 安装(不在根路径下,不需要sudo权限)

  11. 测试,使用下面代码编译,尝试下 curl 库的使用

三、使用 curl 爬取 百度的 html

 返回到 包含curl-7.71.1 的目录下,创建一个 test.c 文件,输入以下内容。

#include <stdio.h>  
#include <string.h>				
#include <curl/curl.h>

char htmldata[1024] = {'\0'};//全局变量,用来接收从 百度 html返回的数据

size_t readData(void *ptr, size_t size, size_t nmemb, void *stream)//回调函数,把从后台的数据拷贝给ocrRetBuf
{
                strncpy(htmldata,ptr,1024);
                printf("%s\n",htmldata);
}

void getUrl()
{
        CURL *curl;
        CURLcode res;
        curl = curl_easy_init();    // 初始化
        if (curl)
        {
                curl_easy_setopt(curl, CURLOPT_URL,"http://www.baidu.com");
                curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION,readData);  //回调函数readDate读取返回值
                res = curl_easy_perform(curl);   // 执行
                if (res != 0) {
                        curl_easy_cleanup(curl);
                }
        }
}
int main(void)
{
        getUrl();
        return 0;
}

 我尝试复制了下,发现位置 乱序了,在 vi 编辑器中使用 gg=G 命令可以恢复。

 然后退出 ,执行编译命令 gcc -o test test.c -I ./curl-7.71.1/_install/include/ -L ./curl-7.71.1/_install/lib/ -lcurl

  • -o 表示 生成 test 这个可执行文件
  • -I 表示 如果有找不到的 头文件 去这个指定的路径查找
  • -L 表示 如果有找不到的 库去这个指定路径查找
  • -lcurl 表示 编译时动态连接 库 curl

如果成功的会返回 百度 的 html 信息,类似下图,证明成功了。

Linux 下如何安装各种 库(openssl,curl库的安装)

最后,想给各位求个点赞,谢谢了!

Linux 下如何安装各种 库(openssl,curl库的安装)
上一篇:shell脚本调用接口


下一篇:fpm安装