搜档网
当前位置:搜档网 › linux的软件安装和管理之deb

linux的软件安装和管理之deb

linux的软件安装和管理之deb
linux的软件安装和管理之deb

linux的软件安装和管理之deb

linux的软件包概述

早期的Linux软件安装基本是手动安装,对初学者带来很大的不便,所以各个Linux的发行版开始提供封装好的软件包供用户快速安装,经过多年的竞争发展,目前Linux 的软件包常用的封装形式有两类,一类是rpm,用于Red Hat Linux 以及其衍生Linux系统,一类是deb,用于debian以及其衍生Linux 系统如ubuntu,针对rpm的软件包管理器叫rpm,在线升级的安装维护软件为yum,针对deb的软件包管理器叫dpkg,在线升级的安装维护软件为apt。

1 什么是RPM

RPM是一个开放的软件包管理系统,最初的全称是Red Hat Package Manager。它工作于Red Hat Linux以及其它Linux系统,成为了Linux中公认的软件包管理标准。红帽子软件公司鼓励其他厂商来了解RPM并在自己的产品中使用它。RPM的发布基于GPL协议。随着RPM在各种发行版本的广泛使用,如今RPM的全称是RPM Package Manager。RPM由RPM社区负责维护,可以登录到RPM的官方站点http://www.rpm .org/查询最新的信息。

2 什么是dpkg管理包

dpkg is the software at the base of the Debian package management system. dpkg is used to install, remove, and provide information about .deb packages.dpkg itself is a low level tool; higher level tools, such as APT, are used to fetch packages from remote locations or deal with complex package relations. Tools like aptitude or synaptic are more commonly used than dpkg as they have a more sophisticated way of dealing with package relationships and a friendlier interface.

The Debian package "dpkg" provides the dpkg program, as well as several other programs necessary for run-time functioning of the packaging system, including dpkg-statoverride, dpkg-divert and update-alternatives. It also includes the programs such as start-stop-daemon and install-info, and the latter is kept mostly due to backwards compatibility(it is developed and distributed separately nowadays). The Debian package "dpkg-dev" includes the numerous build

tools described below.

History

dpkg was originally created by Matt Welsh, Carl Streeter and Ian Murdock, first as a Perl program, and then later the main part was rewritten in C by Ian Jackson in 1993. The name dpkg was originally the short for "Debian package", but the meaning of that phrase has evolved significantly, as dpkg the software is orthogonal to the deb package format as well as the Debian Policy which defines how Debian packages behave.

3 为什么使用软件包管理器(Package Manager)

使用软件包管理器最大的好处在于它提供快速之安装,减少编译安装之侦错困扰。对于最终用户来说,软件包管理器所提供的众多功能使维护系统要比以往容易的多。安装、卸载和升级软件包管理器软件包均只需一条命令即可完成,所有烦琐的细节问题无须您费心。软件包管理器维护一个所有已安装的软件包和文件的数据库,可以让您进行功能强大的软件包查询和验证升级工作。在软件包升级过程中,软件包管理器会对配置文件进行特别处理,因此您绝对不会丢失以往的定制信息——这对于直接使用.源代码tar.gz文件编译是不可能的。对于程序员,软件包管理器可以让您连同软件的源代码打包成源代码和二进制软件包供最终用户使用。这个过程十分简单,整个过程由一个主文件和可能的补丁程序组成。软件包管理器在软件的新版本发布时,这种“原始”源代码,补丁程序和软件生成指令的清晰描述简化了软件包的维护工作。

4 软件包管理器的功能

简言之,软件包管理器具有如下五大功能:

安装——将软件从包中解出来,并且安装到硬盘。

卸载——将软件从硬盘清除。

升级——替换软件的旧版本。

查询——查询软件包的信息。

验证——检验系统中的软件与包中软件的区别。

因此,看到一个软件包管理器包的文件名之后就可以获得该软件包的大致信息了。

5 从何处获得软件包

从发行套件的C D中查找

从各linux发行版软件的主站点查找下载

从需要的软件发行者的站点下载

ubuntu 安装程序的两种方式

在ubuntu里,用于安装的二种软件格式(不包括用wine或其它虚拟安装的)。

一是Binary package(.deb包),二进制包包含可执行文件、配置文件、帮助文件、版权声明和其他文档,ubuntu系统是从debian发展而来的,软件安装也沿用了debian的格式,这个是最方便的,如果软件有.deb包的话最好下载这个来安装

二是source package(源码包一般是压缩成tar.gz格式的),,你下载下来解压需要编译安装才能用。

安装软件的方式。

一、图形界面安装

1.点击应用程序-添加/删除程序或软件中心,启动程序,出现供用户选择的软

件安装列表,点击确定后即可安装,也可以删除

2.使用新立得软件包管理器(synaptic package manager)

点击系统-系统管理- synaptic 软件包管理器,启动程序,需要root的权限。点击左边的软件分类,再在右边选择需要的软件右击再选择安装、升级、删除等操作

3.安装更新,使用更新管理器

点击系统-系统管理-更新程序,可以更新软件和系统

备注:在用法上,添加/删除程序主要是安装常用的应用软件,新立得软件包管理器可以安装所有软件包,特别是安装系统软件如开发工具、系统工具等。安装时一般要求我们能连到Internet在线安装,为了提高速度,可以选择更快的软件源服务器。

二、终端命令行安装

a)使用DPKG命令

Linux 系统中,软件通常以源代码或者预编译包的形式提供。软件源代码需要编译为二进制的机器代码才能够使用,安装比较耗时,不过您可以自行调

节编译选项,决定需要的功能或组件,或者针对硬件平台作一些优化。预编译的软件包,通常是由软件的发布者进行编译,您只要将软件拷贝到系统中就可以了。

考虑到预编译软件包的适用性,预编译软件包通常不会针对某种硬件平台优化。它所包含的

功能和组件也是通用的组合。

Ubuntu 系统中,软件通常以deb 格式的包文件发布,它是一种预编译软件包。deb 包中除了包含已编译的软件,通常还包括软件的拷贝路径、对其它软件包的依赖关系纪录、比较通用的配置文件以及软件的描述、版本、作者、类别、占用空间等信息。

deb 软件包命令遵行如下约定:

soft_ver-rev_arch.deb

soft:软件包名称

ver :软件版本号

rev :Ubuntu 修订版本号

arch :目标架构名称

例如:azureus_2.4.0.2-0ubuntu2_all.deb

