軟體中心無法安裝程式 [論壇 - 新手村]


正在瀏覽:   1 名遊客


 到底部   前一個主題   下一個主題  [無發表權] 請登錄或者註冊

(1) 2 »


軟體中心無法安裝程式
會員一級
註冊日期:
2013/3/31 4:11
所屬群組:
已註冊使用者
等級: 1
HP : 0 / 0
MP : 0 / 12
EXP: 2
離線
今日打開Ubuntu,興沖沖的準備安裝各類軟體。可是卻出現以下問題,各種谷歌百度雅虎無果,希望各位幫忙,在此小弟先謝謝大家啦!!

這是Ubuntu軟體中心的提示信息:

套件作業失敗

安裝或移除軟體套件失敗。

詳細信息:
installArchives() failed: dpkg: error: unable to create new file '/var/lib/dpkg/info/format-new': No such file or directory
Error in function:

----

使用apt-get則出現如下,都是unable to create new file。

正在讀取套件清單... 完成
正在了解依存關係
正在讀取狀態資料... 完成
注意,選取 ttf-mscorefonts-installer 而非 msttcorefonts
以下套件為自動安裝,並且已經無用:
linux-headers-3.5.0-17
Use 'apt-get autoremove' to remove it.
會安裝以下【新】套件:
ttf-mscorefonts-installer
升級 0 個、新安裝 1 個、 移除 0 個、還有 306 個毋須或不會升級。
12 個沒有完全安裝或移除。
需要下載 0 B/27.4 kB 的套件檔。
此操作完成之後,會多佔用 133 kB 的磁碟空間。
正在預先設定套件 ...
dpkg: error: unable to create new file '/var/lib/dpkg/info/format-new': 沒有此一檔案或目錄
E: Sub-process /usr/bin/dpkg returned an error code (2)
hx@hx-System-Product-Name:~$

謝謝!

2013/3/31 4:20
應用擴展 工具箱
回覆: 軟體中心無法安裝程式
會員一級
註冊日期:
2013/3/31 4:11
所屬群組:
已註冊使用者
等級: 1
HP : 0 / 0
MP : 0 / 12
EXP: 2
離線
各位實在對不起,後來我自行於 /var/lib/dpkg/創建了一個info的文件夾後便可以了。
所以此帖就作廢啦,希望能幫助到遇上同樣問題的朋友。(應該沒人會遇上吧@@)
謝謝!

2013/3/31 6:00
應用擴展 工具箱
回覆: 軟體中心無法安裝程式
會員二級
註冊日期:
2010/5/2 20:05
所屬群組:
已註冊使用者
等級: 4
HP : 0 / 85
MP : 10 / 2315
EXP: 40
離線
多年後,你的文幫到我了

我是每次安裝(更新)新軟體都會出現以下的資訊:

update-rc.d: error: insserv rejected the script header
dpkg: error processing package smartmontools (--configure):
子程序 已安裝的 post-installation script 傳回了錯誤退出狀態 1
No apport report written because MaxReports is reached already
處理時發生錯誤:
ntp
apport
apport-kde
smartmontools
E: Sub-process /usr/bin/dpkg returned an error code (1)

然後參考了這個網站的解法1

解法一就是備份原本的info資料夾,在另外建立一個新的
結果我無此目錄,查到你說自己建立一個...解決了

原理是怎樣,我不太了解,希望有懂的人可以出來解釋一下

2015/4/15 8:51
應用擴展 工具箱
回覆: 軟體中心無法安裝程式
管理員
註冊日期:
2011/3/11 6:32
所屬群組:
討論區管理群
等級: 44
HP : 216 / 1084
MP : 1088 / 26761
EXP: 38
離線
Linyl 寫到:
解法一就是備份原本的info資料夾,在另外建立一個新的
結果我無此目錄,查到你說自己建立一個...解決了

原理是怎樣,我不太了解,希望有懂的人可以出來解釋一下


/var/lib/dpkg/info 保存了所有安裝在系統中的軟體包的
├── zsh.list -> 安裝到系統中的檔案清單
├── zsh.md5sums -> 安裝到系統中的檔案校驗碼
├── zsh.postinst-> 安裝程式
├── zsh.postrm -> 移除程式1
├── zsh.prerm -> 移除程式2
等資料

