it-swarm.asia

Ubuntu'da "apt-get upgrade" komutunu nasıl geri alabilirim veya geri alabilirim?

Sonuçları beğenmediyseniz, bir apt-get upgrade yaptıktan sonra son güncellemeyi geri almak veya geri almak için Ubuntu'da bir yol var mı?

26
jjclarkson

Bunu bugün Debian sistemimde yapmak zorunda kaldım. İlk önce, rahatsız edici yükseltme işleminin gerçekleştiği zaman aralığını belirledim ve yükseltilmiş paketlerin eski ve yeni sürüm numaralarını veren günlük girişlerini aldım:

$ awk '$1=="2016-03-20" && $3=="upgrade"' /var/log/dpkg.log
2016-03-20 16:58:22 upgrade libwebkitgtk-3.0-0:AMD64 2.4.9-3 2.4.10-1
2016-03-20 16:58:24 upgrade libjavascriptcoregtk-3.0-0:AMD64 2.4.9-3 2.4.10-1
2016-03-20 16:58:26 upgrade traceroute:AMD64 1:2.0.22-1 1:2.1.0-1
2016-03-20 16:58:33 upgrade ethtool:AMD64 1:4.2-1 1:4.5-1
2016-03-20 16:58:34 upgrade libsdl1.2debian:AMD64 1.2.15+dfsg1-3 1.2.15+dfsg1-4
2016-03-20 16:58:34 upgrade Subversion:AMD64 1.9.3-2+b1 1.9.3-3
2016-03-20 16:58:36 upgrade libsvn1:AMD64 1.9.3-2+b1 1.9.3-3
2016-03-20 16:58:56 upgrade linux-image-AMD64:AMD64 4.3+70 4.4+71
2016-03-20 16:58:56 upgrade linux-libc-dev:AMD64 4.3.5-1 4.4.6-1
2016-03-20 16:59:03 upgrade AMD64-microcode:AMD64 2.20141028.1 2.20160316.1