您需要使用 dpkg 命令来管理 deb 软件包:

dpkg -i --install xxx.deb 安装 deb 软件包

dpkg -r--remove xxx.deb 删除软件包

Dpkg -r-P--purge xxx.deb 连同配置文件一起删除

dpkg -I -info xxx.deb 查看软件包信息

dpkg -L xxx.deb 查看包内文件

dpkg -l 查看系统中已安装软件包信息

dpkg-reconfigure xxx 重新配置软件包

有些时候,您使用dpkg 安装一个软件包,系统会提示您该软件包依赖其它软件包。这时,您先安装其它软件包,直到满足依赖关系为止。或者同时安装多个软件包

dpkg -i aaa.deb bbb.deb ccc.deb

b)APT

如果一个软件依赖关系过于复杂,使用dpkg 来安装它,并不是一个明智的选择,这个时候您就需要用到APT 软件包管理系统。APT 可以自动的检查依赖关系,通过您预设的方式来获得相关软件包,并自动安装配置它。事实上,在多数情况下,我们推荐您使用APT 软件包管理系统。APT 系统需要一个软件信息数据库和至少一个存放着大量deb 包的软件仓库,我们称之为源。源可以是网络服务器,安装CD 或者本地软件仓库。

您需要修改

/etc/apt/sources.list 文件,使APT 系统能够连接到源。

从以下页面中获得网络安装源的列表,并且根据您的网络环境,选择速度较快的源。

APT 系统主要包括apt-get 和apt-cache 等命令。通常是复合命令,包含若干个子命令。apt-get install xxx 安装xxx

-d 仅下载

-f 强制安装

apt-get remove xxx 卸载xxx

apt-cache search 搜索软件包

更新系统中的软件

首先使用sudo apt-get update 更新软件信息数据库/更新源(主要升级应用软件)

接着使用sudo apt-get upgrade 进行软件升级(更新已安装的包)

最后使用sudo apt-get dist-upgrade 升级系统(一般不需要)

Tip:

1、建议您经常使用sudo apt-get update 命令来更新您的软件信息数据库。

2、APT系统修复:由于各种意外,APT 系统可能会出现问题,使用如下命令,尝试进行修复:

apt-get -f install

c)源码包

对于绝大多数软件,我们建议您使用APT 系统来安装它。在少数情况下,例如某软件没有以deb 包的格式发布,或者需要定制适合自己的软件,您可以通过编译源代码的方式安装它。

首先需要下载软件的源码包,并且将它解包为一些源代码文件。并了便于管理,建议将下载的源码包移动到/usr/local/src/ 目录下,并在这里解包。

sudo mv xxx.tar.gz /usr/local/src 移动源码包

cd /usr/local/src 进入“/usr/local/src/”目录

sudo tar -xzvf xxx.tar.gz 解源码包

cd xxx_ver/ 进入解包后的源码目录

源码目录中通常有一个configure 脚本,用来配置即将开始的编译过程。您可以执行它sudo ./configure [--prefix=/usr/loca/xxx ......]

它会自动检测软件的编译环境和依赖关系,并且生成Makefile 文件。

使用带参数的命令./configure --help ,或者阅读INSTALL 文件,查看该

脚本允许的参数。例如使用--prefix=/usr/local/xxx 参数,将软件的安装

目录设定为/usr/local/xxx/ 。(如果一定要将软件安装在单独目录下,建

议您安装在这里)

执行make 命令,系统会根据Makefile 文件中的设定,通过make 工具调用编译器和所需资源文件,将源代码编译成目标文件。

sudo make

执行make install 命令,make 工具会自动连接目标文件和库文件,将最终生成的文件拷贝到Makefile 文件设定的路径中,并且完成更改文件的属性,删除残留文件等活动。

sudo make install

现在,编译安装已经完成,为了更方便的使用它,需要给程序的可执行文件作一个符号链接。

sudo ln -sf /usr/local/xxx/可执行文件/usr/local/bin/可执行

文件

Tip:为了顺利的进行编译,至少需要安装build-essential 软件包。

sudo apt-get install build-essential

例子:

3种方法安装ftp server 软件Very Secure FTP Daemon

首先检测是否安装

使用dpkg -l vsftpd

有安装,则卸载:sudo dpkg -r vsftpd.deb

没有安装则:

1、在cd中pool-v目录下找到vsftpd.deb

复制到主目录中,进入终端方式

使用如下命令安装

dpkg -i vsftpd.deb

2、在线使用apt安装

运行命令:

sudo apt-get install vsftpd

3、使用编译安装

①下载vsftpd源码

wget https://https://www.sodocs.net/doc/8417873158.html,/downloads/vsftpd-2.3.4.tar.gz

②编译vsftpd源码

64位的系统编译之前先要执行cp /lib64/libcap.so.1 /lib/libcap.so.1命令:

tar xzvf vsftpd-2.3.4.tar.gz // 解压源码包

cd vsftpd-2.3.4

make

make install

③配置vsftpd

cp vsftpd.conf /etc

cp RedHat/vsftpd.pam /etc/pam.d/ftp

sed i 's/anonymous_enable/#anonymous_enable=YES/g' /etc/vsftpd.conf

sed i 's/#local_enable=YES/local_enable=YES/g' /etc/vsftpd.conf

sed i 's/#write_enable=YES/write_enable=YES/g' /etc/vsftpd.conf

sed i 's/#local_umask=022/local_umask=022/g' /etc/vsftpd.conf

sed i 's/#chroot_local_user=YES/chroot_local_user=YES/g' /etc/vsftpd.conf

④启动vsftpd并设置开机启动

/usr/local/sbin/vsftpd &

sed -i '$a\/usr/local/sbin/vsftpd &' /etc/rc.d/rc.local

⑤添加FTP用户(用户名:ftpuser ftp根目录/home/wwwroot/ftpuser)

useradd -d /home/wwwroot/ftpuser -g ftp -s /sbin/nologin ftpuser

实验要求:

1、安装常用软件mplayer,wine

2、安装系统软件Gparted

3、更新系统中的软件

首先使用apt-get update 更新软件信息数据库/更新源(主要升级应用软件)接着使用apt-get upgrade 进行软件升级(更新已安装的包)

最后使用sudo apt-get dist-upgrade 升级系统(一般不需要)

4、3种方法安装ftp server 软件Very Secure FTP Daemon

《实用操作系统》实验报告五linux设备管理

