首页 >>  正文

linux的绝对路径是什么

来源:baiyundou.net   日期:2024-09-24

作者:yasden

结论:sudo apt --fix-broken install命令可以解决很多依赖之间大批量冲突的问题。

特别提醒:采用“sudo dpkg -i 本地deb文件”来安装deb应用程序,很大概率会产生依赖冲突,因为dpkg是不会自动解决依赖冲突的。强烈建议用“sudo apt-get install 本地deb文件”来安装deb程序,这样apt会自动解决依赖冲突。注意:“sudo apt-get install 本地deb文件”来安装deb的时候,必须指明本地deb文件的路径,如果不指明文件路径,apt会在“源”上去找该文件。

最近发现,我的linux系统的依赖关系有点乱,因为之前我强制安装了一些包,导致出现一些冲突。

用sudo apt-get upgrade命令可以看到系统上的依赖之间的冲突(见下图):

即使删除个东西,都会提示这些冲突:

我研究了一下解决方法。

第一步、如果修改了/etc/apt/sources.list文件,最好恢复成原来的默认文件。

用下面的命令将/etc/apt/sources.list文件恢复成系统初始文件,这一步的目的是保证将apt-get的源恢复成系统默认的,假如你添加过什么其他源,都要删除掉,避免干扰(高手如果懂原理,可以不用做这一步):

sudo vi /etc/apt/sources.list

第二步、系统提示什么冲突,就解决那个冲突的包(这个方法采用单个包手动解决的方式,适合只有1-2个包的情况,如果出现大批量冲突则要换其他方法来解决)

例如:上面的信息提示下面的信息(见上图):

依赖: gcc-12-base (= 12.3.0-1ubuntu1~22.04)

先到ubuntu.pkgs官网下载gcc-12-base_12.3.0-1ubuntu1~22.04_amd64.deb文件,然后用下面的命令安装gcc-12-base_12.3.0-1ubuntu1~22.04_amd64.deb:

sudo apt-get install ./gcc-12-base_12.3.0-1ubuntu1~22.04_amd64.deb

这时候,仍然显示报错(见下图):

按照提示,改用下面的命令来安装:

sudo apt --fix-broken install ./gcc-12-base_12.3.0-1ubuntu1~22.04_amd64.deb

这时候不报错了(见下图):

执行sudo apt --fix-broken install ./gcc-12-base_12.3.0-1ubuntu1~22.04_amd64.deb这条命令的目的是: apt --fix-broken install 会自动从第一步提到的/etc/apt/sources.list这个apt源里面自动查找并修复冲突的依赖,执行之后,会提示下面的信息,也就是提示你,这些冲突的依赖会自动修复(见上图的截图,我将该命令修复的依赖粘贴到下面,给大家仔细看):

将会同时安装下列软件:

lib32gcc-s1 lib32stdc++6 libc6 libc6-dev-i386 libc6-i386 libclang-14-dev libclang-common-14-dev libclang1-14 libllvm14 libobjc4 libstdc++-11-dev

建议安装:

glibc-doc libstdc++-11-doc

推荐安装:

libnss-nis libnss-nisplus gcc-multilib

下列【新】软件包将被安装:

lib32stdc++6

下列软件包将被升级:

gcc-12-base lib32gcc-s1 libc6 libc6-dev-i386 libc6-i386 libclang-14-dev libclang-common-14-dev libclang1-14 libllvm14 libobjc4 libstdc++-11-dev

特别提醒

sudo apt --fix-broken install ./gcc-12-base_12.3.0-1ubuntu1~22.04_amd64.deb这条命令需要指定gcc-12-base_12.3.0-1ubuntu1~22.04_amd64.deb文件的目录(相对目录或者绝对目录都行,我是cd到该文件的下载目录下,所以我使用的是./这个相对目录,你也可以使用绝对目录),如果你不指定gcc-12-base_12.3.0-1ubuntu1~22.04_amd64.deb文件路径的话,apt会傻傻的去apt源里面找,而且apt肯定找不到这个gcc-12-base_12.3.0-1ubuntu1~22.04_amd64.deb文件,如果它能智能到找到并安装“源“里面的这个gcc-12-base_12.3.0-1ubuntu1~22.04_amd64.deb文件,上面我执行sudo apt-get upgrade就不会报缺少gcc-12-base的错了。

如果执行sudo apt --fix-broken install ./gcc-12-base_12.3.0-1ubuntu1~22.04_amd64.deb命令提示下面的报错信息,也就是提示你将要安装的gcc-12-base和系统已经安装的gcc-12-base不兼容:

sudo dpkg --force-overwrite -i 命令强制安装某个包

用下面的命令来强制安装该包(注意:使用该命令有可能导致系统故障,除非你清楚知道自己在干嘛,不然不要轻易强制安装执行,下面的命令使用前要千万小心):

sudo dpkg --force-overwrite -i gcc-12-base_12.3.0-1ubuntu1~22.04_amd64.deb

上面的命令执行完毕后,再用sudo apt-get upgrade查看一下,冲突的依赖减少到只有下面的3个了:

采用sudo apt --fix-broken install 命令解决大批量冲突的情况

这条命令可以解决很多大批量依赖之间冲突的问题:

查看文章精彩评论,请前往什么值得买进行阅读互动

