Linux常见问题

1、安装软件包后,卸载时出现
E:Sub-process /usr/bin/dpkg returned an errorcode (1)
的解决办法:
cd /var/lib/dpkg/
sudo mv info info.bak
sudo mkdir info
然后再:

sudo apt-get install -f


2.ubuntu系统下“关于'xx'用户不在 sudoers文件中,此事将被报告。”的解决方法

问题描述: 使用sudo命令时,提示“xx用户不在sudoers文件中,此事将被报告。” sudo命令失败。
 

本地尝试结果:(以下xx为本地普通用户名)
      
      方法一,添加xx用户到sudo组
         
      使用"id xx",提示如下:
      uid=1000(xx) gid=1000(xx)组=1000(xx),126(uml-net)      //用户xx不在sudo组中
      使用 “usermod -G sudo xx”添加xx到sudo组即可。

      方法二,编辑sudoer文本,添加xx的权限

      nano /etc/sudoers,编辑文本如下:
      Defaults   env_reset
      Defaults   mail_badpass
      Defaults   secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

      # Host alias specification

      # User alias specification

      # Cmnd alias specification

      # User privilege specification
      root   ALL=(ALL:ALL) ALL
      # Members of the admin group may gain root privileges
      min ALL=(ALL:ALL) ALL

      # Allow members of group sudo to execute any command
      %sudo   ALL=(ALL) ALL
      xx      ALL=(ALL) ALL  
      
      重启后使用 id xx,提示如下:
      uid=1000(xx) gid=1000(xx)组=1000(xx),27(sudo),126(uml-net)      //成功
          
      方法三:
      编辑 /etc/group文件,我用的nano命令编辑,进入文本后用ctrl+w进入文本搜索,输入sudo,定位sudo组文本所在,在    “sudo:x:27:”后添加你的用户名,操作结束。
      使用"id xx",提示如下:
      uid=1000(xx) gid=1000(xx)组=1000(xx),27(sudo),126(uml-net)      //成功
      测试使用sudo apt-get update 输入密码后 正常更新软件目录。


3.mkdir test11创建test11文件夹

  cd test11后 touch 1.txt 创建1.txt的文件

  vim 1.txt 编辑文件

  vim 1.txt i 修改文件

  esc+:后  q(没有修改的退出,如有修改则无法退出);

           wq(保存并退出)

           w 保存;
           w filename 另存为filename;
           wq! 保存退出;
           wq! filename 注:以filename为文件名保存后退出;
           q! 不保存退出;(退出帮助窗口)

  mv 1.txt test.txt把1.txt重命名为test.txt

  rm test.txt(删除文件)

  cd -(返回上级目录)

  rmdir test11(删除文件夹)

4.root密码设置

  安装完Ubuntu后忽然意识到没有设置root密码,不知道密码自然就无法进入根用户下。到网上搜了一下,原来是这麽回事。Ubuntu的默认root密码是随机的,即每次开机都有一个新的root密码。我们可以在终端输入命令 sudo passwd,然后输入当前用户的密码,enter,终端会提示我们输入新的密码并确认,此时的密码就是root新密码。修改成功后,输入命令 su root,再输入新的密码就ok了。