《实用操作系统》实验报告 实验报告: 5 实验项目名称:设备管理 班级:学号:姓名: 地点:时间:2013 年11 月13 日 一、实验内容 1、添加硬盘,创建二个主分区、一个扩展分区,二个逻辑分区 注意:ide、scsi 提示:分区、格式化、挂载(fdisk,mkfs,mount) 2、查看常见的设备文件有哪些?(ls /dev ) 常见的设备文件:/dev/hd* IDE接口的硬盘(IDE接口的设备) /dev/sd* SCSI/USB设备/dev/cua* 串口设备/dev/lp* 并口设备/dev/tty* 终端设备/dev/consol 控制台设备/dev/eth* 以太网设备/dev/cdrom IDE光驱/dev/fd* 软驱/dev/audio 音频设备/dev/scd SCSI的光驱/dev/ppp PPP设备/dev/isdn* ISDN设备 3、挂载光盘,查看光盘内容创建挂载点要求:以本人姓名缩写为目录mkdir / 目录/设备挂载mount 空格源设备空格挂载点 4、显示管理System-config-display 5、声卡管理System-config-soundcard 6、打印机管理System-config-printer 7、网卡管理System-config-network 二、实验步骤及结果 1.添加硬盘,创建分区; 在启动虚拟机前,在工具栏中点击“虚拟机”,找到“设置”选项,在左面的硬件中找到硬盘,进行硬盘设备添加,这里有IDE和SCSI两种硬盘类型可供选择添加。完成硬盘添加后即可启动虚拟机进入linux系统。在这我添加了容量相同的硬盘设备类型各一;

实验六 Linux软件包管理与基本网络配置

实验六Linux软件包管理与基本网络配置 一. 一.实验目的: 1.1.学会find命令的使用方法; 2.2.学习利用rpm和tar命令实现软件包的管理; 3.3.掌握如何在Linux下的TCP/IP网络的设置; 4.4.学会使用命令检测网络配置; 5.5.学会启用和禁用系统服务。 二. 二.实验内容: 1.1.利用find命令查找满足条件的文件; 2.2.利用rpm和tar命令管理软件包; 3.3.使用ifconfig命令配置网络接口; 4.4.使用route命令加默认网关; 5.5.使用hostname命令设置主机名; 6.6.修改/etc/hosts实现Linux的静态地址解析; 7.7.修改/etc/resolv.conf配置Linux的DNS客户端; 8.8.使用ping、netstat命令检测配置; 9.9.设置系统启动时自动配置网络参数; 10.10.用service命令和ntsysv命令控制守护进程。 三. 三.实验练习: 任务一 rpm软件包的管理 本部分实验内容按照课本P171-P178页的各个小的实验内容进行练习。 任务二 find命令的使用 1.1.在/var/lib目录下查找所有文件其所有者是games用户的文件。 $ find /var/lib –user games 2> /dev/null 2.2.在/var目录下查找所有文件其所有者是root用户的文件。 $ find /var –user root –group mail 2>/dev/mull 3.3.查找所有文件其所有者不是root,bin和student用户并用长格式显示(如ls –l 的显示结果)。$ find / -not –user root –not –user bin –not –user student –ls 2> /dev/null or $find / ! –user root ! –user bin ! –user student –exec ls –ld {} \; 2> /dev/null 4.4.查找/usr/bin目录下所有大小超过一百万byte的文件并用长格式显示(如ls –l 的显示结果)。$ find /usr/bin –size +1000000c –ls 2> /dev/null 5.5.对/etc/mail目录下的所有文件使用file命令。 $find /etc/maill –exec file {} \; 2 > /dev/null

Linux命令大全(设备管理)

设备管理-setleds 名称:setleds 使用权限:一般使用者 使用方式: setleds [-v] [-L] [-D] [-F] [{+|-}num] [{+|-}caps] [{+|-}scroll]说明: 用来设定键盘上方三个LED 的状态。在Linux 中,每一个虚拟主控台都有独立的设定。 参数: -F 预设的选项,设定虚拟主控台的状态。 -D 除了改变虚拟主控台的状态外,还改变预设的状态。 -L 不改变虚拟主控台的状态,但直接改变LED 显示的状态。这会使得LDE 显示和目前虚拟主控台的状态不符合。我们可以在稍后用-L 且不含其它选项的setleds 命令回复正常状态。 -num +num 将数字键打开或关闭。 -caps +caps 把大小写键打开或关闭。 -scroll +scroll 把选项键打开或关闭。 范例: 将数字键打开,其馀二个灯关闭。 # setleds +num -caps -scroll 设备管理-loadkeys 名称: loadkeys 使用权限: 所有使用者

使用方式: loadkeys [ -d --default ] [ -h --help ] [ -q --quiet ] [ -v --verbose [ -v --verbose ]...] [ -m --mktable ] [ -c --clearcompose ] [ -s --clearstrings ] [ filename... ] 使用说明: 这个命令可以根据一个键盘定义表改变linux 键盘驱动程序转译键盘输入过程。详细的说明请参考dumpkeys。 选项: -v --verbose 印出详细的资料,你可以重复以增加详细度。 -q --quiet 不要显示任何讯息。 -c --clearcompose 清除所有composite 定义。 -s --clearstrings 将定串定义表清除。 相关命令: dumpkeys 设备管理-rdev 名称:rdev 使用权限:所有使用者 使用方式:使用这个指令的基本方式是:rdev [-rsvh ] [-o offset ] [ image [value [ offset ] ] ] 但是随著使用者想要设定的参数的不同,底下的方式也是一样: rdev [ -o offset ] [ image [ root_device [ offset ] ] ] swapdev [ -o offset ] [ image [ swap_device [ offset ] ] ] ramsize [ -o offset ] [ image [ size [ offset ] ] ] videomode [ -o offset ] [ image [ mode [ offset ] ] ] rootflags [ -o offset ] [ image [ flags [ offset ] ] ]

Netbackup设备管理之Linux篇

