• Ubuntu系统apt添加第三方PPA源


    一、前言

    1.1目的

    在使用Ubuntu时往往apt源会自带很多常用软件,但是大部分都是比较老的版本,本文主要是为了实现以下两个目的:

    通过添加第三方的PPA源解决软件版本过低或者没有安装包的情况;

    Apt使用的一些基本命令。

    1.2相关文档:

    PPA介绍可以参考此文章:技术|Ubuntu PPA 使用指南 https://linux.cn/article-10456-1.html

    PPA的网址:https://launchpad.net/ubuntu/+ppas

    二、apt命令

    2.1基本用法

    查询仓库汇总软件的所有版本

    ~# apt-cache madison nginx
    

    ~# apt-cache show nginx | grep -i version
    

    安装指定版本:

    语法: apt-get install <>=<>

    ~# apt-get -y install nginx=1.14-1~xenial
    

    查询仓库中软件的所有版本及安装情况

    ~# apt-cache policy nginx
    

    使用apt-get install -s模拟安装软件(不指定版本默认下载源中最新版本)

     ~# apt-get install -s apache2 
    

    2.2关于ppa的一些命令

    导入ppa源的命令:

    add-apt-repository ppa:源作者/软件名

    PPA弊端

    如果不将一些失效的PPA删除,就会是apt update 变慢甚至出错。所以及时删除,删除 PPA 源 命令: add-apt-repository -r ppa:user/ppa-name

    更彻底的办法:

    首先查询并删除不需要的key:

    apt-key list #列出已保存在系统中key

    apt-key del keyname #从本地trusted数据库删除key
    apt-key del 1362 21EE520DDFAF0A905689B9316A7BC7917B12
    apt-key update #更新本地trusted数据库,删除过期没用的key
    到源的目录:cd /etc/apt/sources.list.d/,删除不需要的源地址文件
    清空/var/lib/apt/lists里的文件: cd /var/lib/apt && sudo rm -rf lists && sudo mkdir lists
    

    当然还有自己作死遇到的问题:The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY keyname

    解决办法:

    apt-key adv --keyserver keyserver.ubuntu.com --recv-keys keyname #删错了key重新加载回来
    

    三、apt部署新版本的redis

    3.1查看版本及软件版本

    先查看apt可以下载的redis版本(如下可以下载最新的是5.5版本,已安装版本没有)

    ~# apt-cache policy redis-server
    redis-server:
     Installed: none
     Candidate: 5:5.0.7-2ubuntu0.1
     Version table:
     *** 5:5.0.7-2ubuntu0.1 500
    ​    500 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-updates/universe amd64 Packages
    ​    500 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-security/universe amd64 Packages
       5:5.0.7-2 500
    ​    500 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal/universe amd64 Packages
    
    

    查看Ubuntu的版本

    ~# cat /etc/os-release 
    NAME="Ubuntu"
    VERSION="20.04.5 LTS (Focal Fossa)"
    ID=ubuntu
    ID_LIKE=debian
    PRETTY_NAME="Ubuntu 20.04.5 LTS"
    VERSION_ID="20.04"
    HOME_URL="https://www.ubuntu.com/"
    SUPPORT_URL="https://help.ubuntu.com/"
    BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
    PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
    VERSION_CODENAME=focal
    UBUNTU_CODENAME=focal
    

    3.2查找PPA源

    去PPA上https://launchpad.net/ubuntu/+ppas查找可用的redis源

    在搜索栏上输入redis进行查找

    可以看到这个源的作者是redislabs,而且有符合focal版本的源,最新为7.0.4版本

    3.3添加ppa源

    有sources.list配置添加和add-apt-repositor命令添加两种方法:

    方法一:sources.list配置添加

    在/etc/apt/sources.list文件中添加以下配置:

    deb http://ppa.launchpad.net/redislabs/redis/ubuntu trusty main
    deb-src http://ppa.launchpad.net/redislabs/redis/ubuntu trusty main
    

    ​ 更新apt源

    ~# apt-get update
    

    方法二:命令添加

    添加add-apt-repository命令

    ~# apt-get install python-software-properties		#Ubuntu12.04以下
    ~# apt-get install software-properties-common 	#Ubuntu12.10版本以上
    

    添加ppa源(会自动添加符合自己版本的源)

    ~# add-apt-repository ppa:redislabs/redis-server 
    

    更新apt源

    ~# apt-get update
    

    再次查看可下载版本:

    ~# apt-cache policy redis-server
    redis-server:
     Installed: 6:7.0.4-1rl1~focal1
     Candidate: 6:7.0.4-1rl1~focal1
     Version table:
     *** 6:7.0.4-1rl1~focal1 500
    ​    500 https://packages.redis.io/deb focal/main amd64 Packages
    ​    100 /var/lib/dpkg/status
       6:7.0.4-1rl1~focal1 500
    ​    500 http://ppa.launchpad.net/redislabs/redis/ubuntu focal/main amd64 Packages
       6:7.0.3-1rl1~focal1 500
    ​    500 https://packages.redis.io/deb focal/main amd64 Packages
       6:7.0.2-1rl1~focal1 500
    ​    500 https://packages.redis.io/deb focal/main amd64 Packages
    ......
    

    由于缓存需要时间,过一段时间旧版本的才会被下载

    ~# apt-cache madison redis
       redis | 6:7.0.4-1rl1~focal1 | https://packages.redis.io/deb focal/main amd64 Packages
       redis | 6:7.0.4-1rl1~focal1 | https://packages.redis.io/deb focal/main all Packages
       redis | 6:7.0.4-1rl1~focal1 | http://ppa.launchpad.net/redislabs/redis/ubuntu focal/main amd64 Packages
       redis | 6:7.0.3-1rl1~focal1 | https://packages.redis.io/deb focal/main amd64 Packages
       redis | 6:7.0.3-1rl1~focal1 | https://packages.redis.io/deb focal/main all Packages
       redis | 6:7.0.2-1rl1~focal1 | https://packages.redis.io/deb focal/main amd64 Packages
       redis | 6:7.0.2-1rl1~focal1 | https://packages.redis.io/deb focal/main all Packages
       redis | 6:7.0.1-1rl1~focal1 | https://packages.redis.io/deb focal/main amd64 Packages
       redis | 6:7.0.1-1rl1~focal1 | https://packages.redis.io/deb focal/main all Packages
       redis | 6:7.0.0-1rl1~focal1 | https://packages.redis.io/deb focal/main amd64 Packages
       redis | 6:7.0.0-1rl1~focal1 | https://packages.redis.io/deb focal/main all Packages
       redis | 6:6.2.7-1rl1~focal1 | https://packages.redis.io/deb focal/main amd64 Packages
       redis | 6:6.2.7-1rl1~focal1 | https://packages.redis.io/deb focal/main all Packages
       redis | 6:6.2.6-3rl1~focal1 | https://packages.redis.io/deb focal/main amd64 Packages
       redis | 6:6.2.6-3rl1~focal1 | https://packages.redis.io/deb focal/main all Packages
       redis | 6:6.2.6-2rl1~focal1 | https://packages.redis.io/deb focal/main amd64 Packages
       redis | 6:6.2.6-2rl1~focal1 | https://packages.redis.io/deb focal/main all Packages
    

    3.4安装redis

    下载默认版本(默认为最新的)

    ~# apt-get install -y redis-server
    

    下载指定版本

    ~# apt-get install -y redis-server=7.0.4-1rl1~focal1
    

    查看下载情况

    ~# apt-cache policy redis
    redis:
     Installed: 6:7.0.4-1rl1~focal1
     Candidate: 6:7.0.4-1rl1~focal1
     Version table:
     *** 6:7.0.4-1rl1~focal1 500
    ​    500 https://packages.redis.io/deb focal/main amd64 Packages
    ​    500 https://packages.redis.io/deb focal/main all Packages
    ​    100 /var/lib/dpkg/statu
    

    3.5 redis优化

    编辑配置文件添加redis密码为:guest

    sed -i "s/bind 127.0.0.1/bind 0.0.0.0/g" /etc/redis/redis.conf
    sed -i "561i maxmemory-policy allkeys-lru" /etc/redis/redis.conf
    sed -i "481i requirepass guest" /etc/redis/redis.conf 
    cat << EOF >> /etc/redis/redis.conf
    rename-command FLUSHALL ""
    rename-command FLUSHDB ""
    EOF
    

    修改参数

    echo 'vm.overcommit_memory = 1' >> /etc/sysctl.conf
    sysctl -p
    

    启动redis并加入开机自启

    ~# systemctl start redis-server && ~# systemctl enable redis-server
    ~# systemctl status redis-server
    ~# ps -ef|grep redis
    redis   153598    1  0 Aug31 ?     00:03:02 /usr/bin/redis-server 0.0.0.0:6379
    

    完成

  • 相关阅读:
    辽宁石油化工大学计算机考研资料汇总
    想要精通算法和SQL的成长之路 - 分发糖果
    Spring的对象分类
    经验分享丨如何准备三维视觉、SLAM相关职位的面试
    2. 处理脚本命令行参数
    SpringBoot快速搭建及打包
    241.为运算表达式设计优先级
    python functools.wraps保留被装饰函数属性
    【java学习】类的属性(15)
    Git学习笔记2
  • 原文地址:https://www.cnblogs.com/wangyuanguang/p/16658319.html