基本上沒了這目錄 APT 軟體包管理系統就不知道這些軟體包安裝了哪些檔案跟怎麼正確安裝與移除軟體了,炸掉不意外

正確的解決方式應該是還要想辦法把這些檔案安裝回來,軟體包安裝的狀態位於 /var/lib/dpkg/status ,用程式分析出所有「系統有安裝的軟體包」然後想辦法讓 APT 全部重新安裝一遍應該就可以了

## 參考資料
http://www.debianhelp.co.uk/debianproblem.htm

2015/4/15 9:36
本篇發表文章以「創用CC BY 3.0 或更新之台灣地區版本」授權條款釋出,如何使用敬請參考
 Creative Commons — 姓名標示 3.0 台灣 — CC BY 3.0 TW
 http://creativecommons.org/licenses/by/3.0/tw/

「你不懂的東西就不要亂講,被懂得人看破手腳就算了,騙不懂的人誤導別人,還要別人把你當成大師,這就真的是說不過去了。」
 by Allen Own
 出處 http://www.plurk.com/p/i4uogm

自由知識創作平台介紹
 https://docs.google.com/document/d/1MGG6lW_0qCgH4U785R-IwSc_INdoBGej1l-JxiA4gPE
如何建立新的自由知識創作平台文件
 https://docs.google.com/document/d/11NdzOW2lGYksfyQIcPMPye5tlmj1J0QTkgPTmQvIvKA
應用擴展 工具箱
回覆: 軟體中心無法安裝程式
會員五級
註冊日期:
2012/4/22 10:50
所屬群組:
已註冊使用者
等級: 34
HP : 169 / 845
MP : 571 / 18091
EXP: 81
離線
V字龍 寫到:
Linyl 寫到:
解法一就是備份原本的info資料夾,在另外建立一個新的
結果我無此目錄,查到你說自己建立一個...解決了

原理是怎樣,我不太了解,希望有懂的人可以出來解釋一下


/var/lib/dpkg/info 保存了所有安裝在系統中的軟體包的
├── zsh.list -> 安裝到系統中的檔案清單
├── zsh.md5sums -> 安裝到系統中的檔案校驗碼
├── zsh.postinst-> 安裝程式
├── zsh.postrm -> 移除程式1
├── zsh.prerm -> 移除程式2
等資料

基本上沒了這目錄 APT 軟體包管理系統就不知道這些軟體包安裝了哪些檔案跟怎麼正確安裝與移除軟體了,炸掉不意外

正確的解決方式應該是還要想辦法把這些檔案安裝回來,軟體包安裝的狀態位於 /var/lib/dpkg/status ,用程式分析出所有「系統有安裝的軟體包」然後想辦法讓 APT 全部重新安裝一遍應該就可以了

## 參考資料
http://www.debianhelp.co.uk/debianproblem.htm


有興趣探究的話,可以執行下面的指令,以「zsh」這個套件為例。



$ apt-get download zsh
$ dpkg -e zsh_5.0.2-3ubuntu6_amd64.deb
$ tree DEBIAN



會顯示


DEBIAN
├── control
├── md5sums
├── postinst
├── postrm
└── prerm



跟上面的列表對照


$ tree /var/lib/dpkg/info -P "zsh.*"



顯示


/var/lib/dpkg/info
├── zsh.list
├── zsh.md5sums
├── zsh.postinst
├── zsh.postrm
└── zsh.prerm

0 directories, 5 files



或是執行


$ ls /var/lib/dpkg/info/zsh.* -1



顯示


/var/lib/dpkg/info/zsh.list
/var/lib/dpkg/info/zsh.md5sums
/var/lib/dpkg/info/zsh.postinst
/var/lib/dpkg/info/zsh.postrm
/var/lib/dpkg/info/zsh.prerm



或是執行


$ dpkg-query --control-path zsh



顯示


/var/lib/dpkg/info/zsh.md5sums
/var/lib/dpkg/info/zsh.prerm
/var/lib/dpkg/info/zsh.postinst
/var/lib/dpkg/info/zsh.postrm



執行


$ dpkg-query --control-list zsh



顯示


md5sums
prerm
postinst
postrm




執行下面指令


$ dpkg-query --control-show zsh postinst



會觀看「/var/lib/dpkg/info/zsh.postinst」的內容

如同執行