Netbackup设备管理之Linux篇 在备份软件的使用过程中,关于磁盘、磁带的治理一样会花费储备治理员专门大比例的时刻和精力。因此,关于设备的治理的方便程度,是衡量一个备份软件好坏的重要的标准。Netbackup作为业界最为知名的备份软件之一,能够为用户提供最为方便的设备治理操作。 现在,随着Redhat和SuSE以及oracle Linux的日益成熟,越来越多的用户选择使用Linux平台来部署其商用环境。这就要求储备设备治理员能够在各种Linux平台的操作和使用各种硬件设备。然而,尽管Netbackup在不同的操作系统上提供了统一的治理界面,然而由于操作系统的差异,使得系统治理员不得不自己配置新购置的磁盘阵列和磁带库,使得其能够被Netback up识不和有效利用。本文介绍的重点在Linux上面的设备治理,使得Netbac kup能够能够正确的识不AIX操作系统上的磁盘阵列、机械手和磁带库等设备。具体的Netbackup中如何使用差不多识不的设备的内容,在各个操作系统是没有差异的,它们将会在后面的文章中予以介绍。 一,检查Netbackup软件的兼容性列表 用户在配置设备时,第一需要注意的情况是检查该软件的兼容性列表,检查该软件是否支持用户当前正在使用的操作系统版本和磁盘、磁带等设备。一样来讲,使用主流的操作系统和应用广泛的设备,都可不能有什么咨询题。然而如果用户使用的是比较专门的应用环境,那么就需要提早检查一下兼容性列表了,以免在使用过程中显现错误,一样来讲这种错误都不容易诊断出来。 二,确认驱动程序差不多安装: # lsmod |grep st 确认已在内核中安装或装入了 sg (机械手)设备驱动程序。此驱动程序承诺向 SCSI 磁带机发出PASSTHRU 命令和操纵机械手设备。

实验九Linux设备管理实验

实验九Linux设备管理实验 一、实验目的: 掌握linux系统重定向、管道操作和设备管理的法。 二、预备知识 1.标准的输入输出和重定向 执行一个shell命令行时通常会自动打开三个标准文件,即标准输入文件(stdin,通常对应终端的键盘);标准输出文件(stdout)和标准错误输出文件(stderr),这两个文件都对应终端的屏幕。进程将从标准输入文件中得到输入数据,将正常输出数据输出到标准输出文件,而将错误信息送到标准错误文件中。 用户在输入输出数据时存在以下问题: ●从终端输入数据时,用户输入的数据只能用一次,如果下次再想用这些 数据时就得重新输入。而且在终端上输入时,项输入有误修改起来不是 很便。 ●输出到屏幕上的信息只能看不能动,无法对此输出作更多处理,如将作 为另一命令的输入进行进一步的处理等。 为了解决上述问题,Linux系统为输入输出的传送引入了另外两种机制,即输入输出重定向。输入重定向是指把命令(或可执行程序)的标准输入重定向到指定的文件中。也就是说,输入可以不来自键盘,而来自一个指定的文件。因此,输入重定向主要用于改变一个命令的输入源,告别是改变那些需要大量输入的输入源。输出重定向是批把命令(或可执行程序)的标准输出或标准错误输出重定

向到指定文件中。这样,命令的输出就不显示在屏幕上,而是写入到指定文件中。2.管道 将一个程序或命令的输出作为另一个程序或命令的输入可有两种法,一种是通过一个临时文件将两个命令或程序联系在一起;另一种是Linux所提供的管道功能,这种法比前一种法更好。管道可以把一系列命令连接起来,这就意味着第一个命令的输出会将为第二个命令的输入通过管道传给第二个命令,而第二个命令的输出又作为第三个命令的输入,以此类推。显示在屏幕上的是管道行中最后一个命令的输出(如果命令行中示使用输出重定向)。用户还可以通过使用管道符“|”来建立一个管道行。 3.文件备份和压缩 参见第二章相关的ppt。 三、实验容和实验步骤(实验情况请截图和说明) 1.基本实验 (1)标准输入输出文件使用 通过wc命令统计指定文件包含的行数、单词数和字符数。 实验步骤一:在命令提示符输入ls,显示当前目录下的文件。 [m112013@tan ~]$ ls ch4 ch5 lab1 lab2 lab3 lab4 lab5 lab6 lab7 lab8 lab9 subdir [m112013@tan ~]$ cd lab9 [m112013@tan lab9]$ ls test.c

Linux系统软件包集合(中文)

AbiWord: a full-featured word processor 代码:一个全功能的文字处理器 AfterStep:对X中的窗口管理器下一个外观和感觉 Alpine: a text-based MIME email client based on Pine Alpine:松基于文本的MIME邮件客户端 alsa-lib: an audio library for use with the ALSA kernel modules ALSA-lib目录下:用于与ALSA内核模块使用音频库 Apache-Tomcat:一个Java Servlet和JSP容器 APT:前端为dpkg包管理ATI驱动程序:到XFree86/ https://www.sodocs.net/doc/8417873158.html,由ATI的Catalyst系列专有Linux 显示驱动程序 Audacity的:一个免费的音频编辑器 Autoconf的:一个包M4宏制作脚本自动配置源代码 GNU Automake的:用于自动生成Makefile文件的工具 Avidemux的:一个免费的视频编辑器,可用于简单的切割,过滤和编码任务awesome:一个可配置的窗口管理器对于x Banshee: 音乐管理及播放应用程序的GNOME Bash: an sh-compatible command language interpreter Bash:一个sh兼容的命令语言解释 ISC BIND: an implementation of the Domain Name System (DNS) protocols ISC BIND:域名系统(DNS)协议的实现 IGNU Binutils: an essential collection of binary utilities IGNU Binutils:二进制实用的必备收藏 Bison: a replacement for the parser generator Yacc Bison: 替换为解析器生成的Yacc Bitcoin: an innovative payment network and a new kind of money 比特币:一种创新的支付网络和一种新的货币

Linux操作系统应用程序的安装与管理技巧

Linux操作系统应用程序的安装与管理技巧 1、Linux应用程序基础 2、RPM包管理 包管理系统初步: RPM:RPM Package Manager RPM包管理系统: $ rpm RPPM包的文件名称: bash-3.0-19.2.i386.rpm bash:软件名称。 3.0-19.2:软件的版本号。 i386:软件所运行的最低硬件平台。 rpm:文件的扩展名,用来标识当前文件是rpm格式的软件包。 RPM包管理功能: rpm命令配合不同的参数可以实现以下的rpm包的管理功能: 查询已安装在linux系统中的RPM软件包的信息。 查询RPM软件包安装文件的信息。 安装RPM软件包到当前linux系统。 从当前linux系统中卸载已安装的RPM软件包。 从当前linux系统中升级已安装的RPM软件包。 使用rpm命令查询软件包: 1、查询系统中安装的所有RPM包