Sonra, diskte hala önbelleğe alınmış paket dosyalarını bulmaya çalıştım (neyse ki benim için autoclean'ı çalıştırmamıştım):

$ awk '$1=="2016-03-20" && $3=="upgrade" {gsub(/:/, "%3a", $5); split($4, f, ":"); print "/var/cache/apt/archives/" f[1] "_" $5 "_" f[2] ".deb"}' /var/log/dpkg.log | xargs -r ls -ld
ls: cannot access '/var/cache/apt/archives/ethtool_1%3a4.2-1_AMD64.deb': No such file or directory
-rw-r--r-- 1 root root   28820 Dec 18  2014 /var/cache/apt/archives/AMD64-microcode_2.20141028.1_AMD64.deb
-rw-r--r-- 1 root root 1978874 Dec 10 18:22 /var/cache/apt/archives/libjavascriptcoregtk-3.0-0_2.4.9-3_AMD64.deb
-rw-r--r-- 1 root root  185006 Mar 12 00:41 /var/cache/apt/archives/libsdl1.2debian_1.2.15+dfsg1-3_AMD64.deb
-rw-r--r-- 1 root root 1317644 Mar  3 11:30 /var/cache/apt/archives/libsvn1_1.9.3-2+b1_AMD64.deb
-rw-r--r-- 1 root root 7679400 Dec 10 18:22 /var/cache/apt/archives/libwebkitgtk-3.0-0_2.4.9-3_AMD64.deb
-rw-r--r-- 1 root root    6108 Dec 14 06:59 /var/cache/apt/archives/linux-image-AMD64_4.3+70_AMD64.deb
-rw-r--r-- 1 root root 1075506 Feb  7 21:36 /var/cache/apt/archives/linux-libc-dev_4.3.5-1_AMD64.deb
-rw-r--r-- 1 root root  983174 Mar  3 11:30 /var/cache/apt/archives/Subversion_1.9.3-2+b1_AMD64.deb
-rw-r--r-- 1 root root   53376 Feb 28 18:35 /var/cache/apt/archives/traceroute_1%3a2.0.22-1_AMD64.deb

Nedense eski ethtool paketine sahip değilim. Yine de, eski paket dosyalarını zorlayarak yükleyelim:

$ Sudo dpkg -i /var/cache/apt/archives/AMD64-microcode_2.20141028.1_AMD64.deb /var/cache/apt/archives/libjavascriptcoregtk-3.0-0_2.4.9-3_AMD64.deb /var/cache/apt/archives/libsdl1.2debian_1.2.15+dfsg1-3_AMD64.deb /var/cache/apt/archives/libsvn1_1.9.3-2+b1_AMD64.deb /var/cache/apt/archives/libwebkitgtk-3.0-0_2.4.9-3_AMD64.deb /var/cache/apt/archives/linux-image-AMD64_4.3+70_AMD64.deb /var/cache/apt/archives/linux-libc-dev_4.3.5-1_AMD64.deb /var/cache/apt/archives/Subversion_1.9.3-2+b1_AMD64.deb /var/cache/apt/archives/traceroute_1%3a2.0.22-1_AMD64.deb
dpkg: warning: downgrading AMD64-microcode from 2.20160316.1 to 2.20141028.1
(Reading database ... 139632 files and directories currently installed.)
Preparing to unpack .../AMD64-microcode_2.20141028.1_AMD64.deb ...
Unpacking AMD64-microcode (2.20141028.1) over (2.20160316.1) ...
dpkg: warning: downgrading libjavascriptcoregtk-3.0-0:AMD64 from 2.4.10-1 to 2.4.9-3
Preparing to unpack .../libjavascriptcoregtk-3.0-0_2.4.9-3_AMD64.deb ...
Unpacking libjavascriptcoregtk-3.0-0:AMD64 (2.4.9-3) over (2.4.10-1) ...
dpkg: warning: downgrading libsdl1.2debian:AMD64 from 1.2.15+dfsg1-4 to 1.2.15+dfsg1-3
Preparing to unpack .../libsdl1.2debian_1.2.15+dfsg1-3_AMD64.deb ...
Unpacking libsdl1.2debian:AMD64 (1.2.15+dfsg1-3) over (1.2.15+dfsg1-4) ...
dpkg: warning: downgrading libsvn1:AMD64 from 1.9.3-3 to 1.9.3-2+b1
Preparing to unpack .../libsvn1_1.9.3-2+b1_AMD64.deb ...
Unpacking libsvn1:AMD64 (1.9.3-2+b1) over (1.9.3-3) ...
Preparing to unpack .../libwebkitgtk-3.0-0_2.4.9-3_AMD64.deb ...
Unpacking libwebkitgtk-3.0-0:AMD64 (2.4.9-3) over (2.4.9-3) ...
dpkg: warning: downgrading linux-image-AMD64 from 4.4+71 to 4.3+70
Preparing to unpack .../linux-image-AMD64_4.3+70_AMD64.deb ...
Unpacking linux-image-AMD64 (4.3+70) over (4.4+71) ...
dpkg: warning: downgrading linux-libc-dev:AMD64 from 4.4.6-1 to 4.3.5-1
Preparing to unpack .../linux-libc-dev_4.3.5-1_AMD64.deb ...
Unpacking linux-libc-dev:AMD64 (4.3.5-1) over (4.4.6-1) ...
dpkg: warning: downgrading Subversion from 1.9.3-3 to 1.9.3-2+b1
Preparing to unpack .../Subversion_1.9.3-2+b1_AMD64.deb ...
Unpacking Subversion (1.9.3-2+b1) over (1.9.3-3) ...
dpkg: warning: downgrading traceroute from 1:2.1.0-1 to 1:2.0.22-1
Preparing to unpack .../traceroute_1%3a2.0.22-1_AMD64.deb ...
Unpacking traceroute (1:2.0.22-1) over (1:2.1.0-1) ...
Setting up AMD64-microcode (2.20141028.1) ...
update-initramfs: deferring update (trigger activated)
AMD64-microcode: microcode will be updated at next boot
Setting up libjavascriptcoregtk-3.0-0:AMD64 (2.4.9-3) ...
Setting up libsdl1.2debian:AMD64 (1.2.15+dfsg1-3) ...
Setting up libsvn1:AMD64 (1.9.3-2+b1) ...
dpkg: dependency problems prevent configuration of libwebkitgtk-3.0-0:AMD64:
 libwebkitgtk-3.0-0:AMD64 depends on libwebkitgtk-3.0-common (>= 2.4.9); however:
  Package libwebkitgtk-3.0-common is not installed.

dpkg: error processing package libwebkitgtk-3.0-0:AMD64 (--install):
 dependency problems - leaving unconfigured
Setting up linux-image-AMD64 (4.3+70) ...
Setting up linux-libc-dev:AMD64 (4.3.5-1) ...
Setting up Subversion (1.9.3-2+b1) ...
Setting up traceroute (1:2.0.22-1) ...
update-alternatives: using /usr/bin/traceroute.db to provide /usr/bin/traceroute (traceroute) in auto mode
update-alternatives: using /usr/bin/lft.db to provide /usr/bin/lft (lft) in auto mode
update-alternatives: using /usr/bin/traceproto.db to provide /usr/bin/traceproto (traceproto) in auto mode
update-alternatives: using /usr/sbin/tcptraceroute.db to provide /usr/sbin/tcptraceroute (tcptraceroute) in auto mode
Processing triggers for libc-bin (2.22-3) ...
Processing triggers for man-db (2.7.5-1) ...
Processing triggers for initramfs-tools (0.123) ...
update-initramfs: Generating /boot/initrd.img-4.4.0-1-AMD64
Errors were encountered while processing:
 libwebkitgtk-3.0-0:AMD64

Hata mesajının dediği gibi, paketlerimden biri yükseltme işleminden hemen önce yaygın bir pakete bağlıydı, ancak yükseltme kaldırdı (ve apt-get artık bulamıyor). Neyse ki, paket dosyası hala/var/cache/apt dizinindedir, bu yüzden listeye ekleyebilir ve tekrar deneyebilirim:

$ ls -ld /var/cache/apt/archives/libwebkitgtk-3.0-common*
-rw-r--r-- 1 root root 452278 Dec 10 18:22 /var/cache/apt/archives/libwebkitgtk-3.0-common_2.4.9-3_all.deb
$ Sudo dpkg -i /var/cache/apt/archives/AMD64-microcode_2.20141028.1_AMD64.deb /var/cache/apt/archives/libjavascriptcoregtk-3.0-0_2.4.9-3_AMD64.deb /var/cache/apt/archives/libsdl1.2debian_1.2.15+dfsg1-3_AMD64.deb /var/cache/apt/archives/libsvn1_1.9.3-2+b1_AMD64.deb /var/cache/apt/archives/libwebkitgtk-3.0-0_2.4.9-3_AMD64.deb /var/cache/apt/archives/linux-image-AMD64_4.3+70_AMD64.deb /var/cache/apt/archives/linux-libc-dev_4.3.5-1_AMD64.deb /var/cache/apt/archives/Subversion_1.9.3-2+b1_AMD64.deb /var/cache/apt/archives/traceroute_1%3a2.0.22-1_AMD64.deb /var/cache/apt/archives/libwebkitgtk-3.0-common_2.4.9-3_all.deb
(Reading database ... 139632 files and directories currently installed.)
Preparing to unpack .../AMD64-microcode_2.20141028.1_AMD64.deb ...
Unpacking AMD64-microcode (2.20141028.1) over (2.20141028.1) ...
Preparing to unpack .../libjavascriptcoregtk-3.0-0_2.4.9-3_AMD64.deb ...
Unpacking libjavascriptcoregtk-3.0-0:AMD64 (2.4.9-3) over (2.4.9-3) ...
Preparing to unpack .../libsdl1.2debian_1.2.15+dfsg1-3_AMD64.deb ...
Unpacking libsdl1.2debian:AMD64 (1.2.15+dfsg1-3) over (1.2.15+dfsg1-3) ...
Preparing to unpack .../libsvn1_1.9.3-2+b1_AMD64.deb ...
Unpacking libsvn1:AMD64 (1.9.3-2+b1) over (1.9.3-2+b1) ...
Preparing to unpack .../libwebkitgtk-3.0-0_2.4.9-3_AMD64.deb ...
Unpacking libwebkitgtk-3.0-0:AMD64 (2.4.9-3) over (2.4.9-3) ...
Preparing to unpack .../linux-image-AMD64_4.3+70_AMD64.deb ...
Unpacking linux-image-AMD64 (4.3+70) over (4.3+70) ...
Preparing to unpack .../linux-libc-dev_4.3.5-1_AMD64.deb ...
Unpacking linux-libc-dev:AMD64 (4.3.5-1) over (4.3.5-1) ...
Preparing to unpack .../Subversion_1.9.3-2+b1_AMD64.deb ...
Unpacking Subversion (1.9.3-2+b1) over (1.9.3-2+b1) ...
Preparing to unpack .../traceroute_1%3a2.0.22-1_AMD64.deb ...
Unpacking traceroute (1:2.0.22-1) over (1:2.0.22-1) ...
Selecting previously unselected package libwebkitgtk-3.0-common.
Preparing to unpack .../libwebkitgtk-3.0-common_2.4.9-3_all.deb ...
Unpacking libwebkitgtk-3.0-common (2.4.9-3) ...
Setting up AMD64-microcode (2.20141028.1) ...
update-initramfs: deferring update (trigger activated)
AMD64-microcode: microcode will be updated at next boot
Setting up libjavascriptcoregtk-3.0-0:AMD64 (2.4.9-3) ...
Setting up libsdl1.2debian:AMD64 (1.2.15+dfsg1-3) ...
Setting up libsvn1:AMD64 (1.9.3-2+b1) ...
Setting up linux-image-AMD64 (4.3+70) ...
Setting up linux-libc-dev:AMD64 (4.3.5-1) ...
Setting up Subversion (1.9.3-2+b1) ...
Setting up traceroute (1:2.0.22-1) ...
update-alternatives: using /usr/bin/traceroute.db to provide /usr/bin/traceroute (traceroute) in auto mode
update-alternatives: using /usr/bin/lft.db to provide /usr/bin/lft (lft) in auto mode
update-alternatives: using /usr/bin/traceproto.db to provide /usr/bin/traceproto (traceproto) in auto mode
update-alternatives: using /usr/sbin/tcptraceroute.db to provide /usr/sbin/tcptraceroute (tcptraceroute) in auto mode
Setting up libwebkitgtk-3.0-common (2.4.9-3) ...
Setting up libwebkitgtk-3.0-0:AMD64 (2.4.9-3) ...
Processing triggers for libc-bin (2.22-3) ...
Processing triggers for man-db (2.7.5-1) ...
Processing triggers for initramfs-tools (0.123) ...
update-initramfs: Generating /boot/initrd.img-4.4.0-1-AMD64

Başarı! Aslında bu benim sorunumu çözmedi. Ancak, paketleri başarıyla indirdi, QED.

5
aecolley

aptitude, Debian paket yönetimi 'e göre varsa paketin tüm sürümlerine erişmenizi sağlar.

5
user28725

Hartman'ın Blogstatic Blog'una rastladım: buntu Lucid'de bir Güncelleme Nasıl Geri Alınır

Rahatsız edici güncelleştirmeyi geri almanın ilk adımı, tam olarak hangi güncellemelerin olduğunu bulmaktı. Bazı forumları aradıktan sonra güncelleme geçmişimi görmenin bir yolunu gördüm: Sinaptik paket yöneticisini aç (terminalde "Sudo synaptic"). Menü çubuğundan, Dosya -> Geçmiş'i tıklayın; tüm güncellemelerin tarihe göre sıralandığını göreceksiniz.

Maalesef bugün yaklaşık 20 güncelleme yükledim ve hangisinin soruna neden olduğunu bilmiyordum. Geçmiş listesinde adı geçen paketlerin her birini arayarak, sorun çözülene kadar bir seferde birkaç kez düşürmeyi başardım ve sorunlu güncellemeyi belirledim. Bunu yapmak için:

Düşürmek istediğiniz paketi bulmak için arama çubuğunu kullanın. Aradığınızı bulduktan sonra, seçmek için pakete tıklayın. Menü çubuğundan, Paket -> Sürümü Zorla'yı tıklayın ve açılan menüden paketin önceki sürümünü seçin. Düşürmeyi uygulamak için "Uygula" düğmesine tıklayın.

5
Manav Brar

Ayrıca bugün birkaç Debian sunucusunda paket güncellemesini geri almak zorunda kaldım. Aşağıdaki awk komutu çok yardımcı oldu, ancak yetenekleri kullanarak paketleri son sürüme başarıyla geri aldım.

(Aşağıdaki komutta tarih dizesini, yükseltmeleri geri almak istediğiniz günün tarihiyle değiştirin)

awk 'BEGIN{ start="0" } { if($0 ~ /Log started: 2017-06-20/) { start="1"} if ( start == "1" && $0 ~ /Unpacking.*over/) {gsub(/[\s\t)( ]+/,"",$5); printf("%s=%s ", $2 , $5)}}' /var/log/apt/term.log

bunların geri alınacak paketler ve sürümler olduğunu doğrulamak için çıktıyı gözden geçirin. Ardından listelenen paketlerin indirgenmesini yapmak için bir yetenek kullanın:

aptitute install [paste output here]

Umarım bu aynı zamanda başkaları için de faydalı bir zaman tasarrufu demektir.

3

Linux sunucularını sanallaştırılmış bir ortamda çalıştırıyorum ve apt-get yükseltme işleminden hemen önce bir shapshot veya bu konuda herhangi bir 3. parti güncelleme/yükseltme gerçekleştiriyorum.

Sonra bir şeyler ters giderse, basitçe geri dönerim ve daha fazla bilgi bulana kadar hayat devam eder.

Ubuntu kutumu 12.04'e yükselttiğimde bu çok yol açtı ve bir şekilde MySQL güncellemeden sonra tamamen işlevsel değildi. Geri aldım, cevabı daha sonra buldum, güncellemeyi yeniden yaptım, MySQL'i düzelttim ve hayat güzeldi.

2
Brain2000

Apt-Undo kullanmak olası bir seçenektir, ancak yalnızca paketleri kurmak ve kaldırmak için kullanıyorsanız çalışabilir. Zaten yazılımı normal şekilde kaldırdıysanız yardımı olmaz.

http://www.ubuntugeek.com/apt-undo-a-simple-way-of-undoing-apt-actions.htmlhttp://lkubuntu.wordpress.com/) 2011/07/27/apt-geri alma-a-basit yollu-of-the felâket-apt-eylemler /

1
Rucent88

OpenSolaris çekirdeğini Ubuntu kullanıcı alanıyla birleştiren Nexenta adlı bir proje var. Solaris’in ZFS ve Debian’ın uygulamalarını, yükseltmeler için geri alma butonu sağlamak amacıyla entegre etmek için bir araç sunar. Buraya bakın: http://www.nexenta.org/os/TransactionalZFSUpgrades

Daha genel olarak, ihtiyacınız olan şey bir sürüm dosyası sistemidir. Linux için Btrfs geliştirilme aşamasındadır.

1
Ryan Thompson

Deneyebilirsin checkinstall

Sizden sonra. /Configure; Programınıza, CheckInstall make install komutunu (veya çalıştırmasını söyleyen her şeyi) çalıştıracak ve mükemmel installwatch'ı kullanarak bu kurulum tarafından değiştirilen her dosyayı izleyecektir ...

Belki de güvenli bir yükseltme yeteneğini çalıştırdığını söyleyebilirsiniz ve yükseltme tarafından yapılan tüm değişiklikleri takip eder.

1
solarc

Bunu birkaç kez başarıyla yaptım ama tavsiye etmiyorum. Yaptığım şey buydu (doğru hatırlıyorsam):

1) Varsayılan ubuntu depolarında bulunmayan resmi olmayan yazılımları kaldırın (gerekli olmayabilir, ancak sizin isteğinize göre önerebilirim).

