首页 > 系统相关 >Linux软件包常见的几种下载、安装方法

Linux软件包常见的几种下载、安装方法

时间:2022-09-02 12:13:29浏览次数:122  
标签:Linux apt 几种 repo etc yum 软件包 com 下载

在线源下载和安装

如果服务器是处于在线状态,在使用默认下载源是外国的情况下,安装更新软件包往往会比较痛苦的存在,下载了许久来一个超时就gg了。国内有许多镜像源,完美的解决了这个问题。

对于rpm系列的Linux,源就是存放在/etc/yum.repos.d/的文件,一个文件为一个源。

# 备份一下
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
# 下载阿里的源替换
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

# 清除旧缓存,生成新缓存
yum clean all
yum makecache

deb系列下的源为保存在/etc/apt/sources.list文件。

# 先备份
mv /etc/apt/sources.list /etc/apt/sources.list.bak

# debian 11
echo -e 'deb https://mirrors.aliyun.com/debian/ bullseye main non-free contrib\ndeb-src https://mirrors.aliyun.com/debian/ bullseye main non-free contrib\ndeb https://mirrors.aliyun.com/debian-security/ bullseye-security main\ndeb-src https://mirrors.aliyun.com/debian-security/ bullseye-security main\ndeb https://mirrors.aliyun.com/debian/ bullseye-updates main non-free contrib\ndeb-src https://mirrors.aliyun.com/debian/ bullseye-updates main non-free contrib\ndeb https://mirrors.aliyun.com/debian/ bullseye-backports main non-free contrib\ndeb-src https://mirrors.aliyun.com/debian/ bullseye-backports main non-free contrib'

具体可以看阿里云主页debian镜像

其他的发行版本的其他源配置方法也有可供参考。

离线下载和安装

不是所有的服务器都是对外服务,也有的服务器为局域网内提供一些运算、文件共享等服务,为了安全起见,所以会切断与外网的通信。

  • 如果需要安装软件包,一般情况有两种方法。
    • 下载可执行的二进制比如.rpm和.deb文件来安装,或者是下载源代码编译安装。
    • 配置局域网内的本地yum、apt源。

软件包下载安装

需要使用一台可以联网的设备,不安装只下载安装包,再将下载好的安装包通过scp等之类的方式上传到其系统中。

rpm系列有专门的工具yumdownlode,使用起来还是很方便的。

# 下载相关包以及依赖
yumdownloader --resolve --destdir=/local/yum <包名>

# 这里使用-i也同理,-U为upgrade
rpm -Uvh --force --nodeps <包路径>

deb的可能有点麻烦,需要依赖需要手动下载,而且要先安装才可以看到依赖。

# 查看依赖
apt depends <包名>

# 查看包信息
apt-cache show <包名>

# 查看包下载路径url
apt policy <包名>

# 只下载并且下载到当前位置
apt-get download <包名>

结合起来的命令

#下载
apt-get download <包名>
apt depends <包名> | awk '{print $2}' | xargs apt-get download

# 安装
dpkg --force-all -i <包路径>

码源安装

还是需要一台已经联网可以下载源代码的压缩包的设备,可以从官网、github等下载自己对应发行版本和处理器架构的源码包,再使用scp之类的方式上传到离线的服务器。

一般情况都要经过解压、配置(configure)、编译(make)、安装(make install)。下面以我之前的安装openlava为例子。

# 解压到当前文件夹,会生成个同名openlava文件夹
tar -zxvf openlava-4.0.tar.gz

# 进入源码文件夹中
cd openlava-4.0

# 配置configgure,加上prefix参数,配置安装路径,方便以后维护
. /configure --prefix=/data/openlava

# 编译make,这里的-j参数定义了使用线程数,这里是2线程
# 可以用下面的命令查看线程数
# grep 'processor' /proc/cpuinfo | sort -u | wc -l
make -j 2

# 安装
make install

不过源代码也不是这么好找的啦。

本地源

本地yum源

通过系统iso镜像制作本地源,先挂载系统镜像。

mount /dev/cdrom /挂载路径

yum的下载源的相关配置文件在/etc/yum.repos.d/目录中,修改名称全部为bak。

cd /etc/yum.repo.d/
ls -l | awk '{print $9}' | xargs -I{} mv {} {}.bak

  新建个文件<名字>.repo,这里新建Local.repo。

