Skip to content

Latest commit

 

History

History
83 lines (68 loc) · 2.92 KB

File metadata and controls

83 lines (68 loc) · 2.92 KB

Linux下的软件发布方式

  • 二进制软件包

    • 下载过后即可使用,已经编译好的
  • 源代码软件包

    • 需要先编译才能使用

二进制包的安装和管理

  • Debian系列 (以ubuntu为例)

    • $apt update 更新软件仓库信息
    • $apt install -y zip 安装zip软件
    • $apt remove zip 删除zip软件
  • Redhat系列(以centos为例)

    • $yum update 更新软件仓库信息
    • $yum install -y zip 安装zip软件
    • $yum remove zip 删除zip软件

源代码的编译

  • 确保系统上已经安装 gcc、g++、make 工具,如果没有,那么:

    • $apt install -y gcc g++ make(ubuntu)
    • $yum install -y gcc gcc-c++ make (centos)
  • 下载软件源码包到服务器上:$wget http://example.com/xxx.tar.gz

  • 源码编译基本步骤:

    • 解压软件包,阅读安装说明README、INSTALL等
    • ./configure --prefix=/usr/local/path 配置制定安装到哪里
    • make
    • make install

通过案例来演示编译源代码

  • nmap 是一个端口扫描的软件,可以用来扫描电脑打开了哪些端口,并且可推断计算机运行在什么OS之上
  • 如果系统有一些漏洞,就可能被黑客利用,黑客帝国电影中就有用到nmap扫描系统漏洞的片段
  • 下载nmap, $wget https://nmap.org/dist/nmap-7.80.tar.bz2
  • 以下是具体操作:
    # 开始解压该文件
    tar -xjf nmap-7.80
    ls
    nmap-7.80 nmap-7.80.tar.bz2 # 此处是打印信息
    cd nmap-7.80/
    cat README # 查看README文件,按照提示操作,下面都是按提示填写的命令
    ./configure --prefix=/usr/local/nmap
    # ... # 很多输出
    make # 开始make
    # ... # 很多输出
    make install # 开始make install
    # ... # 很多输出
    # 安装好后,检查
    cd /usr/local/nmap/
    ls
    bin lib share # 此处是打印信息
    cd bin
    ls
    nmap ... # 此处是打印信息, 此处很多文件,用...省略,关键是包含一个nmap文件,即可使用
    # 使用nmap进行扫描本机
    ./nmap 127.0.0.1
    # ... 很多输出 以下都是打印信息
    PORT     STATE   SERVICE 
    22/tcp   open    ssh
    80/tcp   open    http
    
    Nmap done: 1 IP address (1 host up) scanned in 0.05 seconds
    
    # 现在我们开始尝试停掉80端口
    service nginx stop
    
    # 再次进行扫描,只有一个22端口了
    ./nmap 127.0.0.1
    # ... 很多输出 以下都是打印信息
    PORT     STATE   SERVICE 
    22/tcp   open    ssh
    
    Nmap done: 1 IP address (1 host up) scanned in 0.06 seconds
  • 通过以上nmap的编译案例来了解了以c/c++语言的软件在linux上的编译过程
  • 如果有一些软件,它们的依赖包比较多,需要先去编译它的依赖软件,其实这些依赖关系处理起来很麻烦
  • 在工作中,我们通常使用二进制软件包来进行软件安装而非源代码编译的方式