1. 程式人生 > >遷移Linux mint 18.2 apt到Ubuntu Server 16.04 LTS

遷移Linux mint 18.2 apt到Ubuntu Server 16.04 LTS

des sage out mtu code 命令 local cti mic

1、問題描述

這裏有兩臺主機,其中

192.168.1.4上安裝的是Linux Mint 18.2 Sonya系統。主機名是qwfys,用戶名是lwk。

192.168.1.25上安裝的是Ubuntu Server 16.04.3 LT系統。主機名是ubuntu,用戶名是lwk。

當在192.168.1.25上輸入命令apt的時候這樣的:

lwk@ubuntu:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    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 group default qlen 1000
    link/ether 08:00:27:5e:65:ca brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.25/24 brd 192.168.1.255 scope global enp0s3
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fe5e:65ca/64 scope link 
       valid_lft forever preferred_lft forever
lwk@ubuntu:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.3 LTS
Release:    16.04
Codename:   xenial
lwk@ubuntu:~$ apt
apt 1.2.24 (amd64)
Usage: apt [options] command

apt is a commandline package manager and provides commands for
searching and managing as well as querying information about packages.
It provides the same functionality as the specialized APT tools,
like apt-get and apt-cache, but enables options more suitable for
interactive use by default.

Most used commands:
  list - list packages based on package names
  search - search in package descriptions
  show - show package details
  install - install packages
  remove - remove packages
  autoremove - Remove automatically all unused packages
  update - update list of available packages
  upgrade - upgrade the system by installing/upgrading packages
  full-upgrade - upgrade the system by removing/installing/upgrading packages
  edit-sources - edit the source information file

See apt(8) for more information about the available commands.
Configuration options and syntax is detailed in apt.conf(5).
Information about how to configure sources can be found in sources.list(5).
Package and version choices can be expressed via apt_preferences(5).
Security details are available in apt-secure(8).
                                        This APT has Super Cow Powers.
lwk@ubuntu:~$ 

當在192.168.1.4上輸入命令apt的時候卻是這樣的:

lwk@qwfys ~ $ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    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: wlp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 9c:b6:d0:dd:fc:f7 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.4/24 brd 192.168.1.255 scope global dynamic wlp2s0
       valid_lft 246699sec preferred_lft 246699sec
    inet6 fe80::a0fd:f518:e91a:dde0/64 scope link 
       valid_lft forever preferred_lft forever
lwk@qwfys ~ $ lsb_release -a
No LSB modules are available.
Distributor ID: LinuxMint
Description:    Linux Mint 18.2 Sonya
Release:    18.2
Codename:   sonya
lwk@qwfys ~ $ apt
apt
Usage: apt command [options]
       apt help command [options]

Commands:
  add-repository   - Add entries to apt sources.list
  autoclean        - Erase old downloaded archive files
  autoremove       - Remove automatically all unused packages
  build            - Build binary or source packages from sources
  build-dep        - Configure build-dependencies for source packages
  changelog        - View a package‘s changelog
  check            - Verify that there are no broken dependencies
  clean            - Erase downloaded archive files
  contains         - List packages containing a file
  content          - List files contained in a package
  deb              - Install a .deb package
  depends          - Show raw dependency information for a package
  dist-upgrade     - Upgrade the system by removing/installing/upgrading packages
  download         - Download the .deb file for a package
  edit-sources     - Edit /etc/apt/sources.list with your preferred text editor
  dselect-upgrade  - Follow dselect selections
  full-upgrade     - Same as ‘dist-upgrade‘
  held             - List all held packages
  help             - Show help for a command
  hold             - Hold a package
  install          - Install/upgrade packages
  list             - List packages based on package names
  policy           - Show policy settings
  purge            - Remove packages and their configuration files
  recommends       - List missing recommended packages for a particular package
  rdepends         - Show reverse dependency information for a package
  reinstall        - Download and (possibly) reinstall a currently installed package
  remove           - Remove packages
  search           - Search for a package by name and/or expression
  show             - Display detailed information about a package
  showhold         - Same as ‘held‘
  source           - Download source archives
  sources          - Same as ‘edit-sources‘
  unhold           - Unhold a package
  update           - Download lists of new/upgradable packages
  upgrade          - Perform a safe upgrade
  version          - Show the installed version of a package

