Chinaunix首页 | 论坛 | 博客
  • 博客访问: 830105
  • 博文数量: 247
  • 博客积分: 166
  • 博客等级: 入伍新兵
  • 技术积分: 2199
  • 用 户 组: 普通用户
  • 注册时间: 2012-11-15 16:10
文章分类

全部博文(247)

文章存档

2017年(1)

2015年(63)

2014年(80)

2013年(94)

2012年(9)

分类: LINUX

2012-12-20 16:50:48

1.在linux下如何判断是否已经安装某个软件?

我的系统是red hat,我用命令rpm查是否安装了某个软件(例如: matlab 与 fluent ),得到了如下的结果:

我用rpm -qa (| grep) matlab , 回车后没有任何显示
我用rpm -qa fluent , 回车后没有任何显示
我用rpm -qa vasp , 回车后没有任何显示

但实际上肯定是装了matlabfluent , 而我用[root@node1 /]# rpm -q fluent
显示的却是package fluent is not installed,matlab也一样
另外,命令 [root@node1 /]# man rpm
返回的却是 No manual entry for rpm
这是为什么呢?

++++++++++++++++++++++++++++++++++++++++++

 rpm -qa|grep 软件包 

++++++++++++++++++++++++++++++++++++++++++

 用yum命令yum search试试

++++++++++++++++++++++++++++++++++++++++++

如果你使用rpm -ivh matlab装的,rpm -qa | grep matlab肯定是能够找到的。如果你是用make && make install装的。那么最好直接去找执行程序,就知道有没装上去find / -name matlab 如果装了,它会告诉你执行程序被释放到哪个目录了。

++++++++++++++++++++++++++++++++++++++++++

 rpm -qa 是查看该软件是否被安装,grepfind是查看文件位置

++++++++++++++++++++++++++++++++++++++++++

2.安装的文件默认的存放路径?

        如果是别人发布的二进制包,可执行文件通常都安装到Linux系统 /usr/bin 下面;如果是自己从源代码安装的,可执行文件通常都在 /usr/local/bin 下面,除非配置时指定了安装位置。 

例如: 
 -ivh xxx1.rpm 
      可执行文件通常都安装到 /usr/bin 下面

  2、./configure (或者 ./configure --prefix=/usr/local) 
      make 
      make install 
      可执行文件通常都在 /usr/local/bin 下面,因为默认参数就是 --prefix=/usr/local

  ./configure --prefix=/usr (或者 ./configure --prefix=/opt 也可以指定其他位置,如你的家目录 --prefix=~,~就是 /home/xxx<即你的家目录>的缩写) 
      make 
      make install 
      可执行文件通常都在 /usr/bin 下面(或者相应地位于 //bin 下面,或者 /home/xxx/bin 下面,xxx 是你的家目录)

  无论那种方法,在 bash 控制台下只要输入可执行文件头几个字母,然后连续按两次 Tab 键,就可以列出可能的所有命令,如果只有一种可能,则自动显示该文件全名,这称为命令补全。想执行当前目录下的可执行文件,则必须使用 ./ 作为命令前导,例如: ./myprogram

  除此之外,一般的可执行文件都处在系统的搜索路径里,只要在控制台直接输入命令名就可执行。例如你编译安装了一个叫 synaptic 的软件,只需要在 KDE 的 konsole 虚拟控制台下输入 synaptic 即可。

  如果不幸,你的可执行文件不在系统的搜索路径里,就会报告没有这个命令。那么你需要把那个可执行文件的位置加入环境变量 PATH 里,用冒号作分割符,例如: 在你的家目录的 .profile 文件或 .bashrc 文件里添加如下命令 PATH="~/bin:$PATH" 就可以把你的家目录的 bin 目录追加到搜索路径里。

  无论任何时候想知道系统里某个“命令文件”的位置,都可以使用 which 命令,例如:        
      $which pwd 

      /usr/bin/pwd 
      说明 pwd 命令位于 /usr/bin 下面。


3.linux下如何查看某个软件安装在哪个目录啊?

++++++++++++++++++++++++++++++++++++++++++ 

rpm -ql 软件名 怎么不给分啊,

++++++++++++++++++++++++++++++++++++++++++

看怎么安装的. 一般有源码和包安装两种方式. 源码安装的话可以看 configure 的日志; rpm 等包方式的话,就要查其中的数据库了,比如 rpm -q 进行查询.
-q <== 查询(查询本机已经安装的包时不需要版本名称)
-qi #查询被安装的包的详细信息(information)
-qa | grep dhcp <== 列出所有被安装的rpm package
-qc 列出配置文件(/etc下的文件)
-qd 列出帮助文件(man)
-ql dhcp <== 查询指定 rpm 包中的文件列表
-qf /bin/ls <== 查询哪个库里包含了 ls 文件(注意,需要安装了 /bin/ls 后才能查到)
-qp < rpm package name> <== 根据rpm包查询(.rpm 文件),可以接其他参数(如i查详细信息,l查文件列表等)
-qR 列出需要的依赖套件

++++++++++++++++++++++++++++++++++++++++++


4.应用实例:安装glib的问题?

请问:系统已安装了底版本glib,rpm格式,我下载了glib高版本,原码,我想更新他,按照文档所说的:

tar vzfx glib-XXXXXXX.tar.gz 
./configure 
make 
make install 

后, 我再

rpm -q glib 

显示的还是以前底版本的glib,我又想rpm -e 底版本的glib,可是这种蠢办法行不通,因为很多程序都是depends他的. 
请大家帮我这个菜鸟解决这个蠢问题. 

++++++++++++++++++++++++++++++++++++++++++++

自己编译并安装.tar.gz格式的源代码并不影响到.rpm的数据库。如果不出意外的话,你需要的东西应该已经正确安装了(我可没说能正确使用)。用

rpm -ql xxx

查一下那个低版本的安装在哪个目录下,在./configure后设置,重新make并make install就行。 
例如,原来的glib安装在/usr/share/glib下,那就用:

./configure --prefix=/usr/share 
make 
make install 


源代码的编译安装需要试验,可能它会直接把一大堆文件拷贝到/usr/share下,而不建glib目录。看一看你已经安装的,应该有所启发的。




阅读(701) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~