# local yum
[Local] #取名
name=Local  #取名
baseurl=file://挂载镜像绝对路径  #比如file:///media/cdrom
enabled=1    #是否使用源,1开0关  
gpgcheck=0  #检查,1开0关

完成后生成缓存

yum clean all
yum makecache

 本地yum源挂载共享

也许你的服务器有若干台,每一台都使用单独iso挂载可能有点麻烦,可以尝试使用NFS、SMB等方式实现网络挂载,将本机设置为Server,共享iso镜像的挂载路径,其他Linux创建同名的路径挂载,scp将之前编辑的/etc/yum.repos.d/Local.repo配置文件,即可实现共享。

本地yum源http共享

在编辑repo文件时候,baseurl是可以直接写http/s的url的,只要我们将挂载iso镜像通过http共享出来。

需要安装Nginx

# 会在/etc/yum.repos.d/生成nginx.repo
rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

# 再安装 nginx,没有第一步安装nginx会提示找不到
 yum -y install nginx

# 编辑一下/etc/nginx/nginx.conf配置文件在http{}里面加
# 或者看到include /etc/nginx/conf.d/*.conf;在conf.d里面的*.conf里加
# 比如default.conf
server {
listen 8080; # 端口看自己需求
server_name localhost;
root /mnt;   # 这里的路径对应你挂载iso的路径
index index.html;
}

修改/etc/yum.repos.d/Local.repo,中的baseurl为http://192.168.2.149:8080/挂载目录。

基于此,可以拓展出基于docker制作http共享源哈哈。

标签:Linux,apt,几种,repo,etc,yum,软件包,com,下载
From: https://www.cnblogs.com/alittlemc/p/16647486.html

相关文章

  • 1-linux内核专栏介绍
    1-linux内核TCP重传率高影响QPS(TPS):每秒钟request/事务数量TCP重传是发生在哪些服务器(IP地址)之间,哪些业务上(服务端口),以及为什么会重传(SYN_SENT)。1 18:21:58 10.17.1......
  • Linux命令-按照与使用(11) 使用 HISTTIMEFORMAT 显示 history 命令的时间戳
    使用HISTTIMEFORMAT显示history命令的时间戳1、临时生效exportHISTTIMEFORMAT="[%Y-%m-%d%H:%M:%S]"或者exportHISTTIMEFORMAT='%F%T'备注:这个环境变量的......
  • selinux设置
    临时设置查看selinux关闭selinux提示selinux开启selinux永久设置查看selinux关闭selinux提示selinux开启selinux......
  • Linux命令-按照与使用(10)linux清空历史命令(history)
    前言在Linux系统的终端中,默认保存命令执行记录,当执行敏感信息后就需要清除这些痕迹。一、清空当前历史命令history-c该命令可以清空当前登录会话的所有执行命令,但不......
  • linux用户添加、删除、添加附属组、移出附属组
    1#!/bin/bash23functionprint_usage()4{5echo"./userM.sh-A<username>添加用户"6echo"./userM.sh-MG<username>添加到root组"7......
  • linux中$符号讲解
    命令替换在bash中,$()与(反引号)都是用来作命令替换的。命令替换与变量替换差不多,都是用来重组命令行的,先完成引号里的命令行,然后将其结果替换出来,再重组成新的命令行。......
  • Linux 添加环境变量
     linux怎么添加环境变量2022-06-2210:59:55一、需要明白以下2点:一般只用第三步即可1、Linux的环境变量是保存在变量PATH中,可通过Linuxshell命令echo$PATH查......
  • 关于微信支付API证书LINUX安装问题
    什么是ssl证书  SSL证书是数字证书的一种,类似于驾驶证、护照和营业执照的电子副本。因为配置在服务器上,也称为SSL服务器证书。SSL证书就是遵守SSL协议,由受信任的数字......
  • Linux下使用rm删除文件,并排除指定文件
    rm是我们在Linux下删除文件经常用到的命令,但是有时候我们目录下有很多个文件想要删除,偏偏却要保留其中1个或几个文件,那怎么办呢?很多新手朋友可能会采取一个一个文件删除的......
  • linux 内核态和用户态
    了解一下用户态和内核态的区别。例如我们的应用程序需要从磁盘读取某个文件的数据,此时并不是直接从磁盘加载到应用内存中,而是:先将数据从「磁盘」复制到「内核Buffer」......