2) /etc/apt/sources.list'ini (ve sources.list.d/*) önceki sürüme değiştirin (resmi olmayan tüm depolara yorum yapın).

3) apt-get update/yetenek güncelleme

4) Yetenek, sürüm düşürme çekirdek paketleri (X11, kütüphaneler, vb.) Kullanarak. Çok sayıda kırık paket göndermeye başlayacak ... böylece her vakayı çözmeniz gerekecek (bunu nasıl yapabileceğinizi bilmeniz gerekir). Düşürme şekliniz açıklama paneline gidip alt kısımdaki sürümü (+ tuşlarına basarak) yüklemektir.

5) Tüm yazılımlar hedef sürümünüze ait oluncaya kadar # 4'ü tekrarlayın (lütfen sürüm sütununu kontrol edin).

Bu yöntemi önermememin nedeni:

  • Çok zaman alıyor (acı dolu bir süreç)
  • Bazı uygulamalar düzgün çalışmayabilir (hala en son yapılandırmaya sahip olabilirler). Bu durumda "temizlemeniz" ve yeniden yüklemeniz gerekir.
  • İndirgemeden sonra çalışmayacak sistemle ilgili güncellemeler var
  • Kullanılamaz bir sistemle sonuçlanabileceği için çok riskli

Temiz bir kurulum yapmanızı ve yapılandırmanızı yavaş yavaş hareket ettirmenizi şiddetle tavsiye ederim. Aynı zamanda zaman alır, ancak sonunda kararlı bir sürüme sahipsiniz.