lwk@qwfys ~ $ apt help install
"apt install " is equivalent to "sudo /usr/bin/apt install "
lwk@qwfys ~ $ apt help add-repository
"apt add-repository " is equivalent to "sudo add-apt-repository "
lwk@qwfys ~ $ apt help purge
"apt purge " is equivalent to "sudo /usr/bin/apt purge "
lwk@qwfys ~ $ 

有沒有一種辦法讓Ubuntu Server 16.04.3 LT系統也擁有Linux Mint 18.2 Sonya那樣的apt功能呢?

2、解決方案

讓我我們先查找一下apt命令的出處吧。

在主機192.168.1.4上我們輸入如下命令

lwk@qwfys ~ $ whereis apt
apt: /usr/bin/apt /usr/lib/apt /etc/apt /usr/local/bin/apt /usr/share/man/man8/apt.8.gz
lwk@qwfys ~ $ 

在主機192.168.1.4上我們輸入如下命令

lwk@ubuntu:~$ whereis apt
apt: /usr/bin/apt /usr/lib/apt /etc/apt /usr/share/man/man8/apt.8.gz
lwk@ubuntu:~$ 

通過對比,我們發現Linux Mint 18.2 Sonya系統中的目錄/usr/local/bin/下面多了一個apt文件。那麽我們假定將Linux Mint 18.2 Sonya系統中的文件/usr/local/bin/apt復制一份放到Ubuntu Server 16.04.3 LT系統中的目錄/usr/local/bin/下,會不會有效果呢,我們不防試一下。

在主機192.168.1.25上我們輸入如下命令

lwk@ubuntu:~$ ll
total 36
drwxr-xr-x 4 lwk  lwk  4096 Nov 23 00:06 ./
drwxr-xr-x 3 root root 4096 Nov 10 11:20 ../
-rw------- 1 lwk  lwk  3479 Nov 23 00:03 .bash_history
-rw-r--r-- 1 lwk  lwk   220 Nov 10 11:20 .bash_logout
-rw-r--r-- 1 lwk  lwk  3771 Nov 10 11:20 .bashrc
drwx------ 2 lwk  lwk  4096 Nov 10 11:30 .cache/
-rw-r--r-- 1 lwk  lwk   655 Nov 10 11:20 .profile
drwx------ 2 lwk  lwk  4096 Nov 10 11:42 .ssh/
-rw-r--r-- 1 lwk  lwk     0 Nov 10 11:38 .sudo_as_admin_successful
-rw------- 1 root root 3433 Nov 23 00:00 .viminfo
lwk@ubuntu:~$ 

確認主機192.168.1.25用戶lwk主目錄下沒有apt文件。

這時,在主機192.168.1.4上我們輸入如下命令

lwk@qwfys ~ $ scp /usr/local/bin/apt [email protected]:~/
apt                                                                                                                                                                                                         100% 6329     6.2KB/s   00:00    
lwk@qwfys ~ $ 

切換到主機192.168.1.25上輸入如下命令

