Groups
Groups
Sign in
Groups
Groups
嵌入式linux
Conversations
About
Send feedback
Help
ubuntu apt-get 使用指南 dpkg -L autoconf 查看是否安装了这个软件包
27 views
Skip to first unread message
stan8688
unread,
May 6, 2008, 4:24:22 AM
5/6/08
Reply to author
Sign in to reply to author
Forward
Sign in to forward
Delete
You do not have permission to delete messages in this group
Copy link
Report message
Show original message
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to 嵌入式linux
起初GNU/Linux 系统中只有.tar.gz。用户不得不在GNU/Linux系统上编译他们所需的每个程序。当Debian被创建以後,它要求
系统必须包含一种包管理方式。这个包管理方式就是‘dpkg’。”因此着名的‘package’第一次出现在GNU/Linux,不久之後,红帽子创建
了他们自己的包管理系统 ‘rpm’。”
“GNU/Linux 的创造者们很快又陷入了新的窘境。他们希望通过一种快捷、实用而且高效的方式来安装软件包。这些软件包可以自动处理相互之间的依
赖关系,并且在升级过程中维护他们的配置文件。Debian又一次充当了开路先锋的角色。她首创了APT(Advanced Packaging
Tool)。这一工具後来被Conectiva移植到红帽子系统中用于对rpm包的管理。在其他一些发行版中我们也能看到她的身影”
-- 引自:Debian APT HOWTO
[编辑] 命令
这些命令需要在root权限下运行。 根据你要安装或搜索的包的不同,替换‘包名’或‘字符串’。
* apt-get update - 在你更改了/etc/apt/shources.list 或 /etc/apt/
preferences 後。运行这个命令。你必须定期的运行这行命令,以确保你的源列表是最新的。这行命令等价于新立得软件包管理器中的‘刷新’,或
者是 Windows和OS X 下的 ‘check for updates’。
* apt-get install 包名 - 安装一个新的包。(参见 aptitude)
* apt-get remove 包名 - 删除已安装包(保留配置文件)
* apt-get --purge remove 包名 - 删除已安装包(不保留配置文件)特别技巧:如果你想在删除‘foo’包同时安
装‘bar’:
apt-get --purge remove foo bar+ .
* apt-get autoremove 包名 - 删除已安装和相关的包
* apt-get upgrade - 更新所有已安装包。类似新立得软件包管理器中的‘标记所有更新’‘应用’。
* apt-get dist-upgrade - 更新整个系统到最新的发行版。和上面一样,除了多添加了一个“smart
upgrade” -- 如,告诉APT更新到最新包,甚至会删除其他包(不建议使用这种方式更新到新的发行版)。
* apt-get -f install -- (等同于新立得软件包管理器中的"编辑->Fix Broken
Packages"和"Apply".当是的包提示“unmet depdences”时候,可执行这行命令。)
* apt-get autoclean - 如果你的硬盘空间不大的话,可以定期运行这个程序,将.deb安装文件从硬盘中删除掉,如果你不
再需要安装这个程序的话。
* apt-get clean 删除包缓存中的所有包。这是个很好的做法,如果你的硬盘空间非常小,而且你不需要这些包。如果你是拨号上网的
话,就得重新考虑了。包缓存的路径为 /var/cache/apt/archives,因此,“du -sh /var/cache/apt/
archives”将告诉你包缓存所占用的硬盘空间。
* apt-cache search foo -- 搜索和"foo"匹配的包
* apt-cache show foo -- 显示"foo"包的相关信息
* dpkg -l ’*foo*‘ -- 查找包含有"foo"字样的包
* dpkg -L foo -- 在我的系统上安装了那些"foo"包? 非常实用。
* dlocate foo -- 在已安装的包中搜索“foo”的文件。对于回答“这个文件来源于那个包?”这个问题,是非常实用的。你必须
安装dlocate包。
* dpkg -S foo -- 和上面的命令一样,但相比更慢一些。他只能在Debian或Ubuntu系统下运行。另外,不需要安装
dlocate包。
* apt-file search foo -- 类似dlocate和dpkg -S,搜索所有有效包,不单单只是你系统上的已安装
包。-- 例如,它所回答的问题是“哪些包提供这些文件”,你必须安装有apt-file包,并且确保apt-file数据库是最新的。
* dpkg -c foo.deb -- “foo.deb”包含有哪些文件?注:foo.deb是路径名。-- 这个是针对你自己下载
的.deb包。
* dpkg-reconfigure foo -- 重新配置“foo”包。在你快速配置的时候,由于众多的包,你可能不知道这些配置文件在
哪里。例如,“dpkg-reconfigure fontconfig-config”,在Ubuntu系统中显示字体配置向导。每当我安装完新的
包,我都会运行这行命令,因为我希望位图字体在我的所有应用程序上都有效。
* dpkg-reconfigure, 如果你已经配置了已安装包,并且现修改其中的一些配置,那么这个命令就是你所要的。
* apt-cache search string - 在已知的包列表中搜索string
* dpkg -l package-name-pattern - 列出于模式匹配的安装包。除非你知道包的正确全称,要不你可以使
用“*package-name-pattern*”.
* aptitude - 详细查看已安装或可用的软件包。与apt-get类似,aptitude可以通过命令行方式调用,但仅限于某些命令
——最常见的有安装和卸载命令。由于aptitude比apt-get了解更多信息,可以说它更适合用来进行安装和卸载。
* apt-cache showpkg pkgs - 显示包信息
* apt-cache dumpavail - 输出有效的列表
* apt-cache show pkgs - 显示包记录,类似“dpkg --print-avail”。
* apt-cache pkgnames - 快速列出系统上的每个包。
* dpkg -S file - 哪些安装包含有这个“file”。
* dpkg -L package - 列出包中的文件。
* apt-file search filename - 查找包含特定文件的软件包(不一定是已安装的),这些文件的文件名中含有指定的字
符串。apt-file是一个独立的软件包。您必须先使用apt-get install来安装它,然後运行apt-file update。如果
apt-file search filename输出的内容太多,您可以尝试使用apt-file search filename | grep
-w filename(只显示指定字符串作为完整的单词出现在其中的那些文件名)或者类似方法,例如:apt-file search
filename | grep /bin/(只显示位于诸如/bin或/usr/bin这些文件夹中的文件,如果您要查找的是某个特定的执行文件的
话,这样做是有帮助的)。
* echo "foo hold" | dpkg --set-selectons -- 设置包“foo”为hold,不更新这个包,保持
当前的版本,当前的状态,当前的一切。类似新得利包管理中的“Package->Lock Version”。
* 注: apt-get dist-upgrade 重写这个文件, 首先会出现警告. 另外,你必须使用sudo。输入命
令“echo "foo hold" | sudo dpkg --set-selections'”而不是“sudo echo "foo
hold" | dpkg --set-selections”
* echo "foo install" -- 删除“hold”“locked package”状态设置。命令行为'echo
"foo install" | sudo dpkg --set-selections'r
[编辑] 典型应用
我是个赛车发烧友,想装个赛车类游戏玩玩。有哪些赛车类游戏可供选择呢?
apt-cache search racing game
出来了一大堆结果。看看有没有更多关于torcs这个游戏的信息。
apt-cache show torcs
看上去不错。这个游戏是不是已经安装了?最新版本是多少?它属于哪一类软件,universe还是main?
apt-cache policy torcs
好吧,现在我要来安装它!
apt-get install torcs
在控制台下我应该调用什么命令来运行这个游戏呢?在这个例子中,直接用torcs就行了,但并不是每次都这么简单。我们可一通过查找哪些文件被安装到
了 “/usr/bin”文件夹下来确定二进制文件名。对于游戏软件,这些二进制文件将被安装到“/usr/games”下面。对于系统管理工具相应的
文件夹是“/usr/sbin”。
dpkg -L torcs|grep /usr/games/
这个命令的前面一部分显示软件包“torcs”安装的所有文件(您自己试试看)。通过命令的第二部分,我们告诉系统只显示前一部分的输出结果中含有“/
usr/games”的那些行。
这个游戏很酷哦。说不定还有其他赛道可玩的?
apt-cache search torcs
我的磁盘空间不够用了。我得把apt的缓存空间清空才行。
apt-get clean
哦不,老妈叫我把机器上的所有游戏都删掉。但是我想把配置文件保留下来,这样下次我想玩的时候只要重装一下就可以了。
apt-get remove torcs
如果我想连配置文件一块删除:
apt-get remove --purge torcs
[编辑] 额外的软件包
deborphan和debfoster工具可以找出已经安装在系统上的不会被用到的软件包。
[编辑] 提高命令行方式下的工作效率
您可以通过定义别名(alias)来提高这些命令的输入速度。例如,您可以在您的*~/.bashrc*文件中添加下列内容
alias acs='apt-cache search'
alias agu='sudo apt-get update'
alias agg='sudo apt-get upgrade'
alias agd='sudo apt-get dist-upgrade'
alias agi='sudo apt-get install'
alias agr='sudo apt-get remove'
或者使用前面介绍的aptitude命令,如“alias agi='sudo aptitude install'”。
[编辑] 为apt-get设置http代理
可以通过三种方法为apt-get设置http代理
方法一
这是一种临时的手段,如果您仅仅是暂时需要通过http代理使用apt-get,您可以使用这种方式。
在使用apt-get之前,在终端中输入以下命令(根据您的实际情况替换yourproxyaddress和proxyport)。
export http_proxy=http://yourproxyaddress:proxyport
方法二
这种方法要用到/etc/apt/文件夹下的apt.conf文件。如果您希望apt-get(而不是其他应用程序)一直使用http代理,您可以使用
这种方式。
注意: 某些情况下,系统安装过程中没有建立apt配置文件。下面的操作将视情况修改现有的配置文件或者新建配置文件。
sudo gedit /etc/apt/apt.conf
在您的apt.conf文件中加入下面这行(根据你的实际情况替换yourproxyaddress和proxyport)。
Acquire::http::Proxy "http://yourproxyaddress:proxyport";
保存apt.conf文件。
方法三
这种方法会在您的主目录下的.bashrc文件中添加两行。如果您希望apt-get和其他应用程序如wget等都使用http代理,您可以使用这种方
式。
gedit ~/.bashrc
在您的.bashrc文件末尾添加如下内容(根据你的实际情况替换yourproxyaddress和proxyport)。
http_proxy=http://yourproxyaddress:proxyport export http_proxy
保存文件。关闭当前终端,然後打开另一个终端。
使用apt-get update或者任何您想用的网络工具测试代理。我使用firestarter查看活动的网络连接。
如果您为了纠正错误而再次修改了配置文件,记得关闭终端并重新打开,否自新的设置不会生效。
Reply all
Reply to author
Forward
0 new messages