5.ubuntu的“无法解析或打开软件包的列表或是状态文件”的解决办法


    sudo rm /var/lib/apt/lists/* -vf
  sudo apt-get update

6.winscp登录提示“由于目标计算机积极拒绝,无法连接”的错误

  ubuntu默认并没有安装ssh服务,如果通过ssh链接ubuntu,需要自己手动安装ssh-server。判断是否安装ssh服务,可以通过如下 命令进行:

xjj@xjj-desktop:~$ ssh localhost

ssh: connect to host localhost port 22: Connection refused

如上所示,表示没有还没有安装,可以通过apt安装,命令如下:

-desktop:~$ sudo apt-get install openssh-server  

xjj@xjj-desktop:~$ sudo apt-get install openssh-server

系统将自动进行安装,安装完成以后,先启动服务:

@xjj-desktop:~$ sudo /etc/init.d/ssh start  

xjj@xjj-desktop:~$ sudo /etc/init.d/ssh start

启动后,可以通过如下命令查看服务是否正确启动

@xjj-desktop:~$ ps -e|grep ssh   

6212 ?        00:00:00 sshd  

xjj@xjj-desktop:~$ ps -e|grep ssh 6212 ? 00:00:00 sshd

如上表示启动ok。注意,ssh默认的端口是22,可以更改端口,更改后先stop,

然后start就可以了。改配置在/etc/ssh/sshd_config下,如下所示。

xjj@xjj-desktop:~$ vi /etc/ssh/sshd_config   

# Package generated configuration file   

# See the sshd(8) manpage for details   

# What ports, IPs and protocols we listen for  

Port 22  

# Package generated configuration file

# See the sshd(8) manpage for details

# What ports, IPs and protocols we listen for

Port 22

最后,应该是连接的时候了。请看如下命令:

xjj@xjj-desktop:~$ ssh exceljava@192.168.158.129  

xjj@xjj-desktop:~$ vi /etc/ssh/sshd_config


7.无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用)

   结果终端提示:
   无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用)
   E: 无法锁定管理目录(/var/lib/dpkg/),是否有其他进程正占用它?”

   解决办法如下:
   1.终端输入 ps  -aux ,列出进程,找到含有apt-get的进程,直接sudo kill PID解决。
   2.强制解锁--命令:
   sudo rm /var/cache/apt/archives/lock
   sudo rm /var/lib/dpkg/lock


8.子进程 已安装的 post-installation 脚本 返回了错误号 10

  

1.$ sudo mv /var/lib/dpkg/info /var/lib/dpkg/info_old //现将info文件夹更名
2.$ sudo mkdir /var/lib/dpkg/info //再新建一个新的info文件夹
3.$ sudo apt-get update, apt-get -f install //不用解释了吧
4.$ sudo mv /var/lib/dpkg/info/* /var/lib/dpkg/info_old //执行完上一步操作后会在新的info文件夹下生成一些文件,现将这些文件全部移到info_old文件夹下
5.$ sudo rm -rf /var/lib/dpkg/info //把自己新建的info文件夹删掉
6.$ sudo mv /var/lib/dpkg/info_old /var/lib/dpkg/info //把以前的info文件夹重新改回名字


9.dpkg:警告:无法找到软件包 XXXX 问题


因为多次尝试,使用了各种apt-get install  +apt-get remove ,结果就导致出现了 一些“pkg:警告:无法找到软件包 XXXX ” 问题
当时,警告还是很少的 也就是提示无法找到的包不多,渐渐地,服务器装的东西多了,这个问题就越来越明显
于是求google 大师,找各种答案  其中:
1.$ sudo mv /var/lib/dpkg/info /var/lib/dpkg/info_old //现将info文件夹更名
2.$ sudo mkdir /var/lib/dpkg/info //再新建一个新的info文件夹
3.$ sudo apt-get update, apt-get -f install
4.$ sudo mv /var/lib/dpkg/info/* /var/lib/dpkg/info_old //执行完上一步操作后会在新的info文件夹下生成一些文件,现将这些文件全部移到info_old文件夹下
5.$ sudo rm -rf /var/lib/dpkg/info //把自己新建的info文件夹删掉
6.$ sudo mv /var/lib/dpkg/info_old /var/lib/dpkg/info //把以前的info文件夹重新改回名字

尝试多次,依然会出现那个问题!
其实这里 我们可以发现为什么会在安装新的内容时会出现无法找到软件包问题,因为在apt-get install 安装一个新包时 先回去检查/var/lib/dpkg/info/目录下的已安装包的配置文件信息;如果发现有已经安装的应用 的配置文件信息不在info目录下 就会提示这个错误

 可以通过:sudo dpkg --configure -a
然后通过:dpkg -l | grep ^ii | awk '{print $2}' | grep -v XXX | xargs sudo aptitude reinstall
重新获取包内容配置信息 ,这样一步步重新安装下去 很快就可以解决这个问题了
二.当然也还有第二种方法,那就是通过:sudo apt-get --reinstall install `dpkg --get-selections | grep '[[:space:]]install' | cut -f1`
来重新安装全部软件,会全部刷新info目录 不过这个方法就要多花点时间去等了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值