lwk@ubuntu:~$ ll
total 44
drwxr-xr-x 4 lwk  lwk  4096 Nov 23 00:48 ./
drwxr-xr-x 3 root root 4096 Nov 10 11:20 ../
-rwxr-xr-x 1 lwk  lwk  6329 Nov 23 00:48 apt*
-rw------- 1 lwk  lwk  3479 Nov 23 00:03 .bash_history
-rw-r--r-- 1 lwk  lwk   220 Nov 10 11:20 .bash_logout
-rw-r--r-- 1 lwk  lwk  3771 Nov 10 11:20 .bashrc
drwx------ 2 lwk  lwk  4096 Nov 10 11:30 .cache/
-rw-r--r-- 1 lwk  lwk   655 Nov 10 11:20 .profile
drwx------ 2 lwk  lwk  4096 Nov 10 11:42 .ssh/
-rw-r--r-- 1 lwk  lwk     0 Nov 10 11:38 .sudo_as_admin_successful
-rw------- 1 root root 3433 Nov 23 00:00 .viminfo
lwk@ubuntu:~$ 

這時候我們發現apt文件的歸屬不對,這裏改一下,然後將其扔到/usr/local/bin/,然後查看有沒有生效。

lwk@ubuntu:~$ sudo chown root:root apt
[sudo] password for lwk: 
lwk@ubuntu:~$ ll
total 44
drwxr-xr-x 4 lwk  lwk  4096 Nov 23 00:48 ./
drwxr-xr-x 3 root root 4096 Nov 10 11:20 ../
-rwxr-xr-x 1 root root 6329 Nov 23 00:48 apt*
-rw------- 1 lwk  lwk  3479 Nov 23 00:03 .bash_history
-rw-r--r-- 1 lwk  lwk   220 Nov 10 11:20 .bash_logout
-rw-r--r-- 1 lwk  lwk  3771 Nov 10 11:20 .bashrc
drwx------ 2 lwk  lwk  4096 Nov 10 11:30 .cache/
-rw-r--r-- 1 lwk  lwk   655 Nov 10 11:20 .profile
drwx------ 2 lwk  lwk  4096 Nov 10 11:42 .ssh/
-rw-r--r-- 1 lwk  lwk     0 Nov 10 11:38 .sudo_as_admin_successful
-rw------- 1 root root 3433 Nov 23 00:00 .viminfo
lwk@ubuntu:~$ sudo mv apt /usr/local/bin/ 
lwk@ubuntu:~$ apt
apt
Usage: apt command [options]
       apt help command [options]

Commands:
  add-repository   - Add entries to apt sources.list
  autoclean        - Erase old downloaded archive files
  autoremove       - Remove automatically all unused packages
  build            - Build binary or source packages from sources
  build-dep        - Configure build-dependencies for source packages
  changelog        - View a package‘s changelog
  check            - Verify that there are no broken dependencies
  clean            - Erase downloaded archive files
  contains         - List packages containing a file
  content          - List files contained in a package
  deb              - Install a .deb package
  depends          - Show raw dependency information for a package
  dist-upgrade     - Upgrade the system by removing/installing/upgrading packages
  download         - Download the .deb file for a package
  edit-sources     - Edit /etc/apt/sources.list with your preferred text editor
  dselect-upgrade  - Follow dselect selections
  full-upgrade     - Same as ‘dist-upgrade‘
  held             - List all held packages
  help             - Show help for a command
  hold             - Hold a package
  install          - Install/upgrade packages
  list             - List packages based on package names
  policy           - Show policy settings
  purge            - Remove packages and their configuration files
  recommends       - List missing recommended packages for a particular package
  rdepends         - Show reverse dependency information for a package
  reinstall        - Download and (possibly) reinstall a currently installed package
  remove           - Remove packages
  search           - Search for a package by name and/or expression
  show             - Display detailed information about a package
  showhold         - Same as ‘held‘
  source           - Download source archives
  sources          - Same as ‘edit-sources‘
  unhold           - Unhold a package
  update           - Download lists of new/upgradable packages
  upgrade          - Perform a safe upgrade
  version          - Show the installed version of a package

lwk@ubuntu:~$  

至此,我們發現已經將Linux Mint 18.2 Sonya系統中的apt命令成功遷移到了Ubuntu Server 16.04.3 LT系統。

遷移Linux mint 18.2 apt到Ubuntu Server 16.04 LTS