$ rpm -qa 查询当前linux系统中已经安装的软件包。 例:$ rpm -qa | grep -i x11 | head -3 察看系统中包含x11字符串的前3行软件包。 2、查询软件包是否安装 $ rpm –q rpm包名称察看系统中指定软件包是否安。 例: $ rpm -q bash 察看系统中bash软件包是否安装。 "rpm -q"命令中指定的软件包名称需要准确的拼写,该命令不会在软件包的名称中进行局部匹配的查询。 3、查询已安装软件包详细信息 $ rpm –qi RPM包名称查询linux系统中指定名称软件包的详细信息。 例:$ rpm -qi bash 察看bash软件包的详细信息。 "rpm -qi"命令的执行结果中包含较详细的信息,包括:软件名称,版本信息,包大小,描述,等。 4、查询已安装软件包中的文件列表 $ rpm –ql RPM包名称查询已安装软件包在当前系统中安装了哪些文件。 例:$ rpm -ql bash | head -3 查看bash软件在系统中已安装文件的前3行文件列表。 $ rpm -ql bash | grep bin 用过滤方式察看bash中包含bin字符串的文件列表。 5、查询系统中文件所属的软件包 $ rpm –qf 文件名称查询linux系统中指定文件所属的软件包。 例:$ rpm -qf /bin/bash 察看bash文件所属的软件包。 bash-3.0-19.2 显示结果。 6、查询RPM安装包文件中的信息 $ rpm –qpi RPM包文件名察看RPM包未安装前的详细信息。

linux软件包的管理-自己总结-附实例

目录 Linux软件包管理 (2) 二进制软件包管理(RPM,YUM) (2) 软代码包安装 (3) 脚本安装 (3) ATP报管理(ubantu) (3)

Linux软件包管理 二进制软件包管理(RPM,YUM) RPM(RedHat package management): 安装:rpm ivh sudo-1.7.2pl-5.el5.i386.rpm 软件名称-版本号-发行号.硬件平台 卸载:rpm –e sudo (rpm --nodeps sudo) 软件包有依赖性关系,卸载时会产生提示信息,可使用后面的语句进行强行卸载 挂载光盘:mkdir /mnt/cdrom Mount /dev/cdrom /mnt/cdrom 查看软件是否安装:rpm –q sudo rpm –qa | grep samba rpm –qf sudo (查询所述的软件包) rpm –qi sudo rpm –qip sudo (查询已安装或未按装软件包的描述信息) rpm –ql sudo rpm –qlp sudo (查询软件包安装的文件) rpm –qd sudo rpm –qdp sudo (查询软件包帮助文档) rpm –qc sudo rpm –qcp sudo (查询软件包配置文件) 校验:rpm –V sudo 提示:5 md5校验值内容变化(md5sum /etc/services) S 文件大小变化 T 文件的时间 M 权限变化 U 文件的所有者变化 G 文件的用户组变化 L 连接文件变化 D 设备文件变化 软件包文件提取: 压缩所有文件到当前目录 rpm2cpio /mnt/cdrom/CentOS/initscripts-8.45.30-2.el5.centos.i386.rpm | cpio –idv 压缩指定文件到当前目录 rpm2cpio /mnt/cdrom/CentOS/initscripts-8.45.30-2.el5.centos.i386.rpm | cpio –idv ./etc/inittab 其他安装选项:rpm –ivh --excludedocs sudo-1. 7.2pl-5.el5.i386.rpm (不安装文档内容) rpm –ivh --prefix PATH sudo-1. 7.2pl-5.el5.i386.rpm (将软件包安装到由PATH指定的路径下) rpm –ivh --test sudo-1. 7.2pl-5.el5.i386.rpm (只对安装进行测试,并不实际安装) rpm –ivh --replacepkgs sudo-1. 7.2pl-5.el5.i386.rpm(覆盖安装该软件包) rpm –ivh --replacefiles sudo-1. 7.2pl-5.el5.i386.rpm(文件冲突,覆盖) rpm –Uvh sudo-1. 7.2pl-5.el5.i386.rpm(升级软件包)

linux设备管理命令

linux设备管理命令 1.1 stty [语法]: stty [-a] [-g] [选项] [说明]: 本命令设置终端,无参数时报告终端设置,本命令功能十分强大,应谨慎使用,下面仅介绍部分常用功能 ?-a 显示当前终端所有设置 ?-g 以能作为 stty 命令参数的方式显示终端设置以下是终端常用设置,在设置前加-表示清除设置: o1.控制方式,ispeed 0 110 300 600 1200 1800 2400 4800 9600 19200 38400,本命令设置终端输入波特率,若为0则使用缺省波 特率。例如 stty ispeed 9600 ospeed 0 110 300 600 1200 1800 2400 4800 9600 19200 38400本命令设置终端输出波特率,参看 ispeed。 o2.输入方式 ?ingbrk(-ignbrk) 忽略(不忽略)中断(BREAK) ?brkint(-brkint) 设置(清除)信号INTR为中断信号 ?inlcr(-inlcr) 将换行转换(不转换)成回车 ?icrnl( -icrnl) 将回车转换(不转换)成换行 ?igncr(-ignrc) 忽略(不忽略)回车 ?iuclc( -iuclc) 将大写字母转换(不转换)成小写字母o3.输出方式 ?olcut(-olcut) 将小写字母转换(不转换)为大写字母 ?onlcr(-onlcr) 输出时将换行符转换(不转换)为回车换行 ?ocrnl(-ocrnl) 输出时将回车符转换(不转换)为换行符o4.本地方式 ?echo (-echo) 设置(清除)回显 ?stwrap(-stwrap) 截断(不截断)大于79个字符的行 ?echoctl(-echoctr) 将控制键回显为^ 1.2 tty [语法]: tty [说明]: 显示出终端的设备名 [例子]: tty 1.3 lp [语法]: lp 文件... [说明]: 将文件送打印机打印 [例子]: lp myfile将文件myfile 送打印机输出 1.4 lpstat [语法]: lpstat [选项] [打印任务号] [说明]: 显示打印机状态,选项的意义如下:

Linux统一设备管理平台platform之设备注册流程V2版-李枝果

Linux lizhiguo0532@https://www.sodocs.net/doc/8417873158.html, --------------------------------------------------------------------------------------------------------------------- https://www.sodocs.net/doc/8417873158.html,/sz_farsight ---------------------------------------------------------------------------------------------------------------------- linux-2.6.14 1. linux2.6 platform_device platform_driver Linux Platform_device Platform_driver platform driver device driver ( driver_register ) platform platform device 2.s3c2410 3. a. :include\linux\ioport.h struct resource { const char *name; /* */ unsigned long start, end; /* cpu * start cpu * end */ unsigned long flags; /* */ /* */ /* */ struct resource *parent, *sibling, *child; /* */ }; /* * ,

