ubuntu unknown host,Ubuntu server
大家好,今天给各位分享ubuntu unknown host的一些知识,其中也会对Ubuntu server进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在就马上开始吧!
怎么在virtualbox上安装ubuntu
VirtualBox中安装Ubuntu12.04/Ubuntu14.04虚拟机
NOTE:一开始安装的Ubuntu12.04,后来又重新安装了14.04。截图基本使用了安装12.04时的截图,后来安装14.04时又补充了几张。该安装过程对Ubuntu12.04和14.04都是适用的。
1.选择版本
1.1 Ubuntu桌面版与服务器版的区别
桌面版与服务器版,只要发布版本号一致,这两者从核心来说也就是相同的,唯一的差别在于它们的预期用途。桌面版面向个人电脑使用者,可以进行文字处理、网页浏览、多媒体播放和玩游戏。本质上说,这是一个为普通用户所定制的多用途操作系统。另一方面,服务器版旨在充当web服务器,可用来托管文件、网页及相似内容。【1】
个人电脑上必备的组成部分是GUI(图形用户界面)。Ubuntu的桌面版默认带有Gnome GUI,不过,如果你有需要,也可转换为KDE或X。而服务器版是不安装GUI的。除了日常维护,服务器不打算用于本地交互,因而GUI不仅没有存在的必要,而且还会消耗服务器多余的资源。对于其他软件,如办公软件、媒体播放软件、浏览器等等,道理也是一样。在服务器版上这些统统找不到。
由于是面向服务器的,服务器版Ubuntu包含了所有你需要启动托管站点的软件。LAMP(Linux、Apache、MySQL和PHP),列出了与web服务器相关的软件。除非你自行安装,否则这些在桌面版上是找不到的。
以上区别并非一成不变,通过安装和卸载软件包,你也可以将桌面版定制为服务器版,反之亦然。多数想装服务器的人仍然需要GUI的便利,那么可以从任何一个版本起步,然后只需安装GUI或LAMP即可。
总结:
1.桌面版为个人电脑所配置,而服务器版适用于web服务器。
2.桌面版预装了GUI,而服务器版没有。
3.桌面版已经安装了许多服务器版没有的软件。
4.桌面版缺少Apache、MySQL和PHP,而这些在服务器版中是标准配置。
所以,我们还是选择桌面版吧。
1.2 i386 vs amd64
在Ubuntu官网,你如果下载32位的,那么ISO文件是以i386.iso结尾。如果是下载64位的,那么ISO文件是以amd64.iso结尾。
i386是x86系列的32位处理器。
amd64是64位处理器。intel有自家的64位的,但不向下兼容,64位以amd64最先推出,习惯称为amd64。
2安装过程
1.点击new,弹出一个创建新虚拟机的窗口。
2.给虚拟机分配内存大小。
分配给VM的内存只有在加电启动VM的时候才会被分分配,不启动的时候是不会被分配的。
3.创建一个虚拟硬盘文件。
4.选择VDI格式,这是VirtualBox自己的格式。
5.虚拟硬盘文件的类型:选择动态分配。
6.选择磁盘文件存放的位置,和磁盘的最大容量。
默认存放在“C:\Users\xxx\VirtualBox VMs\ubuntu_14_04”下,为不占用C盘空间,可以将其移到盘新建的文件夹下。
(NOTE:关于磁盘的最大容量,后来安装Ubuntu14.04的时候分配了32G,但由于没有重新截图,因此截图显示的仍然是20G。)
7.虚拟磁盘的Summary信息
8.整个创建过程的Summary信息。
9.点击Create后,会回到VirtualBox的主窗口。
10.修改启动顺序:去掉软驱,硬盘放在光驱前面
11.插入光盘映像到虚拟电脑
12.点击OK后,回到主窗口
13.点击Start,开始安装
(1)选择语言:English
(2)点击 Install Ubuntu。
14. Prepare to install Ubuntu
保持默认选项,Continue。
15. Install Type
选择“其它选项(Something else)”,自定义手动分区。
16.下面就是最重要的分区了。
(1)点击“New Partition Table...”,此时会弹出一个对话框,询问你是否将一整个磁盘创建为一个空分区,选Continue。
(2)这时,一个20G的free space就会被创建出来了。
17.点“Add”,添加磁盘。
将鼠标点到“free space”上,然后再点击“Add”。
参考鸟哥的Linux私房菜的做法【2】,做如下的分区:
(这里按照32G的硬盘空间大小来分配的。)
这里有2点需要注意:
a.如果将/boot单独分区,务必让该分割槽在整颗硬盘的最前面部分。因此,我们针对/boot就选择“Primary”,使其为主分区。,而"/"分区不必是主分区。
b.分区时不能参照【2】中给出的分区顺序:
"/"分区(逻辑)->"/boot"分区(主分区)->"swap"分区(逻辑)->"/home"分区(逻辑)
因为Ubuntu中不会主动调整主分区的位置到最前面。这样划分分区后,最后剩下的 free space硬盘空间会显示为不可用,没法再继续分区了。
Ubuntu中应该按照先创建“主分区”,再创建“逻辑分区”的步骤,而且一般将swap分区放于最后,因此,分区的顺序应当为:
"/boot"分区(主分区)->"/"分区(逻辑)->"/home"分区(逻辑)->"swap"分区(逻辑)
(1)/boot分割槽
分配102M空间。(填入100M或101M的话,最终分配99M,所以这里填入102M,系统最终会给根目录分配100M)
(2)根目录(/)的分割槽
根目录分配10001M的大小
(3)/home目录的分割槽
分配10001M空间
(4)内存置换空间(swap)
分配2002M空间(一般为分配内存大小的1.5-2倍)
因为swap是内存置换空间,因此不需要有挂载点。所以,请如同下图所示,在『档案系统类型』处挑选为『swap』吧!
(5)最终的分配结果如图所示。
最后还剩余12253M留作以后作练习磁盘操作的命令使用。
分区完成后,点击Install Now,开始安装系统。
可以看到,按照"/boot"分区(主分区)->"/"分区(逻辑)->"/home"分区(逻辑)->"swap"分区(逻辑)的顺序创建分区后,sda的命名顺序是:sda1-> sda5-> sda6-> sda7。
如果按照"/"分区(逻辑)->"/boot"分区(主分区)->"swap"分区(逻辑)->"/home"分区(逻辑)的顺序创建分区,sda的命名顺序会是:sda5-> sda2-> sda3-> sda4。最后剩下的 free space硬盘空间会显示为不可用,没法再继续分区了。
18.开始安装后,地点选择“Shanghai”
19.键盘布局选择“中文”。
20.然后输入计算机名,并创建一个用户名。
21.此时开始安装系统了。
22.安装完成后,需要重启系统。注意需要点击一下回车键,才能完成重启。
23.激活root帐户
(1)Ubuntu 12.04安装完成后,系统默认的Root账号是关闭的。
这主要是为了保护系统的安全性,但有些时候为了安装软件或进行其它操作时需要获得Root权限,就得使用Root账号。
首先需要打开超级终端:Ctrl+ Alt+ T快捷键打开超级终端
然后输入sudo passwd root
系统会提示你首先输入当前用户的密码,然后提示你为root账户输入新密码,并再输入一次确认。
(2)root用户和普通用户之间的切换
普通用户切换到root用户:执行sudo root即可,它会提示你输入root的密码。
Root用户切换回普通用户,有3种方法: su XXX(XXX是你自己安装时候的用户名),或是直接输入exit,也可Ctrl+D组合键退出。
24.如何以root用户登录?
环境安装好后,你重启系统时只有2个用户可供选择:安装系统时设置的用户,和一个Guest用户,没法使用root用户登录。然而只有root用户才有权限设置、安装增强功能。所以我们需要把root用户调出来。
(1)一开始参照的是【4】中的方法:
由于 ubuntu 12.04的登录器改为 lightdm,已经把 root用户给屏蔽了,需要将登录器换成 gdm,才可以使用 other选项。
安装 gdm: sudo apt-get install gdm
执行完后,最终会弹出如下对话框,选择gdm。(如果没有自动弹出如下对话框,执行 sudo dpkg-reconfigure gdm,这时将会弹出如下对话框,将登录管理器修改为 gdm,)
(2)但上面【4】的方案问题很大,最后改用【5】中的方案。
但【5】中步骤中 vi/etc/lightdm/lightdm.conf使用的vi编辑器。但vi编辑器的上下左右键不起作用(按向上键会打出字母D),经查资料【6】,只有在Ubuntu下才会出现这种状况,需要安装vim。
(3)安装vim:
sudo apt-get install vim
确保虚拟机能上网。因为apt-get需要root权限,所以加上sudo,然后提示输入当前用户的密码。当然先切换到root用户,然后直接执行 apt-get install vim也可以。
(4)安装完成后,按照【5】的方案设置:
a.切换到root登陆,
su root
b.输入vim/etc/lightdm/lightdm.conf
Ubuntu14.04中的位置换为【7】:/usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf
c.编辑文件。
首先,使用向下按键将光标移动到最后一行。
然后,键入命令"o":在当前行之下新开一行。
然后,增加如下2行:
# manually input user when login, so root can be input
greeter-show-manual-login=true
# disable guest user
allow-guest=false
然后,编辑完后按ESC键,按:w是保存不退出,按:wq是保存退出,按:q是没有对文件进行编辑的情况下退出,按:q!是对已编辑过的文件不保存退出。这里,按:wq保存退出。修改后的文件为:
[SeatDefaults]
greeter-session=unity-greeter
user-session=ubuntu
# manually input user when login, so root can be input
greeter-show-manual-login=true
# disable guest user
allow-guest=false
d.重启登陆即可。
shutdown-h now现在立即关机
shutdown-r now现在立即重启
shutdown-r+3三分钟后重启
e.重启之后,点击Login,输入用户名:root。回车后,再输入密码。即可登录进系统。
Ctrl+ Alt+ T快捷键打开超级终端。此时可以看到界面提示符显示为root用户。
25.安装增强功能
25.1桌面版安装增强功能
Devices->Install Guest Additions安装增强功能。但总提示安装增强功能失败,总提示强制释放。这是因为虚拟光驱里面已经有光盘(iso),而且正在使用中无法umount,导致addition.iso无法挂载,关闭虚拟机,在虚拟机管理界面释放虚拟光盘,。
然后启动虚拟机进入Ubuntu,重启之后,点击Login,输入用户名:root。回车后,再输入密码。即可登录进系统。再选择安装增强功能。
但安装的过程中出错,错误信息为:
Verifying archive integrity... All good.
Uncompressing VirtualBox 3.2.6 Guest Additions for Linux........
VirtualBox Guest Additions installer
Removing installed version 3.2.6 of VirtualBox Guest Additions...
Building the VirtualBox Guest Additions kernel modules
Building the main Guest Additions module...fail.
Installing the Window System drivers
Warning: unknown version of the X Window System installed. Not installing
X Window System drivers.
这是由于VirtualBox的版本太老导致的【8】。我的VirtualBox版本为:4.1.18。
需要下载最新的4.3.2版本的VirutalBox和VirtualBox Extension Pack。覆盖安装。
25.2 Server版安装增强功能
参考:Virtualbox Ubuntu Server 14.04安装guest additions()
25.3 Update:安装增强功能。
20160303:后来经验证发现,没有必要进行“24.如何以root用户登录?”这一步骤操作。因为可以先将命令行切换到root用户,然后在命令行下执行增强功能的安装。参考:virtual box安装增强功能(Ubuntu10.04)()
(1)首先命令行切换到root用户(su root),
(2)点击Devices->Install Guest Additions,
(3)然后执行`mount`命令,看增强功能包挂载到了哪个目录下(比如在/media/VBOXADDITIONS_4.0.4_69518/目录下),
(4)然后切换到该目录下(`cd/media/VBOXADDITIONS_4.0.4_69518/`);
(5)在该目录下找到VBoxLinuxAdditions.run文件,执行该文件(./VBoxLinuxAdditions.run)。
(6)执行完后,重启系统。
26.升级VirtualBox版本
升级VirtualBox版本很简单,一路Next即可完成安装。此时你如果“Start”虚拟机的话,它会提示你如下信息:
"Implementation of the USB 2.0 controller not found!
The device will be disabled. You can ignore this warning but there will be no USB 2.0 support in your VM. To fix this issue, either install the'Oracle VM VirtualBox Extension Pack' or disable USB 2.0 support in the VM settings"
这是由于没安装对应版本的VirtualBox Extension Pack造成的【9】。安装4.3.2版对应版本的VirtualBox Extension Pack即可。
打开VirtualBox程序,File->Preferences->选择Extensions选项。
点击“Remove Package”将以前的4.1.18版的VirtualBox Extension Pack删掉,然后点击“Add Package”,选择刚下载的4.3.2版的VirtualBox Extension Pack。按确定后它会自动安装。安装完毕就可以了。
27.继续安装增强功能。
此时,启动Ubuntu虚拟机。注意:在启动虚拟机之前,先打开Ubuntu虚拟机的Settings,选择“Storage”,将之前加载的虚拟镜像移除。然后再启动Ubuntu虚拟机。
启动虚拟机后,选择“Devices”菜单->选择“Insert Guest Additions CD Images”选项,它会提示你是否安装增强功能。点击“Run”,会自动安装。安装成功后,会显示如下的信息:
28.设定与Host OS共享目录
选择“Devices”->“Share Folder Settings”->点击最右面的“+”按钮,添加一个共享
29.重启Ubuntu,完成安装和设定
设定完成后,重启Ubuntu,这次你可以发现,启动后的Ubuntu的屏幕大小和分辨率变大了,和Host OS一样。表明增强功能安装成功。
另外,/media目录可以访问Host OS的D盘了,表明设定共享成功。
29.1设置共享 Updated:
后来发现使用普通用户登录Ubuntu后,所设置的共享目录无法访问,提示权限不够。下面是另外一种设置办法。
a.把要共享的文件夹挂载到虚拟机某一个文件上【10】
(1)首先需要保证VirtualBox增强功能已安装完成,因为后面的 vboxsf是增强功能中提供的。
(2)首先在mnt下创建一个文件夹,作为挂载的目标文件夹,然后执行 sudo mount-t vboxsf共享文件夹的名字虚拟机的挂载点
sudo mkdir/mnt/shared
sudo mount-t vboxsf F_DRIVE/mnt/shared/
之后进入/mnt/shared,可以发现共享文件夹下的文件可以复制了。
注意:共享文件夹的名字不要与挂载点的名字相同,比如上面,F_DRIVE与mnt下的shared文件夹不能相同。否则会出现如下错误:
/sbin/mount.vboxsf: mounting failed with the error: Protocol error
(3)卸载命令
sudo umount-f/mnt/shared
(4)之后每次要用的时候,都需要手动挂载,sudo mount-t vboxsf F_DRIVE/mnt/shared/
这样太麻烦了,有没有自动挂载的方法?有的。在/etc/fstab的最后添加一项【11】:
F_DRIVE/mnt/shared vboxsf rw,gid=1001000,uid=1000,auto 0 0
然后重启系统。
UPDATED:
(1)上面的groupid=100是错的,应该为1000.修改为1000后,重启并验证,发现不起作用。
(2)修改/etc/fstab的方法没起作用的可能原因以及解决方法:The solution I found was to force the vboxsf module to be loaded early, before the mounting of file systems. Just add vboxsf on a line of its own in/etc/modules.【13】
修改后的/etc/modules文件为:
#/etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with"#" are ignored.
lp
rtc
vboxsf
修改后重启系统,仍然不能正常工作。
(3)继续查资料,有说可能跟当前用户没有添加到vboxsf用户组中有关【14】。
首先查看用户组,发现当前用户确实没在vboxsf中。
cat/etc/group
->result:
vboxsf:x:1001:
然后将当前用户添加到用户组中:
sudo usermod-a-G vboxsf leige
再次检查,发现已将当前用户添加到用户组中了。
如何在Ubuntu 15.10上为单个网卡设置多个IP地址
有时候你可能想在你的网卡上使用多个 IP地址。遇到这种情况你会怎么办呢?买一个新的网卡并分配一个新的 IP?不,没有这个必要(至少在小型网络中)。现在我们可以在 Ubuntu系统中为一个网卡分配多个 IP地址。想知道怎么做到的?跟着我往下看,其实并不难。
这个方法也适用于 Debian以及它的衍生版本。
临时添加 IP地址
首先,让我们找到网卡的 IP地址。在我的 Ubuntu 15.10服务器版中,我只使用了一个网卡。
运行下面的命令找到 IP地址:
sudoip addr
样例输出:
1: lo:<LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6::1/128 scope host
valid_lft forever preferred_lft forever
2: enp0s3:<BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP groupdefault qlen 1000
link/ether 08:00:27:2a:03:4b brd ff:ff:ff:ff:ff:ff
inet 192.168.1.103/24 brd 192.168.1.255 scope global enp0s3
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fe2a:34e/64 scope link
valid_lft forever preferred_lft forever
或
sudoifconfig
样例输出:
enp0s3 Link encap:EthernetHWaddr08:00:27:2a:03:4b
inet addr:192.168.1.103Bcast:192.168.1.255Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fe2a:34e/64Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500Metric:1
RX packets:186 errors:0 dropped:0 overruns:0 frame:0
TX packets:70 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:21872(21.8 KB) TX bytes:9666(9.6 KB)
lo Link encap:LocalLoopback
inet addr:127.0.0.1Mask:255.0.0.0
inet6 addr:::1/128Scope:Host
UP LOOPBACK RUNNING MTU:65536Metric:1
RX packets:217 errors:0 dropped:0 overruns:0 frame:0
TX packets:217 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:38793(38.7 KB) TX bytes:38793(38.7 KB)
正如你在上面输出中看到的,我的网卡名称是 enp0s3,它的 IP地址是 192.168.1.103。
现在让我们来为网卡添加一个新的 IP地址,例如说 192.168.1.104。
打开你的终端并运行下面的命令添加额外的 IP。
sudoip addr add 192.168.1.104/24 dev enp0s3
用命令检查是否启用了新的 IP:
sudoip address show enp0s3
样例输出:
2: enp0s3:<BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP groupdefault qlen 1000
link/ether 08:00:27:2a:03:4e brd ff:ff:ff:ff:ff:ff
inet 192.168.1.103/24 brd 192.168.1.255 scope global enp0s3
valid_lft forever preferred_lft forever
inet 192.168.1.104/24 scope global secondary enp0s3
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fe2a:34e/64 scope link
valid_lft forever preferred_lft forever
类似地,你可以添加任意数量的 IP地址,只要你想要。
让我们 ping一下这个 IP地址验证一下。
sudoping192.168.1.104
样例输出
PING 192.168.1.104(192.168.1.104)56(84) bytes of data.
64 bytes from192.168.1.104: icmp_seq=1 ttl=64time=0.901 ms
64 bytes from192.168.1.104: icmp_seq=2 ttl=64time=0.571 ms
64 bytes from192.168.1.104: icmp_seq=3 ttl=64time=0.521 ms
64 bytes from192.168.1.104: icmp_seq=4 ttl=64time=0.524 ms
好极了,它能工作!
要删除 IP,只需要运行:
sudoip addr del192.168.1.104/24 dev enp0s3
再检查一下是否删除了 IP。
sudoip address show enp0s3
样例输出:
2: enp0s3:<BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP groupdefault qlen 1000
link/ether 08:00:27:2a:03:4e brd ff:ff:ff:ff:ff:ff
inet 192.168.1.103/24 brd 192.168.1.255 scope global enp0s3
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fe2a:34e/64 scope link
valid_lft forever preferred_lft forever
可以看到已经没有了!!
正如你所知,重启系统后这些设置会失效。那么怎么设置才能永久有效呢?这也很简单。
添加永久 IP地址
Ubuntu系统的网卡配置文件是/etc/network/interfaces。
让我们来看看上面文件的具体内容。
sudocat/etc/network/interfaces
输出样例:
#Thisfile describes the network interfaces available on your system
#and how to activate them.Formore information, see interfaces(5).
source/etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto enp0s3
iface enp0s3 inet dhcp
正如你在上面输出中看到的,网卡启用了 DHCP。
现在,让我们来分配一个额外的地址,例如 192.168.1.104/24。
编辑/etc/network/interfaces:
sudonano/etc/network/interfaces
如下添加额外的 IP地址。
#Thisfile describes the network interfaces available on your system
#and how to activate them.Formore information, see interfaces(5).
source/etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto enp0s3
iface enp0s3 inet dhcp
iface enp0s3 inet static
address 192.168.1.104/24
保存并关闭文件。
运行下面的命令使更改无需重启即生效。
sudo ifdown enp0s3&&sudo ifup enp0s3
样例输出:
Killed old client process
InternetSystemsConsortium DHCP Client4.3.1
Copyright2004-2014InternetSystemsConsortium.
All rights reserved.
Forinfo, please visit
Listening on LPF/enp0s3/08:00:27:2a:03:4e
Sending on LPF/enp0s3/08:00:27:2a:03:4e
Sending on Socket/fallback
DHCPRELEASE on enp0s3 to 192.168.1.1 port 67(xid=0x225f35)
InternetSystemsConsortium DHCP Client4.3.1
Copyright2004-2014InternetSystemsConsortium.
All rights reserved.
Forinfo, please visit
Listening on LPF/enp0s3/08:00:27:2a:03:4e
Sending on LPF/enp0s3/08:00:27:2a:03:4e
Sending on Socket/fallback
DHCPDISCOVER on enp0s3 to 255.255.255.255 port 67 interval 3(xid=0xdfb94764)
DHCPREQUEST of 192.168.1.103 on enp0s3 to 255.255.255.255 port 67(xid=0x6447b9df)
DHCPOFFER of 192.168.1.103from192.168.1.1
DHCPACK of 192.168.1.103from192.168.1.1
bound to 192.168.1.103-- renewal in35146 seconds.
注意:如果你从远程连接到服务器,把上面的两个命令放到一行中非常重要,因为第一个命令会断掉你的连接。而采用这种方式可以保留你的 ssh会话。
现在,让我们用下面的命令来检查一下是否添加了新的 IP:
sudoip address show enp0s3
输出样例:
2: enp0s3:<BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP groupdefault qlen 1000
link/ether 08:00:27:2a:03:4e brd ff:ff:ff:ff:ff:ff
inet 192.168.1.103/24 brd 192.168.1.255 scope global enp0s3
valid_lft forever preferred_lft forever
inet 192.168.1.104/24 brd 192.168.1.255 scope global secondary enp0s3
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fe2a:34e/64 scope link
valid_lft forever preferred_lft forever
很好!我们已经添加了额外的 IP。
再次 ping IP地址进行验证。
sudoping192.168.1.104
样例输出:
PING 192.168.1.104(192.168.1.104)56(84) bytes of data.
64 bytes from192.168.1.104: icmp_seq=1 ttl=64time=0.137 ms
64 bytes from192.168.1.104: icmp_seq=2 ttl=64time=0.050 ms
64 bytes from192.168.1.104: icmp_seq=3 ttl=64time=0.054 ms
64 bytes from192.168.1.104: icmp_seq=4 ttl=64time=0.067 ms
好极了!它能正常工作。就是这样。
ubuntu查看安装了哪些包
ubuntu如何查看安装了哪些包
命令作用
apt-cachesearchpackage搜索包
apt-cacheshowpackage获取包的相关信息,蚂尘嫌如说明、大小、版本等
sudoapt-getinstallpackage安装包
sudoapt-getinstallpackage--reinstall重新安装包
sudoapt-get-finstall强制安装
sudoapt-getremovepackage删除包
sudoapt-getremovepackage--purge删除包,包括删除配置文件等
sudoapt-getautoremove自动删除不需要的包
sudoapt-getupdate更新源
sudoapt-getupgrade更新已安装的包
sudoapt-getdist-upgrade升级系统
sudoapt-getdselect-upgrade使用dselect升级
apt-cachedependspackage了解使用依赖
apt-cacherdependspackage了解某个具体的依赖
sudoapt-getbuild-deppackage安装相关兄悄的编译环境
apt-getsourcepackage下载该闷手包的源代码
sudoapt-getcleansudoapt-getautoclean清理下载文件的存档
sudoapt-getcheck检查是否有损坏的依赖
ubuntu中如何查看安装了什么软件
ubuntu安装和查看已安装
说明:由于图形化界面方法(如Add/Remove...和SynapticPackageManageer)比较简单,所以这里主要总结在终端通过命令行方式进行的软件包安装、卸载和删除的方法。
一、Ubuntu中软件安装方闭余册法
1、APT方式
(1)普通安装:apt-getinstallsoftname1softname2…;
(2)修复安装:apt-get-finstallsoftname1softname2...;(-fAtemptocorrectbrokendependencies)
(3)重新安装:apt-get--reinstallinstallsoftname1softname2...;
2、Dpkg方式
(1)普通安装:dpkg-ipackage_name.deb
3、源码安装(.tar、tar.gz、tar.bz2、tar.Z)
首先解压缩源码压缩包然后通过tar命令来完成
a.解xx.tar.gz:tarzxfxx.tar.gz
b.解xx.tar.Z:tarzxfxx.tar.Z
c.解xx.tgz:tarzxfxx.tgz
d.解xx.bz2:bunzip2xx.bz2
e.解xx.tar:tarxfxx.tar
然后进入到解压出的目录中,建议先读一下毁漏README之类的说明文件,因为此时不同源代码包或者预编译包可能存在差异,然后建议使用ls-F--color或者ls-F命令(实际上我的只需要l命令即可)查看一下可执行文件,可执行文件会以*号的尾部标志。
一般依次执行./configure
make
sudomakeinstall
即可完成安装。
二、Ubuntu中软件包的卸载方法
1、APT方式
(1)移除式卸载:apt-getremovesoftname1softname2…;(移除软件包,当包尾部有+时,意为安装)
(2)清除式卸载:apt-get--purgeremovesoftname1softname2...;(同时清除配置)
清除式卸载:apt-getpurgesofname1softname2...;(同上,也清除配置文件)
2、Dpkg方式
(1)移除式卸载:dpkg-rpkg1pkg2...;
(2)清除式卸载:dpkg-Ppkg1pkg2...;
三、Ubuntu中软件包的查询方法
Dpkg使用文本文件来作为数据库.通称在/var/lib/dpkg目录下.通称在status文件中存储软件状态,和控制信息.在info/目录下备份控制文件,并在其下的.list文件中记录安装文件清单,其下的.mdasums保存文件的MD5编码.
体验使用数据库的时刻到了:
$dpkg-lDesired=Unknown/Install/Remove/Purge/Hold|Status=Not/Installed/Config-files/Unpacked/Failed-config/Half-installed|/Err?=(none)/Hold/Reinst-required/X=both-problems(Status,Err:uppercase=bad)||/NameVersionDescription+++-===========-================-========================================iiaalib11.4p5-28asciiartlibrary-transitionalpackageiiadduser3.85Addandremoveusersandgroupsiialien.63installnon-nativepackageswithdpkg......
每条记录对应一个软件包,注意每条记录的第一,二,三个字符.这就是软件包的状态标识,后边依此是软件包名轿宏称,版本号,和简单描述.
第一字符为期望值,它包括:
u状态未知,这意味着软件包未安装,并且用户也未发出安装请求.
i用户请求安装软件包.
r用户请求卸载软件包.
p用户请求清除软件包.
h用户请求保持软件包版本锁定.
第二列,是软件包的当前状态.此列包括软件包的六种状态.
n软件包未安装.
i软件包安装并完成配置.
c软件包以前安装过,现在删除了,但是它的配置文件还留在系统中.
u软件包被解包,但还未配置.
f试图配置软件包,但是失败了.
h软件包安装,但是但是没有成功.
第三列标识错误状态,可以总结为四种状态.第一种状态标识没有问题,为空.其它三种符号则标识相应问题.
h软件包被强制保持,因为有其它软件包依赖需求,无法升级.
r软件包被破坏,可能需要重新安装才能正常使用(包括删除).
x软包件被破坏,并且被强制保持.
也可以以统配符模式进行模糊查询,比如我要查找以nano字符开始的所有软件包:
$dpkg-lnano*Desired=Unknown/Install/Remove/Purge/Hold|Status=Not/Installed/Config-files/Unpacked/Failed-config/Half-installed|/Err?=(none)/Hold/Reinst-required/X=both-problems(Status,Err:uppercase=bad)||/NameVersionDescription+++-==============-==============-============================================iinano1.3.10-2freePicoclonewithsomenewfeaturespnnano-tinynone(nodescriptionavailable)unnanobloggernone(nodescriptionavailable)
以上状态说明:系统中安装了nano版本为1.3.10-2;安装过nano-tiny,后来又清除了;从未安装过nanoblogger.
如果觉得dpkg的参数过多,不利于记忆的话,完全可以使用dpkg-query进行dpkg数据库查询.
应用范例:
查询系统中属于nano的文件:
$dpkg--listfilesnano
or
$dpkg-query-Lnano
查看软件nano的详细信息:
$dpkg-snano
or
$dpkg-query-snano
查看系统中软件包状态,支持模糊查询:
$dpkg-l
or
$dpkg-query-l
查看某个文件的归属包:
$dpkg-query-Snano
or
$dpkg-Snano
三、其他应用总结
apt-cachesearch#------(package搜索包)
apt-cacheshow#------(package获取包的相关信息,如说明、大小、版本等)
apt-getinstall#------(package安装包)
apt-getinstall#-----(package--reinstall重新安装包)
apt-get-finstall#-----(强制安装,"-f=--fix-missing"当是修复安装吧...)
apt-getremove#-----(package删除包)
apt-getremove--purge#------(package删除包,包括删除配置文件等)
apt-getautoremove--purge#----(package删除包及其依赖的软件包+配置文件等(只对6.10有效,强烈推荐))
apt-getupdate#------更新源
apt-getupgrade#------更新已安装的包
apt-getdist-upgrade#---------升级系统
apt-getdselect-upgrade#------使用dselect升级
apt-cachedepends#-------(package了解使用依赖)
apt-cacherdepends#------(package了解某个具体的依赖,当是查看该包被哪些包依赖吧...)
apt-getbuild-dep#------(package安装相关的编译环境)
apt-getsource#------(package下载该包的源代码)
apt-getcleanapt-getautoclean#--------清理下载文件的存档只清理过时的包
apt-getcheck#-------检查是否有损坏的依赖
dpkg-Sfilename-----查找filename属于哪个软件包
apt-filesearchfilename-----查找filename属于哪个软件包
apt-filelistpackagename-----列出软件包的内容
apt-fileupdate--更新apt-file的数据库
dpkg--info"软件包名"--列出软件包解包后的包名称.
dpkg-l--列出当前系统中所有的包.可以和参数less一起使用在分屏查看.(类似于rpm-qa)
dpkg-l|grep-i"软件包名"--查看系统中与"软件包名"相关联的包.
dpkg-s查询已安装的包的详细信息.
dpkg-L查询系统中已安装的软件包所安装的位置.(类似于rpm-ql)
dpkg-S查询系统中某个文件属于哪个软件包.(类似于rpm-qf)
dpkg-I查询deb包的详细信息,在一个软件包下载到本地之后看看用不用安装(看一下呗).
dpkg-i手动安装软件包(这个命令并不能解决软件包之前的依赖性问题),如果在安装某一个软件包的时候遇到了软件依赖的问题,可以用apt-get-finstall在解决信赖性这个问题.
dpkg-r卸载软件包.不是完全的卸载,它的配置文件还存在.
dpkg-P全部卸载(但是还是不能解决软件包的依赖性的问题)
dpkg-reconfigure重新配置
apt-getinstall
下载软件包,以及所有依赖的包,同时进行包的安装或升级。如果某个包被设置了hold(停止标志,就会被搁在一边(即不会被升级)。更多hold细节请看下面。
apt-getremove[--purge]
移除以及任何依赖这个包的其它包。
--purge指明这个包应该被完全清除(purged),更多信息请看dpkg-P。
apt-getupdate
升级来自Debian镜像的包列表,如果你想安装当天的任何软件,至少每天运行一次,而且每次修改了
/etc/apt/sources.list後,必须执行。
apt-getupgrade[-u]
升级所有已经安装的包为最新可用版本。不会安装新的或移除老的包。如果一个包改变了依赖关系而需要安装一个新的包,那么它将不会被升级,而是标志为hold。apt-getupdate不会升级被标志为hold的包(这个也就是hold的意思)。请看下文如何手动设置包为hold。我建议同时使用'-u'选项,因为这样你就能看到哪些包将会被升级。
apt-getdist-upgrade[-u]
和apt-getupgrade类似,除了dist-upgrade会安装和移除包来满足依赖关系。因此具有一定的危险性。
apt-cachesearch
在软件包名称和描述中,搜索包含xxx的软件包。
apt-cacheshow
显示某个软件包的完整的描述。
apt-cacheshowpkg
显示软件包更多细节,以及和其它包的关系。
dselect
console-apt
aptitude
gnome-apt
APT的几个图形前端(其中一些在使用前得先安装)。这里dselect无疑是最强大的,也是最古老,最难驾驭。
普通Dpkg用法
dpkg-i
安装一个Debian包文件,如你手动下载的文件。
dpkg-c
列出的内容。
dpkg-I
从中提取包信息。
dpkg-r
移除一个已安装的包。
dpkg-P
完全清除一个已安装的包。和remove不同的是,remove只是删掉数据和可执行文件,purge另外还删除所有的配制文件。
dpkg-L
列出安装的所有文件清单。同时请看dpkg-c来检查一个.deb文件的内容。
dpkg-s
显示已安装包的信息。同时请看apt-cache显示Debian存档中的包信息,以及dpkg-I来显示从一个.deb文件中提取的包信息。
dpkg-reconfigure
重新配制一个已经安装的包,如果它使用的是debconf(debconf为包安装提供了一个统一的配制界面)。你能够重新配制debconf它本身,如你想改变它的前端或提问的优先权。例如,重新配制debconf,使用一个dialog前端,简单运行:
dpkg-reconfigure--frontend=dialogdebconf(如果你安装时选错了,这里可以改回来哟:)
echo"hold"|dpkg--set-selections
设置的状态为hlod(命令行方式)
dpkg--get-selections""
取的的当前状态(命令行方式)
支持通配符,如:
Debian:~#dpkg--get-selections*wine*
libwinehold
libwine-alsahold
libwine-artshold
libwine-devhold
libwine-nashold
libwine-printhold
libwine-twainhold
winehold
wine+hold
wine-dochold
wine-utilshold
例如:
大家现在用的都是gaim-0.58+QQ-plugin,为了防止gaim被升级,我们可以采用如下方法:
方法一:
Debian:~#echo"gaimhold"|dpkg--set-selections
然後用下面命令检查一下:
Debian:~#dpkg--get-selections"gaim"
gaimhold
现在的状态标志是hold,就不能被升级了。
如果想恢复怎么办呢?
Debian:~#echo"gaiminstall"|dpkg--set-selections
Debian:~#dpkg--get-selections"gaim"
gaiminstall
这时状态标志又被重置为install,可以继续升级了。
同志们会问,哪个这些状态标志都写在哪个文件中呢?
在/var/lib/dpkg/status里,你也可以通过修改这个文件实现hold。
有时你会发现有的软件状态标志是purge,不要奇怪。
如:事先已经安装了amsn,然後把它卸了。
apt-getremove--purgeamsn
那么状态标志就从install变成purge。
方法二:
在/etc/apt下手动建一个preferences文件
内容:
Package:gaim
Pin:version0.58*
保存
dpkg-S
在包数据库中查找,并告诉你哪个包包含了这个文件。(注:查找的是事先已经安装的包)
--------------------------------------------
Debian的软件包管理工具命令不完全列表
--------------------------------------------
Debian系统中所有的包信息都在/var/lib/dpkg下.其中/var/lib/dpkg/info目录中保存了各个软件包的信息及管理文件.每个文件的作用如下:
以".conffiles"结尾的文件记录软件包的配置列表.
以".list"结尾的文件记录了软件包的文件列表,用户可在文件当中找到软件包文件的具体安装位置.
以".md5sums"结尾的文件记录了md5信息,用来进行包的验证的.
以".config"结尾的文件是软件包的安装配置角本.
以".postinst"角本是完成Debian包解开之后的配置工作,通常用来执行所安装软件包相关的命令和服务的重新启动.
以".preinst"角本在Debain解包之前运行,主要作用是是停止作用于即将升级的软件包服务直到软件包安装或和升级完成.
以".prerm"脚本负责停止与软件包关联的daemon服务,在删除软件包关联文件之前执行.
以".postrm"脚本负责修改软件包链接或文件关联,或删除由它创建的文件.
/var/lib/dpkg/available是软件包的描述信息.
包括当前系统中所有使用的Debian安装源中所有的软件包,还包括当前系统中已经安装和未安装的软件包.
1.dpkg包管理工具
dpkg-r卸载软件包.不是完全的卸载,它的配置文件还存在.
dpkg--info"软件包名"--列出软件包解包后的包名称.
dpkg-l--列出当前系统中所有的包.可以和参数less一起使用在分屏查看.
dpkg-l|grep-i"软件包名"--查看系统中与"软件包名"相关联的包.
dpkg-s查询已安装的包的详细信息.dpkg-L查询系统中已安装的软件包所安装的位置.
dpkg-S查询系统中某个文件属于哪个软件包.
dpkg-I查询deb包的详细信息,在一个软件包下载到本地之后看看用不用安装(看一下呗).
dpkg-i手动安装软件包(这个命令并不能解决软件包之前的依赖性问题),如果在安装某一个软件包的时候遇到了软件依赖的问题,可以用apt-get-finstall在解决信赖性这个问题.
dpkg-reconfigure重新配置
dpkg-P全部卸载(但是还是不能解决软件包的依赖性的问题)
如何在Ubuntu上检查一个软件包是否安装
1、列出当前安装的所有安装包,执行以下命令:
dpkg?-l
这个命令的输出会很多,因此一般不用。
2、要查询特定的软件包是否已经被安装,应该将输出通过管道输送给?grep?命令:
1
dpkg?-l?|?grep?apache2
上述命令查看?apache2包是否安装。
3、要查看某安装包安纯返信装了哪些文件到系统上,使用:
1
dpkg?-L?ufw
上述命令查看ufw包安装了哪些文件。
4、要查看某个文件是由世正哪个安装包安装的,使用:做轮
?dpkg?-S?/etc/host.conf
base-files:?/etc/host.conf
上述第一行查询?/etc/host.conf文件是由哪个包安装的,第二行输出显示,该文件属于base-files这个包。
如何查看Ubuntu下已安装包版本号
1、首先登录Ubuntu后,在命令行界面输入cat/etc/issue,点击回车,即可看到ubuntu版本号。
2、或者在命令行输入lsb_release-a,点击回车也可看到ubuntu的版本键贺掘号。
3、如果要查看系统内核版本,可以在命令行输入cat/proc/version。拍此
4、输入