共计 8554 个字符,预计需要花费 22 分钟才能阅读完成。
1、问题描述
这里有两台主机,其中
192.168.1.4 上安装的是 Linux Mint 18.2 Sonya 系统。主机名是 linuxidccom,用户名是 linuxidc。
192.168.1.25 上安装的是 Ubuntu Server 16.04.3 LT 系统。主机名是 ubuntu,用户名是 linuxidc。
当在 192.168.1.25 上输入命令 apt 的时候这样的:
linuxidc@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
linuxidc@ubuntu:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.3 LTS
Release: 16.04
Codename: xenial
linuxidc@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.
linuxidc@ubuntu:~$
当在 192.168.1.4 上输入命令 apt 的时候却是这样的:
linuxidc@linuxidccom ~ $ 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
linuxidc@linuxidccom ~ $ lsb_release -a
No LSB modules are available.
Distributor ID: LinuxMint
Description: Linux Mint 18.2 Sonya
Release: 18.2
Codename: sonya
linuxidc@linuxidccom ~ $ 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
linuxidc@linuxidccom ~ $ apt help install
"apt install" is equivalent to "sudo /usr/bin/apt install"
linuxidc@linuxidccom ~ $ apt help add-repository
"apt add-repository" is equivalent to "sudo add-apt-repository"
linuxidc@linuxidccom ~ $ apt help purge
"apt purge" is equivalent to "sudo /usr/bin/apt purge"
linuxidc@linuxidccom ~ $
有没有一种办法让 Ubuntu Server 16.04.3 LT 系统也拥有 Linux Mint 18.2 Sonya 那样的 apt 功能呢?
2、解决方案
让我我们先查找一下 apt 命令的出处吧。
在主机 192.168.1.4 上我们输入如下命令
linuxidc@linuxidccom ~ $ whereis apt
apt: /usr/bin/apt /usr/lib/apt /etc/apt /usr/local/bin/apt /usr/share/man/man8/apt.8.gz
linuxidc@linuxidccom ~ $
在主机 192.168.1.4 上我们输入如下命令
linuxidc@ubuntu:~$ whereis apt
apt: /usr/bin/apt /usr/lib/apt /etc/apt /usr/share/man/man8/apt.8.gz
linuxidc@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 上我们输入如下命令
linuxidc@ubuntu:~$ ll
total 36
drwxr-xr-x 4 linuxidc lwk 4096 Nov 23 00:06 ./
drwxr-xr-x 3 root root 4096 Nov 10 11:20 ../
-rw------- 1 linuxidc lwk 3479 Nov 23 00:03 .bash_history
-rw-r--r-- 1 linuxidc lwk 220 Nov 10 11:20 .bash_logout
-rw-r--r-- 1 linuxidc lwk 3771 Nov 10 11:20 .bashrc
drwx------ 2 linuxidc lwk 4096 Nov 10 11:30 .cache/
-rw-r--r-- 1 linuxidc lwk 655 Nov 10 11:20 .profile
drwx------ 2 linuxidc lwk 4096 Nov 10 11:42 .ssh/
-rw-r--r-- 1 linuxidc lwk 0 Nov 10 11:38 .sudo_as_admin_successful
-rw------- 1 root root 3433 Nov 23 00:00 .viminfo
linuxidc@ubuntu:~$
确认主机 192.168.1.25 用户 linuxidc 主目录下没有 apt 文件。
这时,在主机 192.168.1.4 上我们输入如下命令
linuxidc@linuxidccom ~ $ scp /usr/local/bin/apt linuxidc@192.168.1.25:~/
apt 100% 6329 6.2KB/s 00:00
linuxidc@linuxidccom ~ $
切换到主机 192.168.1.25 上输入如下命令
linuxidc@ubuntu:~$ ll
total 44
drwxr-xr-x 4 linuxidc lwk 4096 Nov 23 00:48 ./
drwxr-xr-x 3 root root 4096 Nov 10 11:20 ../
-rwxr-xr-x 1 linuxidc lwk 6329 Nov 23 00:48 apt*
-rw------- 1 linuxidc lwk 3479 Nov 23 00:03 .bash_history
-rw-r--r-- 1 linuxidc lwk 220 Nov 10 11:20 .bash_logout
-rw-r--r-- 1 linuxidc lwk 3771 Nov 10 11:20 .bashrc
drwx------ 2 linuxidc lwk 4096 Nov 10 11:30 .cache/
-rw-r--r-- 1 linuxidc lwk 655 Nov 10 11:20 .profile
drwx------ 2 linuxidc lwk 4096 Nov 10 11:42 .ssh/
-rw-r--r-- 1 linuxidc lwk 0 Nov 10 11:38 .sudo_as_admin_successful
-rw------- 1 root root 3433 Nov 23 00:00 .viminfo
linuxidc@ubuntu:~$
这时候我们发现 apt 文件的归属不对,这里改一下,然后将其扔到 /usr/local/bin/,然后查看有没有生效。
linuxidc@ubuntu:~$ sudo chown root:root apt
[sudo] password for linuxidc:
lwk@ubuntu:~$ ll
total 44
drwxr-xr-x 4 linuxidc 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 linuxidc lwk 3479 Nov 23 00:03 .bash_history
-rw-r--r-- 1 linuxidc lwk 220 Nov 10 11:20 .bash_logout
-rw-r--r-- 1 linuxidc lwk 3771 Nov 10 11:20 .bashrc
drwx------ 2 linuxidc lwk 4096 Nov 10 11:30 .cache/
-rw-r--r-- 1 linuxidc lwk 655 Nov 10 11:20 .profile
drwx------ 2 linuxidc lwk 4096 Nov 10 11:42 .ssh/
-rw-r--r-- 1 linuxidc lwk 0 Nov 10 11:38 .sudo_as_admin_successful
-rw------- 1 root root 3433 Nov 23 00:00 .viminfo
linuxidc@ubuntu:~$ sudo mv apt /usr/local/bin/
linuxidc@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
linuxidc@ubuntu:~$
至此,我们发现已经将 Linux Mint 18.2 Sonya 系统中的 apt 命令成功迁移到了 Ubuntu Server 16.04.3 LT 系统。
本文永久更新链接地址 :http://www.linuxidc.com/Linux/2018-02/150921.htm