包管理器学习记录

包管理器学习记录

npm

安装全局包 npm-check 的几种语法

1
2
3
npm install --global npm-check
npm install -g npm-check
npm install npm-check -g

npm 查找全局安装过的包

1
2
3
4
5
6
npm ls -g --depth 0

+-- hexo-cli@3.1.0
+-- npm@6.12.1
+-- npm-check@5.9.0
`-- surge@0.21.3

outdated 可以显示可更新的项目包

1
2
3
4
$ npm outdated
Package Current Wanted Latest Location
hexo 4.0.0 4.1.1 4.1.1 hexo-site
hexo-deployer-git 2.0.0 2.1.0 2.1.0 hexo-site

npm 更新某个项目的包(项目目录下)

1
npm-check -u

通过上下键可以移动光标,使用空格键可以选择需要处理的包,回车直接进行处理。通过 npm-check -u 就可以直接更新package.json里面的内容,主要用于 hexo 升级。

npm 更新项目包

1
npm update <name> --save

npm 更新项目开发环境依赖包

1
npm update <name> --save-dev

npm 更新单个全局包

1
npm update <name> -g

npm 安装最新版本

1
2
npm uninstall npm -g
npm install npm@latest -g

RPM

rpm 软件包管理工具产生的背景

linux装软件–>源码–>编译–>门槛稍高–>固定硬件平台+系统安装需要软件编译好–>.rpm格式–>安装

常用的RPM软件包命令
安装软件的命令格式 rpm -ivh filename.rpm
升级软件的命令格式 rpm -Uvh filename.rpm
卸载软件的命令格式 rpm -e filename.rpm
查询软件描述信息的命令格式 rpm -qpi filename.rpm
列出软件文件信息的命令格式 rpm -qpl filename.rpm
查询文件属于哪个RPM的命令格式 rpm -qf filename

rpm 软件包的命名格式

name-version-release.arch.rpm

1
2
3
4
5
6
7
8
9
10
name:软件包的名字
version:版本信息,组成部分有major.minor
major:主版本号,重大改变
minor:次版本号,某个子功能产生重大变化
release:发型号,修正某些bug,或者调整一点小功能
arch:适应平台
x86:i386,i486,i686等
x86_64:x86_64
noarch:没有任何硬件的限制,在什么平台 上都能安装
rpm:后缀名

YUM

yum( Yellow dog Updater, Modified)是一个在 Fedora 和 RedHat 以及 SUSE 中的 Shell 前端软件包管理器。

基于 RPM 包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载 、安装。

命令 作用
yum repolist all 列出所有仓库
yum list all 列出仓库中所有软件包
yum info 软件包名称 查看软件包信息
yum install 软件包名称 安装软件包
yum reinstall 软件包名称 重新安装软件包
yum update 软件包名称 升级软件包
yum remove 软件包名称 移除软件包
yum clean all 清除所有仓库缓存
yum makecache 更新缓存
yum check-update 检查可更新的软件包
yum update 更新所有的 rpm 包
yum upgrade 大规模的版本升级,与yum update不同的是,连旧的淘汰的包也升级
yum grouplist 查看系统中已经安装的软件包组
yum groupinstall 软件包组 安装指定的软件包组
yum groupremove 软件包组 移除指定的软件包组
yum groupinfo软件包组 查询指定的软件包组信息

举例

  • 列出所有可更新的软件清单命令:yum check-update
  • 查找软件包命令:yum search <package_name>
  • 仅安装指定的软件命令:yum install <package_name>
  • 更新所有软件命令:yum update
  • 仅更新指定的软件命令:yum update <package_name>
  • 列出所有安装的软件清单命令:yum list
  • 列出指定软件 yum list | grep nginx
  • 删除软件包命令:yum remove <package_name>
  • 清除缓存命令:
    • yum clean packages: 清除缓存目录下的软件包
    • yum clean headers: 清除缓存目录下的 headers
    • yum clean oldheaders: 清除缓存目录下旧的 headers
    • yum clean, yum clean all (= yum clean packages; yum clean oldheaders) :清除缓存目录下的软件包及旧的headers

配置文件

yum 的配置文件分为两部分:main 和 repository

main 部分定义了全局配置选项,整个yum 配置文件应该只有一个main。常位于/etc/yum.conf 中。
repository 部分定义了每个源/服务器的具体配置,可以有一到多个。常位于/etc/yum.repo.d 目录下的各文件中。
yum.conf 文件一般位于/etc目录下,一般其中只包含 main 部分的配置选项。

1
cat /etc/yum.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[main]
cachedir=/var/cache/yum/$basearch/$releasever # yum下载的RPM包的缓存目录,
# $basearch:显示基本架构类型
# 如为i386或i686等,则均返回i386,如为x86_64返回x86_64
# $releasever代表发行版本的版本号,我们是centos 7返回 7
# 查看目录为/var/cache/yum/x86_64/7
keepcache=0 # 缓存是否保存,1保存,0不保存
debuglevel=2 # debug信息输出级别(0-10),默认为2
logfile=/var/log/yum.log # 存放系统更新软件的日志的目录,可以查看更新的记录
exactarch=1 # 设置为1,则yum只会安装和系统架构匹配的软件包
obsoletes=1 # 这是一个update的参数,简单的说就是会更新陈旧的rpm包
gpgcheck=1 # 是否检查GPG(GNU Private Guard),一种密钥方式签名
plugins=1 # 是否允许使用插件,默认是0不允许,但是我们一般会用yum-fastestmirror这个插件
installonly_limit=5 # 允许保留多少个内核包
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=16&ref=http://bugs.centos.org/bug_report_page.php?category=yum
# bug跟踪的网站
distroverpkg=centos-release #定义了一个包名,通过这个包命yum就知道了系统的发行版
1
cd /etc/yum.repos.d/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@xf ~]# cd /etc/yum.repos.d/
[root@xf yum.repos.d]# ll
total 48
-rw-r--r-- 1 root root 1664 Sep 5 21:05 CentOS-Base.repo //yum 网络源的配置文件
-rw-r--r-- 1 root root 1309 Sep 5 21:05 CentOS-CR.repo
-rw-r--r-- 1 root root 649 Sep 5 21:05 CentOS-Debuginfo.repo
-rw-r--r-- 1 root root 314 Sep 5 21:05 CentOS-fasttrack.repo
-rw-r--r-- 1 root root 630 Sep 5 21:05 CentOS-Media.repo //yum 本地源的配置文件
-rw-r--r-- 1 root root 1331 Sep 5 21:05 CentOS-Sources.repo
-rw-r--r-- 1 root root 6639 Sep 5 21:05 CentOS-Vault.repo
-rw-r--r-- 1 root root 2424 Oct 19 05:57 docker-ce.repo
-rw-r--r-- 1 root root 1050 Sep 18 07:25 epel.repo
-rw-r--r-- 1 root root 1149 Sep 18 07:25 epel-testing.repo
-rw-r--r-- 1 root root 113 Jul 15 2014 nginx.repo

opkg

https://openwrt.org/zh/docs/techref/opkg

1
2
3
4
5
$ opkg list | grep tftpd
atftpd - 0.7-1 - TFTP server
tftpd-hpa - 0.48-3 - An enhanced version of the BSD TFTP server
$ opkg download tftpd-hpa
$ opkg install tftpd-hpa