From e89da8d510e70e560c37b189d666343025eb4bb4 Mon Sep 17 00:00:00 2001 From: wesbarnett Date: Sat, 13 Mar 2021 10:23:32 +0000 Subject: [PATCH] deploy: 796b0f790d289afe7bc9473d57132f6fc1507e0f --- .doctrees/configuration.doctree | Bin 0 -> 6287 bytes .doctrees/environment.pickle | Bin 10721 -> 15832 bytes .doctrees/examples.doctree | Bin 0 -> 9902 bytes .doctrees/faq.doctree | Bin 0 -> 5124 bytes .doctrees/index.doctree | Bin 4837 -> 9347 bytes .doctrees/installation.doctree | Bin 0 -> 5905 bytes .doctrees/troubleshooting.doctree | Bin 0 -> 6985 bytes _sources/configuration.rst.txt | 34 ++++++ _sources/examples.rst.txt | 92 +++++++++++++++ _sources/faq.rst.txt | 42 +++++++ _sources/index.rst.txt | 33 +++++- _sources/installation.rst.txt | 30 +++++ _sources/troubleshooting.rst.txt | 23 ++++ configuration.html | 137 ++++++++++++++++++++++ examples.html | 184 ++++++++++++++++++++++++++++++ faq.html | 143 +++++++++++++++++++++++ genindex.html | 7 ++ index.html | 54 +++++++-- installation.html | 129 +++++++++++++++++++++ objects.inv | Bin 258 -> 339 bytes search.html | 7 ++ searchindex.js | 2 +- troubleshooting.html | 127 +++++++++++++++++++++ 23 files changed, 1029 insertions(+), 15 deletions(-) create mode 100644 .doctrees/configuration.doctree create mode 100644 .doctrees/examples.doctree create mode 100644 .doctrees/faq.doctree create mode 100644 .doctrees/installation.doctree create mode 100644 .doctrees/troubleshooting.doctree create mode 100644 _sources/configuration.rst.txt create mode 100644 _sources/examples.rst.txt create mode 100644 _sources/faq.rst.txt create mode 100644 _sources/installation.rst.txt create mode 100644 _sources/troubleshooting.rst.txt create mode 100644 configuration.html create mode 100644 examples.html create mode 100644 faq.html create mode 100644 installation.html create mode 100644 troubleshooting.html diff --git a/.doctrees/configuration.doctree b/.doctrees/configuration.doctree new file mode 100644 index 0000000000000000000000000000000000000000..4552006aa98e012a96f75b57e3c8a72dfcca45b3 GIT binary patch literal 6287 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 diff --git a/.doctrees/examples.doctree b/.doctrees/examples.doctree new file mode 100644 index 0000000000000000000000000000000000000000..942c04a40c3d5e87b04947418f9ea03ecbe7fb57 GIT binary patch literal 9902 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 KrfoFowf_qnniLxV literal 0 HcmV?d00001 diff --git a/.doctrees/faq.doctree b/.doctrees/faq.doctree new file mode 100644 index 0000000000000000000000000000000000000000..ebca6194fd8dddd2db7fd2905ac967ab9e6c29e9 GIT binary patch literal 5124 zcmeHL>uy}P5tc2lq+Q*7sr{pt1Hy0`Th8t#K!6r5iXyF3)DWN~j@-Bnj05gD+$A9% z@|fh&u5tm|9|5A4MN#C^UZLE zzixg0_iHQVpWn3^7i!X@NuqSZY~eQ&9p@=iu6R-0`%Uplao4vE9b287m=%5nD`GBW zVwftP6@DiycS71;&A)D0?1WZRcHZJ^eEnH*m$!Y(2`AaylwbYXo9`B38nc&<*d&Op zh@Tdvbg*CZYZ-++SMV$R0$=rO^=S_MB`Fju4)X!^9qODBgWN%jaOzc&*l@!2SW;_2 z#CJ>4wEEge@@zI3(D>M}VOW#pI$VE9pZAQ#nQt9j%m+|!Bi3oAbCt~LUzvulK&XzLVe_`B=U##`oWMZ0 z@wzUF?!ZOE;gNrZ)%}U?Ea3iS)#hG8@ zB1z!NGrwK4P6-<-PY2Afq&QgdozinwD|w2w9Ux*RHRt>Mb-u^%L)A+#Sr6{u^T+nP zwRYXHp;^XELFY9I{IAYT9rl4oVX-#cPDfzjb0+g|?C(F+%#z0ZBzP~+h|;P%aAs&p zf1tG^V8)>VMf>CZ{RU%e))}ovbNlfpCH!vq*S_hl#SEfrIQ}n})n3-|eJpzK>lVFR z8*;rd2rTiq3Pj%WzdF>f5@4L1>YT(>5d;p*CSnk34c@taF)= z0V5U&c8K>8k>Z$vfnlALdJNKo%0f53RS`3TDX1r_&^j#Ly@;4)(=}FU&snAIx215* zP#F!Rj*sVj>i_z|krAU2GtWA218+3Ifc%I&$$+MWEzlk*>!_3qw8t#fC#-XHnlW&_ z1ANgDhSZFh0|7}VpL9AOyjfvi7eEXaSyup>j2 zr6ptMtqF@k?dR6?2SW9YJykL3(vuILlWsR*k~vm`x!((zu8`h%>VI3w8CF7YeSBWr z`1T}~4=hqKZm5mSFw4vdK3j+akk0&uq-vDIhlRg{G=YCRT#UHH&qeTRxG_Q&`mheZ z%{iFOg75A9{h#YGLX12L5I80pVRg)mVv?jf$&qpi&7DpGw-}H*CF9`s5N7o%VS$Pg zg2^-|J#B)Uzo-+@!M{<;QjYrkJTnFhgdFw9uUpha<9Gk5nVueT=s94Vo(NX9dwm2+{5oK|MDb28MoCt!xTKSQ-Yee?XZH)oNL8pl4B z7gkpOiwWty(=@;}&{D018O>G#4_ZMk-~f9G!aMoJDFnQ%=@VIBFH(D5;O<*mbqA7w@;NAA4-$t(BD!Yc5U z8FEe*w#h?@M!M$SR}Rv@T_?!@+x3f>W+AQ>3hvXwUmYT9ly+=x^5BBs4t*CY_Gp4jFD*dXL8&XU z2wg{L=Pb6oSy50|l$2;J9FLmz2oh_Cx?eiRU*+oz;Vzmc7@;7xm(<&Rqj&wTT3%bTkya6oodtB0UFl5#fc?Oe>o^% zVI>ax$g=3zZVC*TJ3)DI5iOO!W>~CE5~2SBI3Ol8X@`C-)@leHVGfZ*s8)tzQt&mu z6KaQOM)DU05Vf7;X%$7J6IHe?Fn}-vk&_H@p# z`L#D-mK`&Um&63hOw3**#%Yb$3Bla36vJIAA)@W*0QgTrW4z&S0ZnN%4Xo+$qpGGn z^Eb-V2!+Bjv=RVquu%dOZ=w~R4iR;iQNueriKg`>O3qOH6n@L5sC}a6Ibzp>^IAEs zh7lSVTDR=CVve>qhJUM=g2zJgiNK9E7u9Tdb1B>LI@ZyS=#{b}W#Ff_Us$Q9?L1>#AeUQ>t}%6N1CiftFM6mrK91M4YZ} zFYMTEq?Sxq7xqV5G%n=f>&tu9Gk8=%u*Y~2f~yO^8KV`4VW9)E{rXR9`U@!kY4I3{ kN9Bwd!uyp)$y^DX#{2?#b4o5<)=5Gdsv|aBjrpMW53M1CQUCw| literal 0 HcmV?d00001 diff --git a/.doctrees/index.doctree b/.doctrees/index.doctree index d6356eaa3933ef0df330c1549405c9f7d67fb56b..6bb10efa967c235ca4404c516bce1dc804c4378d 100644 GIT binary patch literal 9347 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 a`(3eC@|7hQhGnr=;fikuM)TJBS>+!N)e%(y diff --git a/.doctrees/installation.doctree b/.doctrees/installation.doctree new file mode 100644 index 0000000000000000000000000000000000000000..d68121c3712b7396f1efdbe770d259638ed61d4e GIT binary patch literal 5905 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 literal 0 HcmV?d00001 diff --git a/_sources/configuration.rst.txt b/_sources/configuration.rst.txt new file mode 100644 index 0000000..f177075 --- /dev/null +++ b/_sources/configuration.rst.txt @@ -0,0 +1,34 @@ +Configuration +============= + +.. toctree:: + :maxdepth: 2 + +Configuration is done via Python ini configuration files. The defaults +should be suitable for most users, so you may not need to do any configuration at all. +By default only the ``root`` snapper configuration is snapshotted. + +A commented example configuration files is located at ``/etc/snap-pac.ini.example``. + +To configure, copy the example configuration file: + +.. code-block:: bash + + cp /etc/snap-pac.ini{.example,} + +Then edit with your favorite editor. The file is commented and should be +self-explanatory. + +Each section corresponds with a snapper configuration. Add additional sections to add +other snapper configurations to be snapshotted. By default, only the root configuration +is snapshotted. + +Environment Variables +--------------------- + +To temporarily prevent snapshots from being performed for a single pacman +command, set the environment variable ``SNAP_PAC_SKIP``. For example: + +.. code-block:: bash + + sudo SNAP_PAC_SKIP=y pacman -Syu diff --git a/_sources/examples.rst.txt b/_sources/examples.rst.txt new file mode 100644 index 0000000..5877ed1 --- /dev/null +++ b/_sources/examples.rst.txt @@ -0,0 +1,92 @@ +Example +======= + +.. toctree:: + :maxdepth: 2 + +Here is an example of how the snapshots are created and how to rollback and pacman +transaction. Here the nano package is installed: + +.. code-block:: bash + + pacman -S nano + +.. code-block:: none + + resolving dependencies... + looking for conflicting packages... + + Packages (1) nano-2.5.3-1 + + Total Installed Size: 2.14 MiB + + :: Proceed with installation? [Y/n] Y + (1/1) checking keys in keyring [######################################] 100% + (1/1) checking package integrity [######################################] 100% + (1/1) loading package files [######################################] 100% + (1/1) checking for file conflicts [######################################] 100% + (1/1) checking available disk space [######################################] 100% + :: Running pre-transaction hooks... + (1/1) Performing snapper pre snapshots for the following configurations... + => root: 1033 + :: Processing package changes... + (1/1) installing nano [######################################] 100% + :: Running post-transaction hooks... + (1/1) Performing snapper post snapshots for the following configurations... + => root: 1034 + +The snapper snapshot number is given for each snapper configuration that is used. This +is also logged in pacman's log. + +Here are the snapshots created before and after the pacman transaction: + +.. code-block:: bash + + snapper -c root list -t pre-post | tail -n 1 + +.. code-block:: none + + 1033 | 1034 | Fri 22 Apr 2016 01:54:13 PM CDT | Fri 22 Apr 2016 01:54:14 PM CDT | pacman -S nano | + +Here is what changed during the transaction: + +.. code-block:: bash + + snapper -c root status 1033..1034 + +.. code-block:: none + + +..... /etc/nanorc + c..... /etc/snapper/.snap-pac-pre + +..... /usr/bin/nano + +..... /usr/bin/rnano + +..... /usr/share/doc/nano + +..... /usr/share/doc/nano/faq.html + +..... /usr/share/doc/nano/fr + +..... /usr/share/doc/nano/fr/nano.1.html + +..... /usr/share/doc/nano/fr/nanorc.5.html + +..... /usr/share/doc/nano/fr/rnano.1.html + +The above output is truncated, but it continues. See the `snapper(8) +`_ to for what each symbol means. You can also +do ``snapper diff`` in the same way. + +Then, to undo the pacman transaction: + +.. code-block:: bash + + snapper -c root undochange 1033..1034 + +.. code-block:: none + + create:0 modify:3 delete:100 + +Now nano is no longer installed, along with all the files it changed: + +.. code-block:: bash + + pacman -Qi nano + +.. code-block:: none + + error: package 'nano' was not found diff --git a/_sources/faq.rst.txt b/_sources/faq.rst.txt new file mode 100644 index 0000000..c6f17e4 --- /dev/null +++ b/_sources/faq.rst.txt @@ -0,0 +1,42 @@ +FAQ +=== + +.. toctree:: + :maxdepth: 2 + +**Does snap-pac backup non-btrfs /boot partitions?** + +No, but you can add a hook that does it for you. It would be something like the following: + +.. code-block:: none + + [Trigger] + Operation = Upgrade + Operation = Install + Operation = Remove + Type = Package + Target = linux + + [Action] + Description = Backing up /boot... + When = PreTransaction + Exec = /usr/bin/rsync -avzq --delete /boot /.bootbackup + + +**How do I link old kernel modules automatically when the kernel is upgraded?** + +This behavior is no longer a part of this package. Use a pacman hook like the following: + +.. code-block:: none + + [Trigger] + Operation = Upgrade + Operation = Install + Operation = Remove + Type = Package + Target = linux + + [Action] + Description = Symlinking old kernel modules... + When = PostTransaction + Exec = /usr/bin/bash -c "find /usr/lib/modules -xtype l -delete; ln -sv /.snapshots/$(snapper -c root list | awk 'END{print $1}')/snapshot/usr/lib/modules/$(uname -r) /usr/lib/modules/" diff --git a/_sources/index.rst.txt b/_sources/index.rst.txt index e679d6e..018ddb5 100644 --- a/_sources/index.rst.txt +++ b/_sources/index.rst.txt @@ -8,13 +8,34 @@ Welcome to snap-pac's documentation! .. toctree:: :maxdepth: 2 - :caption: Contents: + installation + configuration + examples + troubleshooting + faq +This is a set of `pacman `_ hooks and script that causes +`snapper `_ to automatically take a pre and post snapshot before and +after pacman transactions, similar to how `YaST `_ does with +OpenSuse. This provides a simple way to undo changes to a system after a pacman +transaction. -Indices and tables -================== +Because these are pacman hooks, it doesn't matter how you call pacman—whether +directly, through an AUR helper, or using an alias—snapper will create the snapshots +when pacman installs, upgrades, or removes a package. The pacman command used is +logged in the snapper description for the snapshots. Additionally the snapshot numbers +are output to the screen and to the pacman log for each snapper configuration during the +pacman transaction, so that the user can easily find which changes he or she may want to +revert. -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` +To undo changes from a pacman transaction, use ``snapper undochange``. See the `snapper +documentation `_ for more details as well as +examples. + +If you have severe breakage—like snapper is gone for some reason and you can't get it +back—you'll have to resort to more extreme methods, such as taking a snapshot of the pre +snapshot and making it the default subvolume or mounting it as /. Most likely you'll +need to use a live USB to get into a chroot environment to do any of these things. +Snapper has a ``snapper rollback`` feature, but your setup has to be properly configured to +use it. The exact procedure depends on your specific setup. Be careful. diff --git a/_sources/installation.rst.txt b/_sources/installation.rst.txt new file mode 100644 index 0000000..345ab0a --- /dev/null +++ b/_sources/installation.rst.txt @@ -0,0 +1,30 @@ +Installation +============ + +Install the ``snap-pac`` package using pacman: + +.. code-block:: bash + + pacman -S snap-pac + +Alternatively download the `latest release and signature +`_. Then, verify the download: + +.. code-block:: bash + + gpg --verify snap-pac-.tar.gz.sig + +where ```` is the version number you downloaded. + +Finally, run: + +.. code-block:: bash + + make install + +I have signed the release tarball and commits with my PGP key. Starting with release +2.2, the tarballs are signed with my key with fingerprint +``F7B28C61944FE30DABEEB0B01070BCC98C18BD66``. + +For previous releases, the key's fingerprint was +``8535CEF3F3C38EE69555BF67E4B5E45AA3B8C5C3``. diff --git a/_sources/troubleshooting.rst.txt b/_sources/troubleshooting.rst.txt new file mode 100644 index 0000000..be961c6 --- /dev/null +++ b/_sources/troubleshooting.rst.txt @@ -0,0 +1,23 @@ +Troubleshooting +=============== + +.. toctree:: + :maxdepth: 2 + +**snap-pac is only taking snapshots of the root configuration.** + +That's the default behavior. See :doc:`configuration`. + +**No snapshots are being taken when I run pacman.** + +No snapper configurations are set up for snap-pac's pacman hooks. By default snap-pac +will take snapshots for the root configuration and any other configuration which has +SNAPSHOT set to yes in its configuration file. See :doc:`configuration`. + +**After restoring snapshot from snap-pac, the pacman database is locked.** + +The pre/post snaphots are taken while pacman is running, so this is expected. Follow +the instructions pacman gives you (*e.g.*, removing the lock file). You can add the +database lock file to a snapper filter so that snapper won't consider it when +performing snapper diff, snapper status, snapper undochange, etc. See the Filters +section in `snapper(8) `_ for more information. diff --git a/configuration.html b/configuration.html new file mode 100644 index 0000000..a8589fc --- /dev/null +++ b/configuration.html @@ -0,0 +1,137 @@ + + + + + + + + Configuration — snap-pac documentation + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+ +
+