linux程序包管理之rpm

linux程序的源码编译安装方式毕竟比较繁琐,安装后也不易管理,为此linux 官方提供了专门的程序包管理器来解决这些问题 一、程序包管理器 程序包管理器:将源程序编译并打包成一个或有限的几个文件,可用于实现安装、查询、升级、卸载等功能 程序包管理器的管理实现: ①数据库,用于记录: 程序名及版本 程序之间的依赖关系 功能性说明 安装生成的各文件路径及校验码 ②程序的组成清单: 文件清单 安装卸载时运行的脚本 常用程序包管理器: Redhat:rpm(redhat package manager),其对应的程序包后缀为.rpm,对应的前端工具为yum Debian:dpkg,其对应的程序包后缀为.deb,对应的前端工具为apt-get rpm包的制作需要rpmbuild工具,其制作过程这里不作说明,以下详解一下rpm包的管理 二、rpm程序包 2.1、rpm包命名格式:name-version-release.arch.rpm,如httpd-2.2.15-45.el6.centos.x86_64.rpm version:major.minor.release,同源码 release:rpm自身发行号,与源码的发行号无关,仅用于标识对rpm包不同制作的修订,同时release还包含此包适用的OS arch:适用的硬件平台

x86: i386, i486, i586, i686等 x86_64: x86_64 powerpc: ppc noarch: 依赖于虚拟机 2.2、rpm分包机制 一个程序体积可能很大,为了方便管理,rpm包管理器依据功能性差异,将一个程序打包成若干个包 主包(核心包):其name与源程序一致,如httpd-2.2.15- 45.el6.centos.x86_64.rpm 子包:httpd-devel-2.2.15-45.el6.centos.x86_64.rpm httpd-tools-2.2.15-45.el6.centos.x86_64.rpm 区别:程序x依赖于y和z,若x是基于rpm包安装,则x依赖的是y和z的核心包;若x基于源码编译安装,则x依赖的是y和z的开发包 2.3、获取rpm包的途径 ①官方发行的光盘、官方站点、镜像站点 https://www.sodocs.net/doc/8417873158.html, https://www.sodocs.net/doc/8417873158.html, ②项目的官网:源代码、rpm包 ③第三方机构或个人制作并公开发布许多rpm包 https://www.sodocs.net/doc/8417873158.html, https://www.sodocs.net/doc/8417873158.html, ④额外程序包的可靠途径:EPEL,为Federa所维护 2.4、rpm包的合法性验证 rpm包的合法性包括来源合法性和包的完整性两个方面 包的制作者使用单向加密算法提取出原始数据的特征码,并使用自己的私钥加密这段特征码,附加在原始数据之后 验证过程: 前提:必须有可靠机制获取到包制作者的公钥 ①使用包制作者的公钥解密那段加密的特征码,能解密则说明来源合法

设备管理--Linux设备驱动程序安装

