Linux プラットフォームでは、ソフトウェア パッケージの種類はソース パッケージとバイナリ パッケージの2 つのカテゴリに分類できます。
ソフトウェアは Linux 上で実行されるバイナリ ファイルである必要があります。
ソース パッケージ: プログラム ソフトウェアのソース コード (一般に Tarball と呼ばれます)ソフトウェアのソース コードは tar でパッケージ化されてから圧縮されます。ソース コード パッケージは、作成者がソース プログラムをインターネット上で直接公開し、ソース ファイルを直接ダウンロードしてバイナリ プログラムにコンパイルして使用します。バイナリ パッケージ: Red Hat ディストリビューション パッケージの .rpm
、Debian ディストリビューションの .deb パッケージなど。
バイナリパッケージのインストール:
Linux には主に 2 つの派閥があります。
RedHatシリーズ:Redhat、Centos、Fedoraなど
一般的なインストールパッケージ形式は rpmパッケージ で
、rpmパッケージをインストールするコマンドはパッケージ管理ツールyumの「rpm -parameter」です。
Debian シリーズ: Debian、Ubuntu など
一般的なインストールパッケージ形式は deb package、deb パッケージをインストールするコマンドは「dpkg -parameter」
パッケージ管理ツールapt-get です、
両者の違いは dpkg は apt パッケージ管理をバイパスすることですデータベースを使用してパッケージを操作します。そのため、dpkg でインストールしたソフトウェア パッケージは、apt を使用して再度インストールできます。システムは、それが以前にインストールされたことを認識せず、以前の dpkg インストールを上書きします。
1. dpkg は .deb ファイルのインストールに使用されますが、モジュールの依存関係は解決されず、ubuntu ソフトウェア ウェアハウスのソフトウェアは考慮されません。ローカルの deb ファイルのインストールに使用できます。
2. Apt はモジュールの依存関係を解決してインストールし、ソフトウェア ウェアハウスを参照しますが、ローカルの deb ファイルはインストールしません Apt は、dpkg 上に構築されたソフトウェア管理ツールです。
rmp、yum、deb、および apt-getの違い:
RMP パッケージ
Rmp は LINUX 上で実行可能なソフトウェア プログラムであり、インストールするだけで済みます。この種のソフトウェア インストール パッケージは通常、RPM パッケージ (Redhat のパッケージ マネージャーである Redhat Linux Packet Manager) であり、接尾辞は です.rpm
。
Rmp は、Red Hat が Redhat Linux とともに提供するパッケージマネージャーであり、ソフトウェアのインストールをより簡単に実現できます。
注文:
rpm -ivh rpm包名 #安装软件,下面是参数说明
##-i :install ,安装
##-v : --verbose ,显示详细信息
##-h:–hash,进度条
##–nodeps :安装前不需要检查依赖
rpm -Uvh rpm包名 #升级软件
rpm -e rpm包名 #卸载软件,其中如果在加上选项–nodeps ,表示卸载软件时,不检查依赖。这样会使那些使用软件包的软件在此之后可能会不能正常工作
rpm -qpi rpm包名 #查询软件包的详细信息:执行
###由于软件包比较多,一般会采取过滤。类如: rpm -qa | grep rpm软件包
rpm -qf rpm包名 #查询某个文件是属于那个rpm包的
rpm -qpl rpm包名 #查该软件包会向系统里面写入哪些文件
debパッケージ
deb は tar パッケージをベースにした Unix システム (実際には主に Linux) 上のインストール パッケージであるため、ファイルのアクセス許可 (読み取り/書き込み/実行可能) と所有者/ユーザー グループが記録されます。Unix システムには権限、所有者、グループに関する厳しい要件があり、deb 形式のインストール パッケージにはシステムの下位レベルの操作が含まれることが多いため、権限の設定は特に重要です。
deb パッケージ自体は 3 つの部分で構成されています:データ パッケージ(実際にインストールされているプログラム データが含まれ、ファイル名は data.tar.XXX)、インストール情報と制御スクリプト パッケージ(deb のインストール手順、ロゴ、スクリプト、などで、ファイル名は control.tar .gz です。最後のファイルは 、ファイル ヘッダーやその他の情報を含むdeb ファイルのバイナリ データで、通常は表示されませんが、一部のソフトウェアで開くと表示されます。
deb 自体はさまざまな圧縮方法を使用できます。tar形式は圧縮形式ではなく、点在するファイルやディレクトリを直接収集し、そのパーミッションなどのデータ情報を記録します。前述の data.tar.XXX (XXX は圧縮されたサフィックス)。deb で使用されるデフォルトの圧縮形式は gzip 形式であるため、最も一般的なものは data.tar.gz です。一般的な圧縮形式には bzip2 と lzma があり、lzma が最も圧縮率が高くなりますが、圧縮に必要な CPU リソースと時間が比較的長くなります。
data.tar.gz には実際にインストールされるプログラム データが含まれており、インストール プロセス中にパッケージ内のデータはルート ディレクトリ (つまり / ) に直接解凍されるため、対応するファイル/ディレクトリ ツリーを設定する必要があります。
control.tar.gz には、 deb インストールに必要な制御情報が含まれています 。通常、ソフトウェア ID、バージョン番号、プラットフォーム、依存関係情報などのデータを記録するために使用される control、data.tar.gz を解凍する前に実行するスクリプト preinst、後に実行するスクリプト postinst の 5 つのファイルがあります。データの解凍; prerm、アンインストール時にファイルを削除する前に実行するスクリプト; postrm、ファイルの削除後に実行するスクリプト; Cydia システムでは、Cydia の作者である Saurik が、次のような別のスクリプト extrast_ を追加しました。ポストインスタ。
注文:
sudo dpkg -i xxx.deb # 安装软件包xxx.deb
sudo dpkg -R xxx # 安装目录xxx下所有的软件包
sudo dpkg -r xxx.deb # 卸载软件包xxx.deb,但是保留软件配置信息。有些软件会有个人设置的一些配置
sudo dpkg -P xxx.deb # 卸载软件包xxx.deb,且删除软件配置信息。
sudo dpkg -I xxx # 搜索软件包
sudo dpkg -l # 列出所有已安装的deb包,同时显示版本号以及简短说明
sudo dkpg -p xxx # 查看包的具体信息
sudo dkpg -L xxx # 查看一个软件包安装到系统里面的文件目录信息。很多人抱怨用了Ubuntu或者Debian以后,不知道自己的软件给安装到什么地方了,其实就可以用这个命令来查找
うーん
YUM (正式名 Yellow Dog Updater、Modified) は、Fedora、RedHat、および CentOS
のシェル フロントエンド パッケージ マネージャーです。RPM パッケージ管理に基づいて、指定したサーバーから RPM パッケージを自動的にダウンロード
してインストールし、依存関係を自動的に処理し、面倒な
ダウンロードとインストールを何度も繰り返すことなく、すべての依存ソフトウェア パッケージを一度にインストールできます。
注文
[root@localhost opt]# yum --help
已加载插件:fastestmirror, langpacks
Usage: yum [options] COMMAND
List of Commands:
check 检查 RPM 数据库问题
check-update 检查是否有可用的软件包更新
clean 删除缓存数据
deplist 列出软件包的依赖关系
distribution-synchronization 已同步软件包到最新可用版本
downgrade 降级软件包
erase 从系统中移除一个或多个软件包
fs Acts on the filesystem data of the host, mainly for removing docs/lanuages for minimal hosts.
fssnapshot Creates filesystem snapshots, or lists/deletes current snapshots.
groups 显示或使用、组信息
help 显示用法提示
history 显示或使用事务历史
info 显示关于软件包或组的详细信息
install 向系统中安装一个或多个软件包
langavailable Check available languages
langinfo List languages information
langinstall Install appropriate language packs for a language
langlist List installed languages
langremove Remove installed language packs for a language
list 列出一个或一组软件包
load-transaction 从文件名中加载一个已存事务
makecache 创建元数据缓存
provides 查找提供指定内容的软件包
reinstall 覆盖安装软件包
repo-pkgs 将一个源当作一个软件包组,这样我们就可以一次性安装/移除全部软件包。
repolist 显示已配置的源
search 在软件包详细信息中搜索指定字符串
shell 运行交互式的 yum shell
swap Simple way to swap packages, instead of using shell
update 更新系统中的一个或多个软件包
update-minimal Works like upgrade, but goes to the 'newest' package match which fixes a problem that affects your system
updateinfo Acts on repository update information
upgrade 更新软件包同时考虑软件包取代关系
version 显示机器和/或可用的源版本。
Options:
-h, --help 显示此帮助消息并退出
-t, --tolerant 忽略错误
-C, --cacheonly 完全从系统缓存运行,不升级缓存
-c [config file], --config=[config file]
配置文件路径
-R [minutes], --randomwait=[minutes]
命令最长等待时间
-d [debug level], --debuglevel=[debug level]
调试输出级别
--showduplicates 在 list/search 命令下,显示源里重复的条目
-e [error level], --errorlevel=[error level]
错误输出级别
--rpmverbosity=[debug level name]
RPM 调试输出级别
-q, --quiet 静默执行
-v, --verbose 详尽的操作过程
-y, --assumeyes 回答全部问题为是
--assumeno 回答全部问题为否
--version 显示 Yum 版本然后退出
--installroot=[path] 设置安装根目录
--enablerepo=[repo] 启用一个或多个软件源(支持通配符)
--disablerepo=[repo] 禁用一个或多个软件源(支持通配符)
-x [package], --exclude=[package]
采用全名或通配符排除软件包
--disableexcludes=[repo]
禁止从主配置,从源或者从任何位置排除
--disableincludes=[repo]
disable includepkgs for a repo or for everything
--obsoletes 更新时处理软件包取代关系
--noplugins 禁用 Yum 插件
--nogpgcheck 禁用 GPG 签名检查
--disableplugin=[plugin]
禁用指定名称的插件
--enableplugin=[plugin]
启用指定名称的插件
--skip-broken 忽略存在依赖关系问题的软件包
--color=COLOR 配置是否使用颜色
--releasever=RELEASEVER
在 yum 配置和 repo 文件里设置 $releasever 的值
--downloadonly 仅下载而不更新
--downloaddir=DLDIR 指定一个其他文件夹用于保存软件包
--setopt=SETOPTS 设置任意配置和源选项
--bugfix Include bugfix relevant packages, in updates
--security Include security relevant packages, in updates
--advisory=ADVS, --advisories=ADVS
Include packages needed to fix the given advisory, in
updates
--bzs=BZS Include packages needed to fix the given BZ, in
updates
--cves=CVES Include packages needed to fix the given CVE, in
updates
--sec-severity=SEVS, --secseverity=SEVS
Include security relevant packages matching the
severity, in updates
共通コマンド
install:安装rpm软件包
update:更新rpm软件包
check-update :检查是否有可用的更新rpm软件包
remove :删除指定的rpm软件包
list :显示软件包信息
clean :清理yum过期的缓存
deplist:显示yum软件包的所有依赖关系
ネットワークのyumソースを変更する
デフォルトのシステム YUM ソースは海外の Apache Web サイトに接続する必要があり、ネットワーク速度は比較的遅いですが、関連するネットワーク
YUM ソースを Netease 163、aliyun などの国内のミラー Web サイトに変更することができます。
1. まず wget をインストールします。wget は指定された URL からファイルをダウンロードするために使用されます
[root@hadoop101 ~] yum install wget
2. /etc/yum.repos.d/ ディレクトリで、デフォルトの repos ファイルをバックアップします。
[root@hadoop101 yum.repos.d] pwd
/etc/yum.repos.d
[root@hadoop101 yum.repos.d] cp CentOS-Base.repo CentOS-Base
.repo.backup
3. NetEase 163 または Aliyun のリポジトリ ファイルをダウンロードし、どちらかを選択します
[root@hadoop101 yum.repos.d] wget http://mirrors.aliyun.com/repo/Centos-7.repo //阿里云
[root@hadoop101 yum.repos.d] wget http://mirrors.163.com/.help/CentOS7-Base-163.repo //网易 163
4. ダウンロードしたリポジトリ ファイルを使用して、デフォルトのリポジトリ ファイルを置き換えます。
例: CentOS-Base.repo を CentOS7-Base-163.repo に置き換えます。
[root@hadoop101 yum.repos.d]# mv CentOS7-Base-163.repo CentOS-Base.repo
5. 古いキャッシュ データをクリーンアップし、新しいデータをキャッシュする
[root@hadoop101 yum.repos.d]#yum clean all
[root@hadoop101 yum.repos.d]#yum makecache
yum makecache 就是把服务器的包信息下载到本地电脑缓存起来
6. テスト検証
[root@hadoop101 yum.repos.d]# yum list | grep firefox
[root@hadoop101 ~]#yum
適切な
apt は Linux のパッケージ管理ツールです。
apt は、Ubuntu、Debian、および関連する Linux ディストリビューションで deb パッケージをインストール、更新、削除、管理するためのコマンド ライン ユーティリティです。
apt は対話的に使用するように設計されています。apt-get と apt-cache は異なるバージョン間で下位互換性があり、より多くのオプションと機能を備えているため、シェル スクリプトで apt-get と apt-cache を使用することをお勧めします。
ほとんどの apt コマンドは、sudo 権限を持つユーザーとして実行する必要があります。
apt update
#从软件源服务器获取最新的软件信息并缓存到本地。
#因为很多apt的其他命令都是要通过比对版本信息来进行操作的,如果每次都去对比线上的版本信息效率肯定不理想,也没必要,所以做了一个缓存的机制。
apt upgrade
# 从本地仓库中对比系统中所有已安装的软件,如果有新版本的话则进行升级
apt list
#列出本地仓库中所有的软件包名
apt list [package]
#从本地仓库中查找指定的包名,支持通配符,比如"apt list zlib*“就能列出以zlib开头的所有包名
apt list --installed
#列出系统中所有已安装的包名
apt search [key]
#与list类似,通过给出的关键字进行搜索,列出所有的包和其描述
apt show [package]
#列出指定包的详细情况,包名要填写完整。
apt install [package]
#安装指定的包,并同时安装其依赖的其他包。
apt remove [package]
#卸载包,但不删除相关配置文件。包名支持通配符
apt autoremove
#卸载因安装软件自动安装的依赖,而现在又不需要的依赖包
apt purge [package]
#卸载包,同时删除相关配置文件。包名支持通配符
apt clean
#删除所有已下载的软件包
apt autoclean
#类似clean,但删除的是过期的包(即已不能下载或者是无用的包)
予防:
- apt と apt-get の違い
apt コマンドの導入は、コマンドが分散しすぎているという問題を解決するためであり、apt-get コマンドの登場以降、最も広く使用されている関数オプションに加え、apt-cache や apt であまり使用されない関数も含まれています。 -config コマンド。
apt コマンドを使用する場合、ユーザーは apt-get から apt-cache または apt-config に移動する必要がなくなり、apt はより構造化され、パッケージを管理するために必要なオプションをユーザーに提供します。
- /etc/apt/sources.list
- パッケージ管理ツールによって使用される構成ファイルで、パッケージ リポジトリの場所を記録するのに適しています。
ソースパッケージのインストール
ソース コードのインストールの一般的な手順は次のとおりです。
1、下载源码包并解压到指定目录; //一般将源码包解压至目录/user/local/src下
2、预编译(配置)./configure; //设置安装目录,安装模块等选项
3、编译 make; //生成可执行二进制文件
4、安装make install; //复制二进制文件到系统,配置应用环境
Configure是一个可执行脚本,它有很多选项,在待安装的源码路径下使用命令./configure–help输出详细的选项列表; 配置这一步骤:把系统环境的检测结果和定义好的功能选项写入Makefile文件中,为了后续的编译和安装做铺垫
其中./configure --prefix==安装路径,来指定安装路径,一般情况下默认的安装路径为/usr/local--prefix选项是配置安装的路径,如果不配置该选项,安装后可执行文件默认放在/usr/local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc,其它的资源文件放在/usr/local/share,比较凌乱;
如果配置--prefix,如:./configure --prefix=/usr/local/test
可以把所有资源文件放在/usr/local/test的路径中,不会杂乱;
用了—prefix选项的另一个好处是卸载软件或移植软件。当某个安装的软件不再需要时,只须简单的删除该安装目录,就可以把软件卸载得干干净净;移植软件只需拷贝整个目录到另外一个机器即可(相同的操作系统);
make会调用gcc编译器,读取makefile文件中的信息进行系统软件编译。将源码程序转化为可以被linux系统所识别的可执行文件
如果在./configure或者make编译中报错,那么我们在重新执行前一定要执行make clean命令,系统清空Makefile文件或编译产生的.o开头的文件;
make install是用来安装的,它从Makefile中读取指令,安装到指定的位置。只有在执行install的时候才会向指定的安装目录写入文件。
当然要卸载程序,也可以在原来的make目录下用一次make uninstall,但前提是make文件指定过uninstall;