Configuration

+
+
+

Configuration is done via Python ini configuration files. The defaults +should be suitable for most users, so you may not need to do any configuration at all. +By default only the root snapper configuration is snapshotted.

+

A commented example configuration files is located at /etc/snap-pac.ini.example.

+

To configure, copy the example configuration file:

+
cp /etc/snap-pac.ini{.example,}
+
+
+

Then edit with your favorite editor. The file is commented and should be +self-explanatory.

+

Each section corresponds with a snapper configuration. Add additional sections to add +other snapper configurations to be snapshotted. By default, only the root configuration +is snapshotted.

+
+

Environment Variables

+

To temporarily prevent snapshots from being performed for a single pacman +command, set the environment variable SNAP_PAC_SKIP. For example:

+
sudo SNAP_PAC_SKIP=y pacman -Syu
+
+
+
+
+ + +
+ +
+
+ +
+
+ + + + + + + \ No newline at end of file diff --git a/examples.html b/examples.html new file mode 100644 index 0000000..c84e738 --- /dev/null +++ b/examples.html @@ -0,0 +1,184 @@ + + + + + + + + Example — snap-pac documentation + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+ +
+

Example

+
+
+

Here is an example of how the snapshots are created and how to rollback and pacman +transaction. Here the nano package is installed:

+
pacman -S nano
+
+
+
resolving dependencies...
+looking for conflicting packages...
+
+Packages (1) nano-2.5.3-1
+
+Total Installed Size:  2.14 MiB
+
+:: Proceed with installation? [Y/n] Y
+(1/1) checking keys in keyring                               [######################################] 100%
+(1/1) checking package integrity                             [######################################] 100%
+(1/1) loading package files                                  [######################################] 100%
+(1/1) checking for file conflicts                            [######################################] 100%
+(1/1) checking available disk space                          [######################################] 100%
+:: Running pre-transaction hooks...
+(1/1) Performing snapper pre snapshots for the following configurations...
+=> root: 1033
+:: Processing package changes...
+(1/1) installing nano                                        [######################################] 100%
+:: Running post-transaction hooks...
+(1/1) Performing snapper post snapshots for the following configurations...
+=> root: 1034
+
+
+

The snapper snapshot number is given for each snapper configuration that is used. This +is also logged in pacman’s log.

+

Here are the snapshots created before and after the pacman transaction:

+
snapper -c root list -t pre-post | tail -n 1
+
+
+
1033  | 1034   | Fri 22 Apr 2016 01:54:13 PM CDT | Fri 22 Apr 2016 01:54:14 PM CDT | pacman -S nano      |
+
+
+

Here is what changed during the transaction:

+
snapper -c root status 1033..1034
+
+
+
+..... /etc/nanorc
+c..... /etc/snapper/.snap-pac-pre
++..... /usr/bin/nano
++..... /usr/bin/rnano
++..... /usr/share/doc/nano
++..... /usr/share/doc/nano/faq.html
++..... /usr/share/doc/nano/fr
++..... /usr/share/doc/nano/fr/nano.1.html
++..... /usr/share/doc/nano/fr/nanorc.5.html
++..... /usr/share/doc/nano/fr/rnano.1.html
+
+
+

The above output is truncated, but it continues. See the snapper(8) to for what each symbol means. You can also +do snapper diff in the same way.

+

Then, to undo the pacman transaction:

+
snapper -c root undochange 1033..1034
+
+
+
create:0 modify:3 delete:100
+
+
+

Now nano is no longer installed, along with all the files it changed:

+
pacman -Qi nano
+
+
+
error: package 'nano' was not found
+
+
+
+ + +
+ +
+
+ +
+
+ + + + + + + \ No newline at end of file diff --git a/faq.html b/faq.html new file mode 100644 index 0000000..e09ef9a --- /dev/null +++ b/faq.html @@ -0,0 +1,143 @@ + + + + + + + + FAQ — snap-pac documentation + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+ +
+

FAQ

+
+
+

Does snap-pac backup non-btrfs /boot partitions?

+

No, but you can add a hook that does it for you. It would be something like the following:

+
[Trigger]
+Operation = Upgrade
+Operation = Install
+Operation = Remove
+Type = Package
+Target = linux
+
+[Action]
+Description = Backing up /boot...
+When = PreTransaction
+Exec = /usr/bin/rsync -avzq --delete /boot /.bootbackup
+
+
+

How do I link old kernel modules automatically when the kernel is upgraded?

+

This behavior is no longer a part of this package. Use a pacman hook like the following:

+
[Trigger]
+Operation = Upgrade
+Operation = Install
+Operation = Remove
+Type = Package
+Target = linux
+
+[Action]
+Description = Symlinking old kernel modules...
+When = PostTransaction
+Exec = /usr/bin/bash -c "find /usr/lib/modules -xtype l -delete; ln -sv /.snapshots/$(snapper -c root list | awk 'END{print $1}')/snapshot/usr/lib/modules/$(uname -r) /usr/lib/modules/"
+
+
+
+ + +
+ +
+
+ +
+
+ + + + + + + \ No newline at end of file diff --git a/genindex.html b/genindex.html index 63ba4de..0cc7e11 100644 --- a/genindex.html +++ b/genindex.html @@ -54,6 +54,13 @@

Navigation

+

Related Topics

diff --git a/index.html b/index.html index cb76e54..23326fa 100644 --- a/index.html +++ b/index.html @@ -14,6 +14,7 @@ + @@ -33,15 +34,44 @@

Welcome to snap-pac’s documentation!

-
-
- +

This is a set of pacman hooks and script that causes +snapper to automatically take a pre and post snapshot before and +after pacman transactions, similar to how YaST does with +OpenSuse. This provides a simple way to undo changes to a system after a pacman +transaction.

+

Because these are pacman hooks, it doesn’t matter how you call pacman—whether +directly, through an AUR helper, or using an alias—snapper will create the snapshots +when pacman installs, upgrades, or removes a package. The pacman command used is +logged in the snapper description for the snapshots. Additionally the snapshot numbers +are output to the screen and to the pacman log for each snapper configuration during the +pacman transaction, so that the user can easily find which changes he or she may want to +revert.

+

To undo changes from a pacman transaction, use snapper undochange. See the snapper +documentation for more details as well as +examples.

+

If you have severe breakage—like snapper is gone for some reason and you can’t get it +back—you’ll have to resort to more extreme methods, such as taking a snapshot of the pre +snapshot and making it the default subvolume or mounting it as /. Most likely you’ll +need to use a live USB to get into a chroot environment to do any of these things. +Snapper has a snapper rollback feature, but your setup has to be properly configured to +use it. The exact procedure depends on your specific setup. Be careful.

@@ -61,11 +91,19 @@

Navigation

+

Related Topics

diff --git a/installation.html b/installation.html new file mode 100644 index 0000000..c7a75ce --- /dev/null +++ b/installation.html @@ -0,0 +1,129 @@ + + + + + + + + Installation — snap-pac documentation + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+ +
+

Installation

+

Install the snap-pac package using pacman:

+
pacman -S snap-pac
+
+
+

Alternatively download the latest release and signature. Then, verify the download:

+
gpg --verify snap-pac-<version>.tar.gz.sig
+
+
+

where <version> is the version number you downloaded.

+

Finally, run:

+
make install
+
+
+

I have signed the release tarball and commits with my PGP key. Starting with release +2.2, the tarballs are signed with my key with fingerprint +F7B28C61944FE30DABEEB0B01070BCC98C18BD66.

+

For previous releases, the key’s fingerprint was +8535CEF3F3C38EE69555BF67E4B5E45AA3B8C5C3.

+
+ + +
+ +
+
+ +
+
+ + + + + + + \ No newline at end of file diff --git a/objects.inv b/objects.inv index 5cbf0f3692dcb65877f4358a5bce8213f35c4ee3..5702a1a0be34029293c1b0abffb575dfd73439aa 100644 GIT binary patch delta 229 zcmV-0@DJJc7KJCO=`n15QXq#nSVk|d-?lkXxPkJLmq3PRk0PZR1#P->e(bbbSrSaIYcY0e&3XkBU!&HW5P52j? zR0D?+%A@$Nn-A4u=!3=M1#nQKn~+%*?rl1%1-sr;5PNinJYH%hodU!vg84arC!NXB zW8h2UhkQk1aPDT;QlFn(6y?d@=@?JdY)Iyv?C9{?ws8N6?M~d~I;(U-7)-YgiYA#) f@psUo;(^9G|9MBmeQ3+Q{#cUzT8ruzR9w2l{pNUg delta 148 zcmV;F0Bir#0)hgNc7IDx&CAS7Nv%*QE=jS$-lOHwAELH%jEX_^LD@iQL%+FKg%FR!~Vp&0@ zE=&Sqns0teX-+ECS|nKl+5##|GV=3Kbr+{57A0q(YJ`YE^bG_<Navigation +

Related Topics

diff --git a/searchindex.js b/searchindex.js index f335240..df7d00f 100644 --- a/searchindex.js +++ b/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["index"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":2,sphinx:56},filenames:["index.rst"],objects:{},objnames:{},objtypes:{},terms:{index:0,modul:0,page:0,search:0},titles:["Welcome to snap-pac\u2019s documentation!"],titleterms:{document:0,indic:0,pac:0,snap:0,tabl:0,welcom:0}}) \ No newline at end of file +Search.setIndex({docnames:["configuration","examples","faq","index","installation","troubleshooting"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":2,sphinx:56},filenames:["configuration.rst","examples.rst","faq.rst","index.rst","installation.rst","troubleshooting.rst"],objects:{},objnames:{},objtypes:{},terms:{"100":1,"1033":1,"1034":1,"2016":1,"8535cef3f3c38ee69555bf67e4b5e45aa3b8c5c3":4,"default":[0,3,5],"final":4,"while":5,For:[0,4],That:5,The:[0,1,3,5],Then:[0,1,4],Use:2,abov:1,action:2,add:[0,2,5],addit:0,addition:3,after:[1,3,5],alia:3,all:[0,1],along:1,also:1,altern:4,ani:[0,3,5],apr:1,aur:3,automat:[2,3],avail:1,avzq:2,awk:2,back:[2,3],backup:2,bash:2,becaus:3,befor:[1,3],behavior:[2,5],being:[0,5],bin:[1,2],boot:2,bootbackup:2,breakag:3,btrf:2,call:3,can:[1,2,3,5],care:3,caus:3,cdt:1,chang:[1,3],check:1,chroot:3,command:[0,3],comment:0,commit:4,configur:[1,3,5],conflict:1,consid:5,continu:1,copi:0,correspond:0,creat:[1,3],databas:5,delet:[1,2],depend:[1,3],descript:[2,3],detail:3,diff:[1,5],directli:3,disk:1,doc:1,doe:[2,3],doesn:3,done:0,download:4,dure:[1,3],each:[0,1,3],easili:3,edit:0,editor:0,end:2,environ:3,error:1,etc:[0,1,5],exact:3,exampl:[0,3],exec:2,expect:5,explanatori:0,extrem:3,f7b28c61944fe30dabeeb0b01070bcc98c18bd66:4,faq:[1,3],favorit:0,featur:3,file:[0,1,5],filter:5,find:[2,3],fingerprint:4,follow:[1,2,5],found:1,fri:1,from:[0,3,5],get:3,give:5,given:1,gone:3,gpg:4,has:[3,5],have:[3,4],helper:3,here:1,hook:[1,2,3,5],how:[1,2,3],html:1,inform:5,ini:0,instal:[1,2,3],instruct:5,integr:1,its:5,kei:[1,4],kernel:2,keyr:1,latest:4,lib:2,like:[2,3],link:2,linux:2,list:[1,2],live:3,load:1,locat:0,lock:5,log:[1,3],longer:[1,2],look:1,mai:[0,3],make:[3,4],matter:3,mean:1,method:3,mib:1,modifi:1,modul:2,more:[3,5],most:[0,3],mount:3,nano:1,nanorc:1,need:[0,3],non:2,now:1,number:[1,3,4],old:2,onli:[0,5],opensus:3,oper:2,other:[0,5],output:[1,3],pac:[0,1,2,4,5],packag:[1,2,3,4],pacman:[0,1,2,3,4,5],part:2,partit:2,perform:[0,1,5],pgp:4,post:[1,3,5],posttransact:2,pre:[1,3,5],pretransact:2,prevent:0,previou:4,print:2,proce:1,procedur:3,process:1,properli:3,provid:3,python:0,reason:3,releas:4,remov:[2,3,5],resolv:1,resort:3,restor:5,revert:3,rnano:1,rollback:[1,3],root:[0,1,2,5],rsync:2,run:[1,4,5],same:1,screen:3,script:3,section:[0,5],see:[1,3,5],self:0,set:[0,3,5],setup:3,sever:3,share:1,she:3,should:0,sig:4,sign:4,signatur:4,similar:3,simpl:3,singl:0,size:1,snap:[0,1,2,4,5],snap_pac_skip:0,snaphot:5,snapper:[0,1,2,3,5],snapshot:[0,1,2,3,5],some:3,someth:2,space:1,specif:3,start:4,statu:[1,5],subvolum:3,sudo:0,suitabl:0,symbol:1,symlink:2,system:3,syu:0,tail:1,take:[3,5],taken:5,tar:4,tarbal:4,target:2,temporarili:0,thi:[1,2,3,5],thing:3,through:3,total:1,transact:[1,3],trigger:2,troubleshoot:3,truncat:1,type:2,unam:2,undo:[1,3],undochang:[1,3,5],upgrad:[2,3],usb:3,use:3,used:[1,3],user:[0,3],using:[3,4],usr:[1,2],variabl:3,verifi:4,version:4,via:0,wai:[1,3],want:3,well:3,what:1,when:[2,3,5],where:4,whether:3,which:[3,5],won:5,would:2,xtype:2,yast:3,yes:5,you:[0,1,2,3,4,5],your:[0,3]},titles:["Configuration","Example","FAQ","Welcome to snap-pac\u2019s documentation!","Installation","Troubleshooting"],titleterms:{configur:0,document:3,environ:0,exampl:1,faq:2,instal:4,pac:3,snap:3,troubleshoot:5,variabl:0,welcom:3}}) \ No newline at end of file diff --git a/troubleshooting.html b/troubleshooting.html new file mode 100644 index 0000000..1c1bae5 --- /dev/null +++ b/troubleshooting.html @@ -0,0 +1,127 @@ + + + + + + + + Troubleshooting — snap-pac documentation + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+ +
+

Troubleshooting

+
+
+

snap-pac is only taking snapshots of the root configuration.

+

That’s the default behavior. See Configuration.

+

No snapshots are being taken when I run pacman.

+

No snapper configurations are set up for snap-pac’s pacman hooks. By default snap-pac +will take snapshots for the root configuration and any other configuration which has +SNAPSHOT set to yes in its configuration file. See Configuration.

+

After restoring snapshot from snap-pac, the pacman database is locked.

+

The pre/post snaphots are taken while pacman is running, so this is expected. Follow +the instructions pacman gives you (e.g., removing the lock file). You can add the +database lock file to a snapper filter so that snapper won’t consider it when +performing snapper diff, snapper status, snapper undochange, etc. See the Filters +section in snapper(8) for more information.

+
+ + +
+ +
+
+ +
+
+ + + + + + + \ No newline at end of file