集美大学计算机工程学院实验报告 课程名称:操作系统班级:xxx实验成绩: 指导教师:姓名:xxx ( 学号:xxxx上机实践日期:xxx 实验项目名称: 设备管理——Linux设备驱动程序安装 实验项目编号:组号:上机实践时间: 2 学时~ 一、目的(本次实验所涉及并要求掌握的知识点) 1.认识Linux的设备的种类和设备工作方式; 2.理解设备驱动程序的工作原理; 3.掌握设备驱动程序的编写规范,能编写并安装简单的设备驱动程序。 二、实验内容与设计思想(设计思路、主要数据结构、主要代码结构、主要代码段分析、电路图) 实验内容: ¥ 在Linux系统中,编写一个简单的字符型设备驱动程序模块,设备具有独占特性,可执行读和写操作,相关系统调用为open, close, read, write,open和close分别相当于请求和释放设备,read和write内容保存在设备模块内的缓冲区中。设备模块可动态注册和卸载,并建立与之对应的特殊文件/dev/mydev。 实验设计: 1.按照要求编写设备驱动模块,同时编写一个测试程序 2.分别对其编译,注意编译时的项 3.设备模块加载 4.创建特殊文件 5.分析执行结果 6.设备模块卸载 < 三、实验使用环境(本次实验所使用的平台和相关软件) Linux 四、实验步骤和调试过程(实验步骤、测试数据设计、测试结果分析) LINUX_VERSION_CODE is * the code (as per KERNEL_VERSION) of this version. */ #if LINUX_VERSION_CODE > KERNEL_VERSION(2,2,0) < #include /* for put_user */ #endif #define SUCCESS 0 #define DEVICE_NAME "kueng_char_dev"

Linux软件包管理

Linux软件包管理 RPM包管理 在Windows下安装软件时,只需用鼠标双击软件的安装程序,或者用Zip等解压缩软件解压缩即可安装。在Linux下安装软件对初学者来说,难度高于Windows下软件安装。下面我就详细讲解Linux下如何安装软件。 先来看看Linux软件扩展名。软件后缀为.rpm最初是Red Hat Linux提供的一种包封装格式,现在许多Linux发行版本都使用;后缀为.deb是Debain Linux提供的一种包封装格式;后缀为.tar.gz、tar.Z、tar.bz2或.tgz是使用Unix系统打包工具tar打包的;后缀为.bin的一般是一些商业软件。通过扩展名可以了解软件格式,进而了解软件安装。 RPM格式软件包的安装 几乎所有的Linux发行版本都使用某种形式的软件包管理安装、更新和卸载软件。与直接从源代码安装相比,软件包管理易于安装和卸载;易于更新已安装的软件包;易于保护配置文件;易于跟踪已安装文件。 RPM全称是Red Hat Package Manager(Red Hat包管理器)。RPM本质上就是一个包,包含可以立即在特定机器体系结构上安装和运行的Linux软件。 大多数Linux RPM软件包的命名有一定的规律,它遵循名称-版本-修正版-类型-emacs-21.4-20.el5.i386.rpm。 RPM命令主要参数: -i 安装软件。 -t 测试安装,不是真的安装。 -p 显示安装进度。 -f 忽略任何错误。 -U 升级安装。 -v 检测套件是否正确安装。 -q 查询软件包是否被安装 -a 查询所有软件包 这些参数可以同时采用。更多的内容可以参考RPM的命令帮助。 1.查询RPM包是否安装

Linux设备驱动程序的概念、作用以及模块

Linux设备驱动程序的概念、作用以及模块 我们首先对linux系统整个框架要有个了解。Linux简化了分段机制,使得虚拟地址与线性地址总是一致,因此,Linux的虚拟地址空间也为0~4G。 Linux 内核将这4G字节的空间分为两部分,分别是用户空间(0~3G)和内核空间(3G~4G)。其中,用户空间存放的是应用程序,而内核空间存放的是内核,设备驱动和硬件。 为什么需要存在设备驱动呢?我们知道,内核是操作系统基本的部分,而操作系统是不能够直接控制硬件的,这样我们就需要设备驱动作为操作系统和硬件设备间的粘合剂,相当于一个中间人吧,负责上下两边的沟通。驱动负责将操作系统的请求传输,转化为特定物理设备控制器能够理解的命令。 这样我们就知道,驱动需要完成两大功能: 1、为linux内核提供调用接口。 2、控制硬件。因为寄存器是控制硬件的操作,所以驱动程序控制硬件,也就是要通过读写硬件寄存器达到控制硬件的目的。 内核是为应用程序服务的,其本质其实是函数的集合,内核要实现的功能我们可以分为两部门:基本功能和扩展功能。其中,基本功能包括进程管理,线程管理等等,而扩展功能,可以根据用户的需求自行添加。 下面我们就来探讨一下怎样向内核添加一项功能呢? 1、我们首先想到,肯定需要写一个功能函数,假如我们命名为fun.c,那么函数写好后,必须要和linux源码一起编译,生成zImage内核镜像文件。 2、重新编译内核。 这样就得到了新的内核,这种添加的方式我们称为静态添加。大家发现,每次修改一次fun.c,都要重新编译一次内核,灰常的麻烦,所以引进了内核模块机制,只需要加载或卸载模块,就可以动态的增加或者删除内核的功能,不用每次都重新编译,是不是很方便?那么接下来我们会想到,这个模块怎么就能和内核连接在一起呢?其实很简单,fun.c文件除了要实现功能呢,还需要包含和内核的接口,内核也提供了模块的接口,只要这两个接口一致,模块就可以融入内核,成为内核的一部分。Linux驱动程序都是以模块的形式存在的,所以我们称之为驱动模块。 所以我们总结出添加模块的步骤是: 1、写功能函数fun.c。 怎么样编写模块的源码文件,我们以一个Hello模块实例分析。 #include #include //①模块的头文件,在对应内核下 的include目录中{ … //②功能函数hello.c(同普通} 的.c文件) Static int __int hellomudule_init(void) //③模块初始化函数 { Printk(“Hello world!\n”); Return 0; }

linux系统如何安装软件 (详细文字教程)

linux系统如何安装软件 (详细文字教程) 在Linux中安装软件时,我们经常要考虑到这样几个个问题:(1).怎样安装软件;(2).软件安装在什么地方;(3).如何卸载删除不要的软件......下面,我们就一起来认识一下这些方面的问题。 一.认识Linux应用软件安装包 通常Linux应用软件的安装包有三种: 1) tar包,如software-1.2.3-1.tar.gz。它是使用UNIX系统的打包工具tar打包的。 2) rpm包,如software-1.2.3-1.i386.rpm。它是Redhat Linux提供的一种包封装格式。 (现在用的全称叫RPM Package Manager,以前叫Redhat Package Manager) 3) dpkg包,如software-1.2.3-1.deb。它是Debain Linux提供的一种包封装格式。 而且,大多数Linux应用软件包的命名也有一定的规律,它遵循: 名称-版本-修正版-类型 例如: 1) software-1.2.3-1.tar.gz 意味着: 软件名称:software 版本号:1.2.3 修正版本:1 类型:tar.gz,说明是一个tar包。 2) sfotware-1.2.3-1.i386.rpm 软件名称:software 版本号:1.2.3 修正版本:1 可用平台:i386,适用于Intel 80x86平台。 类型:rpm,说明是一个rpm包。 注:由于rpm格式的通常是已编译的程序,所以需指明平台。在后面会详细说明。

而software-1.2.3-1.deb就不用再说了吧!大家自己练习一下。 二、了解包里的内容: 一个Linux应用程序的软件包中可以包含两种不同的内容: 1) 一种就是可执行文件,也就是解开包后就可以直接运行的。在Windows中所有的软件包都是这种类型。安装完这个程序后,你就可以使用,但你看不到源程序。而且下载时要注意这个软件是否是你所使用的平台,否则将无法正常安装。 2) 另一种则是源程序,也就解开包后,你还需要使用编译器将其编译成为可执行文件。这在Windows 系统中是几乎没有的,因为Windows的思想是不开放源程序的。 通常,用tar打包的,都是源程序;而用rpm、dpkg打包的则常是可执行程序。一般来说,自己动手编译源程序能够更具灵活性,但也容易遇到各种问题和困难。而相对来说,下载那些可执行程序包,反而是更容易完成软件的安装,当然那样灵活性就差多了。所以一般一个软件总会提供多种打包格式的安装程序的。你可以根据自己的情况来选择。 几种安装命令介绍: 一、rpm包安装方式步骤: 1、找到相应的软件包,比如soft.version.rpm,下载到本机某个目录; 2、打开一个终端,su -成root用户; 3、cd soft.version.rpm所在的目录; 4、输入rpm -ivh soft.version.rpm 详细介绍: 1. 安装: 我只需简单的一句话,就可以说完。执行: rpm –ivh rpm的软件包名 更高级的,请见下表: rpm参数参数说明 -i 安装软件 -t 测试安装,不是真的安装

Linux项目报告二用户管理,进程管理,磁盘管理,软件包安装

Linux操作系统 子项目报告二 题目:LINUX系统管理 姓名 学号 学院 专业 班级 指导教师 一、项目背景 Linux是目前IT企业使用最多的操作系统之一,由于其广泛的开源性个Unix系统比拟的稳定性,受到越来越多的企业、政府及事业单位的喜爱,掌握Linux系统管理是软件专业学生必备的技能。

二、项目步骤 用户和用户组管理 gedit /etc/passwd:查看用户账号 用户名:用户密码:用户id:组id:用户组相关信息:用户家目录:用户 shell su xiaoluo2:切换到用户xiaoluo2 echo $SHELL:查看当前shell su xioaluo3:切换到用户xiaoluo3 echo $SHELL:查看当前shell

