yum

yum工具命令,安装软件过程。

资源

https://www.cnblogs.com/G-Aurora/p/13166168.html

yum-config-manager

yum-config-manager: command not found,这个是因为系统默认没有安装这个命令,这个命令在yum-utils 包里,按一下安装。

yum -y install yum-utils

添加仓库

参见docker-ce安装

安装rpm包

rpm包也能用yum的方式安装,会自动安装相关的依赖。

示例如:

wget https://dl.grafana.com/enterprise/release/grafana-enterprise-8.1.2-1.x86_64.rpm
sudo yum install grafana-enterprise-8.1.2-1.x86_64.rpm

https://www.php.cn/blog/detail/15883.html

wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
# 貌似下面的只是添加了仓库的镜像。
yum -y install mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql-community-server

rpm包查询

http://rpmfind.net/linux/rpm2html/search.php

错误

rpmdb open failed

错误日志如下:

error: rpmdb: BDB0113 Thread/process 9631/140207785715776 failed: BDB1507 Thread died in Berkeley DB library
error: db5 error(-30973) from dbenv->failchk: BDB0087 DB_RUNRECOVERY: Fatal error, run database recovery
error: cannot open Packages index using db5 -  (-30973)
error: cannot open Packages database in /var/lib/rpm
CRITICAL:yum.main:

Error: rpmdb open failed

解决方式:

cd /var/lib/rpm
# 清除原rpmdb文件
rm -f __db.*
# 重建rpm数据库
rpm --rebuilddb
# 清除所有yum的缓存
yum clean all
# 测试安装
yum install -y pssh

apt

https://mirrors.cloud.tencent.com/help/ubuntu.html


# 设置腾讯云的源

# 16.04
wget -O /etc/apt/sources.list http://mirrors.cloud.tencent.com/repo/ubuntu16_sources.list
# 20.04
wget -O /etc/apt/sources.list http://mirrors.cloud.tencent.com/repo/ubuntu20_sources.list

# 更新缓存
apt-get clean all
apt-get update

通过 PPA 安装指定或最新版本的 nodejs

https://www.cnblogs.com/forheart/p/13203249.html

PPA 的全称为 personal package archive 。

cd ~
#  setup  最新   setup_12.x
curl -sL https://deb.nodesource.com/setup_12.x | sudo bash -
sudo apt update
sudo apt install nodejs  # 会更新旧的安装包

卸载

执行如下命令:

sudo apt remove nodejs

此命令会卸载 nodejs,但是会保留配置文件,方便你以后再次安装 nodejs。

如果不想保留配置文件,继续执行:

sudo apt purge nodejs

这将会卸载 nodejs 和其相关的配置文件。

最后,你还可以移除和 nodejs 一起安装但是现在没有被使用的包:

sudo apt autoremove

代理

比如,在不能访问外网的机器上,通过在能访问外网的机器上,通过端口转发来代理,以实现yum源的自由。
备注:代理80端口,这个能理解,但是,记得https要通过443端口,80、443端口均要代理。

备注排查过程:repo文件里面都是http协议,然后会经过一次重定向到443端口,重定向后无法访问,导致我误以为https不能被转发,实际上到了tcp层面,https的协议只是签名。这说明,网络基础有点差。另外,使用nginx等等也是可转发的。只是socat用在这种纯tcp的转发,更方便快捷一些。而且也方便安装。

# 可访问外网的机器,做转发使用
socat tcp4-listen:80,reuseaddr,fork,  tcp:mirrors.cloud.tencent.com:80
socat tcp4-listen:443,reuseaddr,fork,  tcp:mirrors.cloud.tencent.com:443

# 以下均在目标机器上
# 增加域名映射,否则,要修改repo里面的域名。备注。ip为上一步的ip
echo  10.xx.186.xx mirrors.cloud.tencent.com  >> /etc/hosts


# 先备份,再下载
mkdir -p /etc/yum.repos.d/bak3 
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak3/

curl -o /etc/yum.repos.d/centos7_base.repo http://mirrors.cloud.tencent.com/repo/centos7_base.repo
yum clean all
yum update