$ less /var/lib/dpkg/info/zsh.postinst



執行


$ dpkg-query --control-path zsh postinst



顯示


/var/lib/dpkg/info/zsh.postinst




也可以參考「這裡」和「這裡」的說明。

套件的操作實務,可以參考這個「索引」或是「這裡」。

目前我還沒摸透,還有些概念還要學習,
建議大家可以多多討論和研究這一塊,
我覺得這部份是探索Ubuntu(Debian)系統的起點。



另外你可以執行


$ dpkg -S /var/lib/dpkg/info



會顯示下面的訊息


dpkg: /var/lib/dpkg/info



就可以知道「/var/lib/dpkg/info」這個資料夾,是屬於「dpkg」這個套件的,一些初步的探索,「紀錄在這」。

2015/4/15 12:34
應用擴展 工具箱
回覆: 軟體中心無法安裝程式
會員二級
註冊日期:
2010/5/2 20:05
所屬群組:
已註冊使用者
等級: 4
HP : 0 / 85
MP : 10 / 2315
EXP: 40
離線
samwhelp 寫到:
V字龍 寫到:
Linyl 寫到:
解法一就是備份原本的info資料夾,在另外建立一個新的
結果我無此目錄,查到你說自己建立一個...解決了

原理是怎樣,我不太了解,希望有懂的人可以出來解釋一下


/var/lib/dpkg/info 保存了所有安裝在系統中的軟體包的
├── zsh.list -> 安裝到系統中的檔案清單
├── zsh.md5sums -> 安裝到系統中的檔案校驗碼
├── zsh.postinst-> 安裝程式
├── zsh.postrm -> 移除程式1
├── zsh.prerm -> 移除程式2
等資料

基本上沒了這目錄 APT 軟體包管理系統就不知道這些軟體包安裝了哪些檔案跟怎麼正確安裝與移除軟體了,炸掉不意外

正確的解決方式應該是還要想辦法把這些檔案安裝回來,軟體包安裝的狀態位於 /var/lib/dpkg/status ,用程式分析出所有「系統有安裝的軟體包」然後想辦法讓 APT 全部重新安裝一遍應該就可以了

## 參考資料
http://www.debianhelp.co.uk/debianproblem.htm


有興趣探究的話,可以執行下面的指令,以「zsh」這個套件為例。



$ apt-get download zsh
$ dpkg -e zsh_5.0.2-3ubuntu6_amd64.deb
$ tree DEBIAN



會顯示


DEBIAN
├── control
├── md5sums
├── postinst
├── postrm
└── prerm



跟上面的列表對照


$ tree /var/lib/dpkg/info -P "zsh.*"



顯示


/var/lib/dpkg/info
├── zsh.list
├── zsh.md5sums
├── zsh.postinst
├── zsh.postrm
└── zsh.prerm

0 directories, 5 files



或是執行


$ ls /var/lib/dpkg/info/zsh.* -1



顯示


/var/lib/dpkg/info/zsh.list
/var/lib/dpkg/info/zsh.md5sums
/var/lib/dpkg/info/zsh.postinst
/var/lib/dpkg/info/zsh.postrm
/var/lib/dpkg/info/zsh.prerm



套件的操作實務,可以參考這個「索引」或是「這裡」。

目前我還沒摸透,還有些概念還要學習,建議大家可以多多討論和研究這一塊,我覺得這部份是探索Ubuntu(Debian)系統的起點。



另外你可以執行


$ dpkg -S /var/lib/dpkg/info



會顯示下面的訊息


dpkg: /var/lib/dpkg/info



就可以知道「/var/lib/dpkg/info」這個資料夾,是屬於「dpkg」這個套件的,一些初步的探索,「紀錄在這」。


To samwhelp
從你的說明大概知道這裡都是放各個安裝套件的相關資訊
因為我現在info資料夾中空無一物(只有 format檔案),當現在我要安裝新的套件時,apt-get會告訴我:
「dpkg: 警告:找不到套件 'libva-tpi1:amd64' 的檔案清單,假設該套件目前安裝任何檔案」之類的一大串訊息...
雖然是無所謂啦,只是可能以後都要看到這一串..



To V 字龍
如你所言,從status檔案中已經擷取了,所有安裝檔案的清單
sudo grep "Package: " /var/lib/dpkg/status | cut -d " " -f2