Yapmamın nedeni çoğunlukla deney ve çaresizliğin bir sonucuydu.

0
lepe

DPkg :: Linux enstantanelerinde Kurulum Öncesi-Pkgs ve ZFS

İşletim sisteminizi bir ZFS dosya sistemine (ör., Linux'ta ZFS ) yüklediyseniz, apt-get öğesini, dosya sisteminizi anında yedekleyecek bir şey yüklemeden veya yükseltmeden önce zfs snapshot çalışacak şekilde yapılandırabilirsiniz. ZFS anlık görüntüleri dışındaki yedekleme mekanizmalarıyla çalışabilir, ancak bu testi başkalarına bırakacağım.

Senaryo

Gibi bir dosya oluşturun

/etc/apt/apt.conf.d/71backup

içerikli

// Tell `apt-get' to take a ZFS snapshot before installing or upgrading a
// set of packages:
DPkg::Pre-Install-Pkgs {"/sbin/zfs snapshot rpool/ROOT/[email protected]_$(date '+%Y-%m-%d-%H%M')";};

rpool/ROOT/debian, işletim sisteminizin kurulu olduğu ZFS dosya sisteminin adıyla değiştirilmelidir. İşletim sisteminizi ilk kurduğunuzda bu adı verdiniz ve bu komut NAME özniteliği altında bulunabilir.

# zfs list -t filesystem
NAME ...
...
rpool/ROOT/debian ...
...

Ama işe yarıyor mu?

Rasgele bir internet kullanıcısının konfigürasyon tavsiyelerine uymadan önce bir enstantane çekmeniz gerekir:

# zfs snapshot rpool/ROOT/[email protected]$(date '+%Y-%m-%d-%H%M%S')_test
# zfs list -t snapshot | grep rpool
...
rpool/ROOT/[email protected]_test

İşte burada. Yakında error: fn_borked oluşursa, sisteminizi şu anki haliyle mevcut durumuna geri döndürebilirsiniz.

# zfs rollback rpool/ROOT/[email protected]_test

Şimdi deponuzda bulunabilecek iki küçük oyun yükleyerek deneyin:

# apt-get install tanglet sudoku
...
# zfs list -t snapshot | grep apt\-get
rpool/ROOT/[email protected]_2018-08-02-033614

Bu anlık görüntü, dosya sisteminizi önceki olduğu gibi içeriyor;.

# exit
$ sudoku

Büyükannem için eğlenceli zamanlar, ama sudokudan nefret ediyorsun.

$ Sudo -i
# zfs rollback rpool/ROOT/[email protected]_2018-08-02-033614
# exit
$ sudoku
-bash: /usr/games/sudoku: No such file or directory
$ tanglet
-bash: tanglet: command not found

Birden fazla anlık fotoğraf çekildikten sonra, -r bayrağını ekleyerek önceki herhangi birine geri dönebilirsiniz. Bizim durumumuzda, örneğin, deneyin

# zfs -r rollback rpool/ROOT/[email protected]_test

Bununla birlikte, bu yalnızca dosya sisteminizi rpool/ROOT/[email protected]_test alındığı zamanki durumuna geri döndürmekle kalmayacak, aynı zamanda tüm sonraki anlık görüntüleri geri alınamaz bir şekilde siler. Bu yayını takip ettiyseniz, anlık görüntü rpool/ROOT/[email protected]_2018-08-02-033614 şimdi giderdi.

Debs GNU/Linux'ta apt-get upgrade ile test ettim

# apt-get -t=oldstable install tanglet sudoku
...
# apt-get upgrade
...
# zfs list -t snapshot | grep apt\-get

İşe yarıyor. Anlık görüntülerden biri install komutu, diğeri upgrade komutu için oluşturuldu.

Caveat : Bunu bugün ilk defa test ettim ve apt'nin iç işleri hakkında çok az şey biliyorum. Bu sizin için bir şeyleri kırması veya iyi düşünülmüş zihnimin göz önünde bulundurmadığı riskler içermesi durumunda, lütfen bunun hakkında yorum yapın.

0
LaTeX2enub1336