","gnid":"91ddaf20b8e94b14b","img_data":[{"flag":2,"img":[{"desc":"","height":785,"title":"","url":"https://p0.ssl.img.360kuai.com/t0143144d9888ec0898.jpg","width":1025},{"desc":"","height":785,"title":"","url":"https://p0.ssl.img.360kuai.com/t01835ffda699e5befd.jpg","width":1025},{"desc":"","height":"554","title":"","url":"https://p0.ssl.img.360kuai.com/t01aec45406f9cd04a7.jpg","width":"1022"},{"desc":"","height":529,"title":"","url":"https://p0.ssl.img.360kuai.com/t01712aa81b5155a782.jpg","width":1042},{"desc":"","height":"458","title":"","url":"https://p0.ssl.img.360kuai.com/t01fa74e2527b7ad9b5.jpg","width":"1080"},{"desc":"","height":"229","title":"","url":"https://p0.ssl.img.360kuai.com/t01211ca7f85fbe8563.jpg","width":"1080"},{"desc":"","height":899,"title":"","url":"https://p0.ssl.img.360kuai.com/t010c958ffce75bf738.jpg","width":1080}]}],"original":0,"pat":"art_src_1,fts0,sts0","powerby":"cache","pub_time":1698931229000,"pure":"","rawurl":"http://zm.news.so.com/36dfa396936281347346560673eb5c00","redirect":0,"rptid":"4d1c3d2c4cebed49","rss_ext":[],"s":"t","src":"什么值得买","tag":[],"title":"Linux系统修复依赖冲突的方法

安希裕822怎么理解Linux下面的路径问题呢?
余贤莲13167583961 ______ 一般的情况下,我们在用shell调用的话,或者你通过什么什么方式调用你的应用程序的时候,注意你的此刻的路径就是你的被调用的程序的路径. 路径分为绝对路径和相对...

安希裕822命令行提示符中root@linux:~#,其中~代表的绝对路径是什么 -
余贤莲13167583961 ______ 绝对路径是根目录下的root文件夹路径为/root

安希裕822在ubuntu系统下什么是绝对路径?
余贤莲13167583961 ______ 绝对路径和相对路径是针对DOS来说的,简单地说,就是绝对路径要求从根目录开始输入,比如ls:/home/download/*.txt相对目录呢,则可是不用从根目录开始,直接切换过去,比如,现在在"/home/download/read/"目录下,需要打开“/home/download/*.txt”,只需要在命令行中输入:../*.txt即可

安希裕822linux有相对路径为什么还会出现绝对路径
余贤莲13167583961 ______ 以 / 开头的路径就是绝对路径啦,绝对路径就是完整位置,当然你也可以只使用绝对路径,不过会特别麻烦,所以经常用相对路径

安希裕822绝对路径、物理路径、完全路径各有什么区别,如何理解? -
余贤莲13167583961 ______ 绝对路径是指目录下的绝对位置,直接到达目标位置. 物理路径指的是百某一台计算机本地的路径,以盘符开头,例如C:\、D:\temp等等.度ASP的数据库连接中,只能连接物理路径,而不能连接相对路径,所以需要内用server.mappath对象把相对路径转化成物理路径. 全路径是指从根目录开始的路径,例如容 Windows下 C:\abcd\abcd\a.txt Linux下 /mnt/media/xxxx.txt 使用全路径就可以唯一定位一个文件或者文件夹.

安希裕822linux里./是什么意思啊 -
余贤莲13167583961 ______ ./ 表示当前路径 linux下 . 是当前目录 .. 是父目录 然后 ./ 表示当前目录的全路径 一般 不在系统环境变量path中的可执行文件 运行的时候都要这样运行 ./programme 当然 写成绝对路径也行 其他的说明请参考《Linux就该这么学》这本书上详细的介绍

安希裕822Linux显示路径是什么,分为几种,区别在哪? -
余贤莲13167583961 ______ 在Windows操作系统中,想要找到一个文件,我们要依次进入该文件所在的磁盘分区(假设这里是D盘),然后在进入该分区下的具体目录,最终找到这个文件.但是在Linux系统中并不存在C/D/E/F等盘符,Linux系统中的一切文件都是从“根(...

安希裕822linux用户文件放在什么地方 -
余贤莲13167583961 ______ linux的用户文件一斑是放在/用户名/home当中的. 因为linux有win系统无法想象的严格权限控制,所以在/目录下,也就是根目录下,非root用户是无法写入文件的. linux系统的系统分区用途如下: / 根目录,存放系统文件,并且挂载所有的文件系统 /home用户主目录 /usr软件以及依赖库文件夹 /tmp临时文件 /opt自定义软件安装文件夹 /proc内存虚拟映射 /boot启动文件文件夹

安希裕822linux里面的man是什么意思 -
余贤莲13167583961 ______ 绝对路径;在Linux中,绝对路径是从/(也被称为根目录)开始的,比如/usr、/etc/X11.如果一个路径是从/开始的,它一定是绝对路径,这样就好理解了;[root@localhost ~]# pwd 注:判断用户当前所处的位置,也就是说他到底位于哪?/root 注...

安希裕822python中的绝对路径和相对路径均如何理解呢 -
余贤莲13167583961 ______ Python中的绝对路径和其他语言并无区别. Python中的相对路径则有所不同,一般语言的相对路径的父目录指的是文件所在目录,而Python的相对路径的父目录指的是当前脚本执行目录.举个简单的例子:我有一个放在/xyz/bin目录下的脚本 ...

(编辑:自媒体)
关于我们 | 客户服务 | 服务条款 | 联系我们 | 免责声明 | 网站地图 @ 白云都 2024