現在要重新建立info內各套件的資料,簡單的方法可以用:移除再安裝
sudo apt-get remove gnome-system-monitor ; sudo apt-get install gnome-system-monitor

這時,info內該套件資料就會建立出來:
-rw-r--r-- 1 root root 22916 4月 15 14:10 gnome-system-monitor.list
-rw-r--r-- 1 root root 3494 10月 3 2014 gnome-system-monitor.md5sums
-rwxr-xr-x 1 root root 185 10月 3 2014 gnome-system-monitor.postinst
-rwxr-xr-x 1 root root 160 10月 3 2014 gnome-system-monitor.postrm

但對於重要的、很多相依性的系統檔案...風險感覺超高阿
還有什麼方法可以安全的把所有套件一次重新取得info呢?

2015/4/15 14:22
應用擴展 工具箱
回覆: 軟體中心無法安裝程式
會員五級
註冊日期:
2012/4/22 10:50
所屬群組:
已註冊使用者
等級: 34
HP : 169 / 845
MP : 571 / 18091
EXP: 81
離線
Linyl 寫到:
samwhelp 寫到:
V字龍 寫到:
Linyl 寫到:
解法一就是備份原本的info資料夾,在另外建立一個新的
結果我無此目錄,查到你說自己建立一個...解決了

原理是怎樣,我不太了解,希望有懂的人可以出來解釋一下


/var/lib/dpkg/info 保存了所有安裝在系統中的軟體包的
├── zsh.list -> 安裝到系統中的檔案清單
├── zsh.md5sums -> 安裝到系統中的檔案校驗碼
├── zsh.postinst-> 安裝程式
├── zsh.postrm -> 移除程式1
├── zsh.prerm -> 移除程式2
等資料

基本上沒了這目錄 APT 軟體包管理系統就不知道這些軟體包安裝了哪些檔案跟怎麼正確安裝與移除軟體了,炸掉不意外

正確的解決方式應該是還要想辦法把這些檔案安裝回來,軟體包安裝的狀態位於 /var/lib/dpkg/status ,用程式分析出所有「系統有安裝的軟體包」然後想辦法讓 APT 全部重新安裝一遍應該就可以了

## 參考資料
http://www.debianhelp.co.uk/debianproblem.htm


有興趣探究的話,可以執行下面的指令,以「zsh」這個套件為例。



$ apt-get download zsh
$ dpkg -e zsh_5.0.2-3ubuntu6_amd64.deb
$ tree DEBIAN



會顯示


DEBIAN
├── control
├── md5sums
├── postinst
├── postrm
└── prerm



跟上面的列表對照


$ tree /var/lib/dpkg/info -P "zsh.*"



顯示


/var/lib/dpkg/info
├── zsh.list
├── zsh.md5sums
├── zsh.postinst
├── zsh.postrm
└── zsh.prerm

0 directories, 5 files



或是執行


$ ls /var/lib/dpkg/info/zsh.* -1



顯示


/var/lib/dpkg/info/zsh.list
/var/lib/dpkg/info/zsh.md5sums
/var/lib/dpkg/info/zsh.postinst
/var/lib/dpkg/info/zsh.postrm
/var/lib/dpkg/info/zsh.prerm



套件的操作實務,可以參考這個「索引」或是「這裡」。

目前我還沒摸透,還有些概念還要學習,建議大家可以多多討論和研究這一塊,我覺得這部份是探索Ubuntu(Debian)系統的起點。



另外你可以執行


$ dpkg -S /var/lib/dpkg/info



會顯示下面的訊息


dpkg: /var/lib/dpkg/info



就可以知道「/var/lib/dpkg/info」這個資料夾,是屬於「dpkg」這個套件的,一些初步的探索,「紀錄在這」。


To samwhelp
從你的說明大概知道這裡都是放各個安裝套件的相關資訊
因為我現在info資料夾中空無一物(只有 format檔案),當現在我要安裝新的套件時,apt-get會告訴我:
「dpkg: 警告:找不到套件 'libva-tpi1:amd64' 的檔案清單,假設該套件目前安裝任何檔案」之類的一大串訊息...
雖然是無所謂啦,只是可能以後都要看到這一串..