/dev/null /dev/nologin 把用户更改为禁用 su 切换账号的时候无法正常登入

磁盘管理 1.fdisk -l | grep “/dev/sd*”:显示磁盘分区 2.fdisk /dev/sdb:对磁盘sdb进行分区 1.n :add a new partition 增加新的分区 2.p:primary partition 建立主分区 3.分区号为1 4.+200M:分区的大小 5.p:显示新分区的信息 6.w:write table to disk and exit 保存并退出

fdisk -l | grep”/dev/sd*”:查看分区信息 /dev/sdb/sdb1 主分区、sdb2 扩展分区、sdb5 sdb6 逻辑分区(逻辑分区的分区号从5开始)

1.t:change a partition’s system id 选择磁盘的id 2.现在磁盘1 3.l显示所有code fd:把磁盘类型转为Linux raid autodetect

NBU60网络备份大全之Linux设备管理(参考Word)

NBU6.0网络备份大全之Linux设备管理 在备份软件的使用过程中,对于磁盘、磁带的管理一般会花费存储管理员很大比例的时间和精力。因此,对于设备的管理的方便程度,是衡量一个备份软件好坏的重要的标准。 现在,随着Redhat和SuSE以及oracle Linux的日益成熟,越来越多的用户选择使用Linux平台来部署其商用环境。这就要求存储设备管理员能够在各种Linux平台的操作和使用各种硬件设备。 虽然Netbackup在不同的操作系统上提供了统一的管理界面,但是由于操作系统的差异,使得系统管理员不得不自己配置新购置的磁盘阵列和磁带库,使得其能够被Netbackup识别和有效利用。本文介绍的重点在Linux上面的设备管理,使得Netbackup可以能够正确的识别AIX操作系统上的磁盘阵列、机械手和磁带库等设备。具体的Netbackup中如何使用已经识别的设备的内容,在各个操作系统是没有差异的,它们将会在后面的文章中予以介绍。 一,检查Netbackup软件的兼容性列表 用户在配置设备时,第一需要注意的事情是检查该软件的兼容性列表,检查该软件是否支持用户当前正在使用的操作系统版本和磁盘、磁带等设备。一般来说,使用主流的操作系统和应用广泛的设备,都不会有什么问题。但是如果用户使用的是比较特殊的应用环境,那么就需要提前检查一下兼容性列表了,以免在使用过程中出现错误,一般来说这种错误都不容易诊断出来。 二,确认驱动程序已经安装 1,确认已在内核中安装或装入了 st (磁带)设备驱动程序。此驱动程序允许使用 SCSI 磁带机:# lsmod |grep st 2,确认已在内核中安装或装入了 sg (机械手)设备驱动程序。此驱动程序允许向 SCSI 磁带机发出PASSTHRU 命令和控制机械手设备。# lsmod |grep sg 3,如果st磁带驱动程序或者sg机械手驱动程序不存在,那么需要手动加载它们: /sbin/modprobe st /sbin/modprobe sg (注意)自动加载的驱动程序可能在操作系统重新启动后无法自动加载,导致Netbackup无法识别并使用之前配置好的设备。这个问题可能会给Netbackup的使用者带来困惑。所以最好利用某种办法(很多不一一累述),保证系统启动能够自动加载st和sg程序到内核中。 三,配置机械手: 在Linux操作系统中,主要是区别2.4内核还是2.6内核的操作系统,分别有不同的配置方法。 针对2.4内核的操作系统,Netbackup在安装时后自动运行/usr/openv/volmgr/bin/make_scsi_dev命令,该命令在/dev/sg目录下自动创建设备文件,文件格式为hHOSTcCHANNELtTARGETlLUN,其中:HOST 是主机总线适配器;CHANNEL 是通道;TARGET 是目标 ID;LUN 是逻辑单元号。例如h10c0t1l0就是一个合法的设备文件名称。 在2.6内核的操作系统中,操作系统使用/dev目录下的sgN设备文件,N是0到255之间的任意整数。四,配置磁带驱动器 在2.4内核的操作系统中,/usr/openv/volmgr/bin/make_scsi_dev命令将会在/dev/st 目录中创建设备文件。该目录中的无倒带设备文件的名称具有以下格式:nhHOSTcCHANNELtTARGETlLUN,其中:n 是“关闭时无倒带”设备文件;HOST 是主机总线适配器;CHANNEL 是通道;TARGET 是目标 ID;LUN 是逻辑单元号。例如nh10c0t2l0就是一个合法的磁带驱动器的名称。 在2.6内核的系统中,NetBackup 仅使用 /dev/nstX 文件,其中 X 一个介于 0到 127 之间的十进制数。五,验证机械手和磁带库的配置 在Linux系统中,/proc/scsi/scsi 文件显示了 SCSI 驱动程序识别的所有设备。要确定操作系统能否看到设备,可从终端窗口运行以下命令来查看该文件: # cat /proc/scsi/scsi

Linux设备文件浅析

linux下的文件分为常规文件和设备文件,常规文件一定在某一个设备上被存储,不论这个设备是真实的还是虚拟的,这里的设备是linux中vfs层中的设备,也就是前面所说的设备文件中的设备,vfs层的设备分为字符设备和块设备,字符设备可以类比为一个fifo的队列,无论读还是写都必须顺序进行,而块设备就可以随机进行读写,常规的文件一般都在块设备上被存储,包括设备文件本身也在一个块设备上被存储着,可以说vfs层解决了这种混乱,它提供给上面的操作者一个十分统一的接口,实际上vfs下面十分不雅,败絮其中吗?等你看了linux源代码就不会这么认为了,linux内核是分层次的,vfs仅仅是其中的一个罢了,即使下面很乱也不是很无序的乱,总体看来是很乱,那是因为你混合看所有设备那当然混乱,因为字符设备和块设备的管理方式就不同,如果理一下思路就会很自然的想到在vfs接口下面有三条线,一条是常规文件,一条是字符设别文件,另一条就是块设备文件。 linux用很好的数据结构组织了两类设备文件,对于字符设备比较简单,就是将所有的字符设备都置于一个map中,就是cdev_map,所有的字符设备在注册的时候都会加入这个map: int register_chrdev(unsigned int major, const char *name, struct file_operations *fops) { struct char_device_struct *cd; struct cdev *cdev; char *s; int err = -ENOMEM; cd = __register_chrdev_region(major, 0, 256, name);

相关主题