Ubuntu的apt-file解决依赖问题
文章目录
[隐藏]
- 1. 背景
- 2. 安装
- 3. 搜索缺少的文件
- 4. 列出包中的文件
- 5. 其它系统
1. 背景
平常我们在安装应用时,经常会碰到缺少各种文件、依赖等问题,例如缺少.so文件。Ubuntu中提供了一个强大的工具apt-file来查找依赖。最适合的场景是在Docker中使用,因为Docker Image的系统通常是Ubuntu。
2. 安装
apt-file的安装命令如下:
# Install $ apt-get update $ apt-get install apt-file # Update apt-file $ apt-file update
3. 搜索缺少的文件
如果缺少cv.py文件,则搜索cv.py文件,apt-file会列出包含cv.py的包,发现需要的包是python-opencv,然后安装ython-opencv。
# 命令格式 $ apt-file seach [filename] # Demo $ apt-file search cv.py gnuradio: /usr/lib/python2.7/dist-packages/gnuradio/analog/wfm_rcv.py gnuradio: /usr/share/gnuradio/examples/uhd/usrp_am_mw_rcv.py gnuradio: /usr/share/gnuradio/examples/uhd/usrp_nbfm_rcv.py gnuradio: /usr/share/gnuradio/examples/uhd/usrp_tv_rcv.py gnuradio: /usr/share/gnuradio/examples/uhd/usrp_wfm_rcv.py gnuradio: /usr/share/gnuradio/examples/uhd/usrp_wxapt_rcv.py libqpid-proton2-dev-examples: /usr/share/proton-0.10/examples/python/db_recv.py libqpid-proton2-dev-examples: /usr/share/proton-0.10/examples/python/direct_recv.py libqpid-proton2-dev-examples: /usr/share/proton-0.10/examples/python/messenger/recv.py libqpid-proton2-dev-examples: /usr/share/proton-0.10/examples/python/reactor/recv.py libqpid-proton2-dev-examples: /usr/share/proton-0.10/examples/python/selected_recv.py libqpid-proton2-dev-examples: /usr/share/proton-0.10/examples/python/simple_recv.py libqpid-proton2-dev-examples: /usr/share/proton-0.10/examples/python/tx_recv.py lowpan-test-tools: /usr/lib/x86_64-linux-gnu/lowpan-tools/test_recv.py python-kivy: /usr/lib/python2.7/dist-packages/kivy/core/camera/camera_opencv.py python-mvpa2-doc: /usr/share/doc/python-mvpa2-doc/examples/nested_cv.py python-opencv: /usr/lib/python2.7/dist-packages/cv.py python-pyavm: /usr/lib/python2.7/dist-packages/pyavm/cv.py python-pysnmp4: /usr/lib/python2.7/dist-packages/pysnmp/entity/rfc3413/ntfrcv.py python-pysnmp4: /usr/share/pyshared/pysnmp/entity/rfc3413/ntfrcv.py python-pysnmp4-doc: /usr/share/doc/python-pysnmp4-doc/examples/v1arch/manager/ntfrcv.py python-scapy: /usr/lib/python2.7/dist-packages/scapy/sendrecv.py python-scapy: /usr/share/pyshared/scapy/sendrecv.py python3-kivy: /usr/lib/python3/dist-packages/kivy/core/camera/camera_opencv.py python3-pyavm: /usr/lib/python3/dist-packages/pyavm/cv.py python3-pysnmp4: /usr/lib/python3/dist-packages/pysnmp/entity/rfc3413/ntfrcv.py
4. 列出包中的文件
查看python-opencv中的文件。
# 命令格式 $ apt-file list [package name] # Demo $ apt-file list python-opencv python-opencv: /usr/lib/python2.7/dist-packages/cv.py python-opencv: /usr/lib/python2.7/dist-packages/cv2.x86_64-linux-gnu.so python-opencv: /usr/share/doc/python-opencv/changelog.Debian.gz python-opencv: /usr/share/doc/python-opencv/copyright python-opencv-apps: /usr/lib/python2.7/dist-packages/opencv_apps/__init__.py python-opencv-apps: /usr/lib/python2.7/dist-packages/opencv_apps/cfg/CamShiftConfig.py python-opencv-apps: /usr/lib/python2.7/dist-packages/opencv_apps/cfg/ContourMomentsConfig.py python-opencv-apps: /usr/lib/python2.7/dist-packages/opencv_apps/cfg/ConvexHullConfig.py python-opencv-apps: /usr/lib/python2.7/dist-packages/opencv_apps/cfg/EdgeDetectionConfig.py python-opencv-apps: /usr/lib/python2.7/dist-packages/opencv_apps/cfg/FBackFlowConfig.py python-opencv-apps: /usr/lib/python2.7/dist-packages/opencv_apps/cfg/FaceDetectionConfig.py python-opencv-apps: /usr/lib/python2.7/dist-packages/opencv_apps/cfg/FindContoursConfig.py python-opencv-apps: /usr/lib/python2.7/dist-packages/opencv_apps/cfg/GeneralContoursConfig.py python-opencv-apps: /usr/lib/python2.7/dist-packages/opencv_apps/cfg/GoodfeatureTrackConfig.py python-opencv-apps: /usr/lib/python2.7/dist-packages/opencv_apps/cfg/HoughCirclesConfig.py python-opencv-apps: /usr/lib/python2.7/dist-packages/opencv_apps/cfg/HoughLinesConfig.py python-opencv-apps: /usr/lib/python2.7/dist-packages/opencv_apps/cfg/LKFlowConfig.py python-opencv-apps: /usr/lib/python2.7/dist-packages/opencv_apps/cfg/PeopleDetectConfig.py python-opencv-apps: /usr/lib/python2.7/dist-packages/opencv_apps/cfg/PhaseCorrConfig.py python-opencv-apps: /usr/lib/python2.7/dist-packages/opencv_apps/cfg/SegmentObjectsConfig.py python-opencv-apps: /usr/lib/python2.7/dist-packages/opencv_apps/cfg/SimpleFlowConfig.py python-opencv-apps: /usr/lib/python2.7/dist-packages/opencv_apps/cfg/WatershedSegmentationConfig.py python-opencv-apps: /usr/lib/python2.7/dist-packages/opencv_apps/cfg/__init__.py python-opencv-apps: /usr/lib/python2.7/dist-packages/opencv_apps/msg/_Circle.py python-opencv-apps: /usr/lib/python2.7/dist-packages/opencv_apps/msg/_CircleArray.py python-opencv-apps: /usr/lib/python2.7/dist-packages/opencv_apps/msg/_CircleArrayStamped.py python-opencv-apps: /usr/lib/python2.7/dist-packages/opencv_apps/msg/_Contour.py python-opencv-apps: /usr/lib/python2.7/dist-packages/opencv_apps/msg/_ContourArray.py python-opencv-apps: /usr/lib/python2.7/dist-packages/opencv_apps/msg/_ContourArrayStamped.py python-opencv-apps: /usr/lib/python2.7/dist-packages/opencv_apps/msg/_Face.py python-opencv-apps: /usr/lib/python2.7/dist-packages/opencv_apps/msg/_FaceArray.py python-opencv-apps: /usr/lib/python2.7/dist-packages/opencv_apps/msg/_FaceArrayStamped.py python-opencv-apps: /usr/lib/python2.7/dist-packages/opencv_apps/msg/_Flow.py python-opencv-apps: /usr/lib/python2.7/dist-packages/opencv_apps/msg/_FlowArray.py python-opencv-apps: /usr/lib/python2.7/dist-packages/opencv_apps/msg/_FlowArrayStamped.py python-opencv-apps: /usr/lib/python2.7/dist-packages/opencv_apps/msg/_FlowStamped.py python-opencv-apps: /usr/lib/python2.7/dist-packages/opencv_apps/msg/_Line.py python-opencv-apps: /usr/lib/python2.7/dist-packages/opencv_apps/msg/_LineArray.py python-opencv-apps: /usr/lib/python2.7/dist-packages/opencv_apps/msg/_LineArrayStamped.py python-opencv-apps: /usr/lib/python2.7/dist-packages/opencv_apps/msg/_Moment.py python-opencv-apps: /usr/lib/python2.7/dist-packages/opencv_apps/msg/_MomentArray.py python-opencv-apps: /usr/lib/python2.7/dist-packages/opencv_apps/msg/_MomentArrayStamped.py python-opencv-apps: /usr/lib/python2.7/dist-packages/opencv_apps/msg/_Point2D.py python-opencv-apps: /usr/lib/python2.7/dist-packages/opencv_apps/msg/_Point2DArray.py python-opencv-apps: /usr/lib/python2.7/dist-packages/opencv_apps/msg/_Point2DArrayStamped.py python-opencv-apps: /usr/lib/python2.7/dist-packages/opencv_apps/msg/_Point2DStamped.py python-opencv-apps: /usr/lib/python2.7/dist-packages/opencv_apps/msg/_Rect.py python-opencv-apps: /usr/lib/python2.7/dist-packages/opencv_apps/msg/_RectArray.py python-opencv-apps: /usr/lib/python2.7/dist-packages/opencv_apps/msg/_RectArrayStamped.py python-opencv-apps: /usr/lib/python2.7/dist-packages/opencv_apps/msg/_RotatedRect.py python-opencv-apps: /usr/lib/python2.7/dist-packages/opencv_apps/msg/_RotatedRectArray.py python-opencv-apps: /usr/lib/python2.7/dist-packages/opencv_apps/msg/_RotatedRectArrayStamped.py python-opencv-apps: /usr/lib/python2.7/dist-packages/opencv_apps/msg/_RotatedRectStamped.py python-opencv-apps: /usr/lib/python2.7/dist-packages/opencv_apps/msg/_Size.py python-opencv-apps: /usr/lib/python2.7/dist-packages/opencv_apps/msg/__init__.py python-opencv-apps: /usr/share/doc/python-opencv-apps/changelog.Debian.gz python-opencv-apps: /usr/share/doc/python-opencv-apps/copyright
5. 其它系统
在其它系统中,例如CentOS中,可以用yum whatprovides命令来查询命令所在的包。
原文出处:noahsnail -> http://noahsnail.com/2018/01/12/2018-01-12-Ubuntu%E7%9A%84apt-file%E8%A7%A3%E5%86%B3%E4%BE%9D%E8%B5%96%E9%97%AE%E9%A2%98/
本站所发布的一切资源仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如果侵犯你的利益,请发送邮箱到 [email protected],我们会很快的为您处理。