To V 字龍
如你所言,從status檔案中已經擷取了,所有安裝檔案的清單
sudo grep "Package: " /var/lib/dpkg/status | cut -d " " -f2

現在要重新建立info內各套件的資料,簡單的方法可以用:移除再安裝
sudo apt-get remove gnome-system-monitor ; sudo apt-get install gnome-system-monitor

這時,info內該套件資料就會建立出來:
-rw-r--r-- 1 root root 22916 4月 15 14:10 gnome-system-monitor.list
-rw-r--r-- 1 root root 3494 10月 3 2014 gnome-system-monitor.md5sums
-rwxr-xr-x 1 root root 185 10月 3 2014 gnome-system-monitor.postinst
-rwxr-xr-x 1 root root 160 10月 3 2014 gnome-system-monitor.postrm

但對於重要的、很多相依性的系統檔案...風險感覺超高阿
還有什麼方法可以安全的把所有套件一次重新取得info呢?


一般的狀況,這個資料夾的檔案應該是不會不見才對,
其實我蠻好奇你做了什麼動作,導致這個資料夾的檔案都沒了,不過你應該也不會曉得怎麼會如此。

我還在研究怎麼重建這個資料夾裡面資料的方法,以前沒想過這個問題。

另外再次說明一下「zsh.postinst」和下載deb檔解開的「DEBIAN/postinst」的內容是一樣的喔,
其他的檔也是如此,除了「zsh.list」。
所以這應該是其中一種解法,不過還沒實作過,還不曉得會出現哪種狀況。

我個人覺得重灌系統,是最快的解決方式,這只是一種解決方式,僅供參考。


2015/4/15 14:41
應用擴展 工具箱
回覆: 軟體中心無法安裝程式
會員五級
註冊日期:
2012/4/22 10:50
所屬群組:
已註冊使用者
等級: 34
HP : 169 / 845
MP : 571 / 18091
EXP: 81
離線
剛測試了一下,有「--reinstall」可以下。


$ sudo apt-get install vim --reinstall



先貼上來



後記:

剛測試了一下,不是我想像的哪樣,行不通 :p

先把info這個資料夾備份,建立一個新的空的info資料夾。


$ cd /var/lib/dpkg
$ sudo mv info info.bak
$ sudo mkdir info



然後執行


grep "Package: " /var/lib/dpkg/status | cut -d " " -f2 > package.list
sudo apt-get install `cat package.list` --reinstall


2015/4/15 15:09
應用擴展 工具箱
回覆: 軟體中心無法安裝程式
會員二級
註冊日期:
2010/5/2 20:05
所屬群組:
已註冊使用者
等級: 4
HP : 0 / 85
MP : 10 / 2315
EXP: 40
離線
--reinstall 執行時,他的動作是另外下載回來再覆蓋舊檔案嗎?

另外,我忘記當初我是要安裝啥,安裝完不滿意退貨就變成這樣了....

2015/4/15 15:32
應用擴展 工具箱
回覆: 軟體中心無法安裝程式
會員五級
註冊日期:
2012/4/22 10:50
所屬群組:
已註冊使用者
等級: 34
HP : 169 / 845
MP : 571 / 18091
EXP: 81
離線
Linyl 寫到:
--reinstall 執行時,他的動作是另外下載回來再覆蓋舊檔案嗎?

另外,我忘記當初我是要安裝啥,安裝完不滿意退貨就變成這樣了....


應該是下載下來重新安裝,個人猜測是覆蓋,但一些設定檔,應該會問你要不要保留,或套用重新安裝的。

剛用「/var/lib/dpkg/info」,查詢到「這篇」還有「這篇」。

正在測試下面這一段(我在Virtualbox裡的系統測喔)



for i in $(dpkg -l|awk '/^ii/ {print $2}')
do
apt-get --reinstall -y install $i
done



看起來是一個套件一個套件重新安裝,所以還在執行中...

我剛剛的方式,是把所有的套件一次給它重新安裝,結果不讓我執行,呵呵。

2015/4/15 15:35
應用擴展 工具箱

(1) 2 »

 [無發表權] 請登錄或者註冊


可以查看帖子.
不可發帖.
不可回覆.
不可編輯自己的帖子.
不可刪除自己的帖子.
不可發起投票調查.
不可在投票調查中投票.
不可上傳附件.
不可不經審核直接發帖.